Log in

View Full Version : Media Player Classic Home Cinema (MPC-HC) - DXVA!


Pages : 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 [399] 400 401 402 403 404 405 406 407 408 409 410

Amour
7th July 2012, 21:59
You can just disable it yourself - just play a file and press "V", its the hotkey for VSync in EVR-CP.
Alternatively, you can navigate there in the Menu, under View -> Renderer Settings -> Vsync
I tried on both stable (1.6.2) and latest (1.6.3.5385), but unfortunatly this didn't fix anything.

I'm still stuck with only 3 renderers working on my new Windows 7 notebook with all latest updates (including directX):
* vrm-7 renderless
* vrm-9 renderless
* EVR Sync

If there is a dev in Paris, I can let him check on the device itself to analyze why EVR Custom doesn't work. :)

davidh44
7th July 2012, 22:45
On playback of a WMV9 (VC-1) file, I get 9-11% CPU usage with MPC-HC but only 1-3% with Windows Media Player in Win7. MPC-HC reports DXVA Mode is "VC-1D, bitstream decoder" during playback. I've unchecked "VC1 (Ffmpeg)" on the "Internal Filters" page to make sure DXVA is being used. Video card is ATI HD4250 (AMD 880G). Any idea why?

Keiyakusha
7th July 2012, 23:36
If there is a dev in Paris, I can let him check on the device itself to analyze why EVR Custom doesn't work. :)
You are the only one who tells that evr-sync works when evr-cp doesn't. In fact usually the opposite is expected due to Sync being abandoned. And this is suggests that issue is not in the player... so there is not much motivation for anyone to investigate it. Try to solve it yourself by removing any kind of codec packs, 3rd party filters, any kind of powerDVD crap and other all in one solutions, cleaning registry if anything left (or better windows reinstall), then installing only LAV and MPC-HC. And make sure that directx, mpc-hc (r5404 at this time), graphic drivers are up to date. Also it seems you didn't tried madvr yet. This is the most stable and high quality renderer to date. If it works fine - you don't even need anything else. If not, maybe you have hardware failure of some sort.

JanWillem32
8th July 2012, 01:53
In many occasions, I've also seen that EVR CP fails. It's especially bad when trying older IGPs (software vertex processing support is badly implemented) and blending subtitles or the stats screen on the picture (the device texture states are badly maintained and never recorded throughout the rendering loop). I don't blame any of my predecessors for this. The renderer code is complex, hardware specific, and the original code was a maze of classes and functions to begin with. I was quite happy that inserting a decent renderer from another project worked quite well after editing (mostly to remove most of its 3D functionality), though at the cost of breaking code ancestry and compatibility with many interfaces in the trunk build.
Anyway Amour, if my version of the renderer doesn't work, I can give you a debug build to so you can trace the process.

@davidh44: Windows Media Player has a lot of optimizations inside of it that are not applied to many other players. (MediaFoundation instead of DirectShow, using the DWM manager to schedule video frames, heavy integration of the EVR/DXVA2 elements from the display driver, etc..) A lot of the development effort goes into revising old code that isn't up-to-date with modern systems, and revising the old code that was never efficient in the first place. It's a lot of code to manage, and we don't have many developers to improve all of it. So, it's a slow process. Another example, I've made good progress in improving the memory usage of the subtitle renderer and CPU/GPU usage of the main rendering loop, but it will take some time for that to go from alpha code to a beta, and then to a stable.

ryrynz
8th July 2012, 02:19
I've made good progress in improving the memory usage of the subtitle renderer

Is that anything that can be ported across to xy-VSfliter? Or is the code just too different?

JanWillem32
8th July 2012, 03:51
I guess various functions can be ported, especially the SSE stuff.

dukey
8th July 2012, 13:23
(software vertex processing support is badly implemented)

Software vertex processing ? Even the sega model 3 hardware from 1996 had hardware T&L :p

JanWillem32
8th July 2012, 14:41
http://sourceforge.net/apps/trac/mpc-hc/wiki/Manual
I have to support a Pentium 3 with an IGP on Windows XP SP3. That's lower than the support level of any of my other current and previous projects. I had to look up the minimum specification that a PC in that setting can do.
-The CPU can't support SSE2, which is annoying for those that like to write SSE stuff. You often need the SSE2 (2001) and SSE3 (2004) extensions to do stuff properly. If you are looking for similar operands available on the GPU (at a vs/ps2.0 level) for various single-precision floating-point operations, such as packed operations, rounding, dot products and conditional register-register moves, you need the SSE4.1 (2007) instructions. (It's still pretty hard to translate functions for a GPU on a CPU, even with very recent CPUs, though.) Anyway, I had to back up all SSE2 and onward level code with legacy support paths for older CPUs, and I can't import any SSE libraries. (All the typical SSE libraries start at a SSE2, SSE3, SSE4.1 or AVX target as minimum requirement.)
-Many IGPs don't support hardware vertex processing, even though these are DirectX 9.0 compatible: http://en.wikipedia.org/wiki/Comparison_of_Intel_graphics_processing_units . Software vertex processing support modes for the renderer are required to make it work on such hardware. Can anybody blame me for liking DirectX 10 and onwards a lot more than DirectX 9, considering cases like this?:)

GTPVHD
8th July 2012, 15:18
I think it's time to drop non SSE2 CPU support starting next year with MPC-HC 1.7.xxxx. Start the sunset program now and make sure the announcement is clear to everyone.

Also get rid of Haali Renderer option, that thing hasn't been worked on for the last 4-5 years and has well known bugs that only causes issues and problems.

dukey
8th July 2012, 15:51
Software vertex processing support modes for the renderer are required to make it work on such hardware. Can anybody blame me for liking DirectX 10 and onwards a lot more than DirectX 9, considering cases like this?:)

Direct X was just crap like that. Even older DX7 games on todays hardware will still use software transform and lighting. Where as in opengl games from a decade ago it will be done in hardware. There was no need to expose this to the programmer really.

You could always use pre-transformed vertices. Another insane option for direct x programmers :p Since to draw video you only need 2 triangles, I'd probably go with that option :)

JanWillem32
8th July 2012, 16:32
I indeed pre-transform them, then these are stored. Both the vertex and index buffers need to be stored either in system or video memory. Of course, with video cards that support hardware vertex processing, and even better hardware vertex caching, the second option is preferred. Still, you have to implement switches in the code to provide fallback to set software vertex and index buffer storage.
Modern hardware doesn't cache vertices unless you consistently provide both index and vertex buffers in drawing operations (IDirect3DDevice9:: DrawIndexedPrimitive()). Unbuffered vertices and/or non-indexed buffers always have worse performance. The renderer in the trunk build doesn't create any index and vertex buffers (IDirect3DDevice9:: DrawPrimitiveUP()). The performance hit won't be big with only 2 triangles to draw, but it's a waste of resources nonetheless.

wanezhiling
8th July 2012, 18:09
xhmikosr, could you provide a LAV zip version, not only installer.

Amour
8th July 2012, 19:39
Anyway Amour, if my version of the renderer doesn't work, I can give you a debug build to so you can trace the process.

Sure, I'll try anything.

JanWillem32
8th July 2012, 21:20
Okay, how well did one of my recent tester builds fare? (For links see the last page of the thread I started, or in my signature.)

Amour
9th July 2012, 00:15
A friend of mine came with AMD drivers that managed to fix the issue.
He told me the issue was because of Samsung modifying the AMD drivers for the notebook. And I couldn't download/install the official ones from the AMD website because AMD was displaying a message I had to contact my manufacturer for driver updates.
So, I'm not really sure where he got those drivers (maybe it was the omegadrivers (http://www.omegadrivers.net)), but in the end it works and now I can use EVR Custom renderer fine.

ps: my friend works at Samsung.

I'm sorry for the trouble. But I blame those manufacturers who sell brand new computers that work less well than older stuff.

Reino
9th July 2012, 11:33
Specs:
AMD Athlon XP 3200+ (SSE only)
Corsair TWINX1024-3200XLPT (2x 512MB, 200Mhz, 2-2-2-11)
Sapphire HD 3850 (512MB GDDR3, AGP)
Windows XP SP3 Pro 32-bit
MPC-HC pre 1.6.2.4848.0 (can't remember which revision exactly) @ VMR-9 Renderless

Upon updating to a newer MPC-HC revision today, I noticed the video output turning black for every video I throw at it. Eventually I discovered by disabling VMR-9 Mixing Mode I could turn the magic back on, but then, in case of DXVA, obviously with black borders when the video height is not mod16.
I've also narrowed the issue down to rev.4848 (VMR-9 Mixing Mode still working) and rev.4865 (video output black with VMR-9 Mixing Mode). Perhaps rev.4856 has something to do with it?
Revision 4856 (http://mpc-hc.svn.sourceforge.net/viewvc/mpc-hc?view=revision&revision=4856) - Directory Listing (http://mpc-hc.svn.sourceforge.net/viewvc/mpc-hc/?pathrev=4856)
Modified Wed May 23 14:51:33 2012 UTC (6 weeks, 4 days ago) by XhmikosR

consistently use the DirectX SDK defines from Version.h
Is my rather old cpu to blame for this issue?

I've noticed btw all the latest revisions come with D3DCompiler_43.dll and d3dx9_43.dll. For what are they needed?


Other subject: 4 months I made a feature request (http://sourceforge.net/apps/trac/mpc-hc/ticket/2086) to allow post-processing filters on the Audio Switcher's output pin (http://forum.doom9.org/showthread.php?p=1565746#post1565746). What do you devs say? Is there any developer who can code the Audio Switcher to do this?

betaking
9th July 2012, 12:21
S.Chinese update to rev.5421
http://www.mediafire.com/?toqaq2vd8tb03dc

ikarad
11th July 2012, 22:31
This problem with subtitiles still exist with mpc-hc 1.6.3.5436
https://sourceforge.net/apps/trac/mpc-hc/ticket/48#comment:25

Fragbert
12th July 2012, 06:29
Noticed in 5436 that AC3 decoder settings in "Internal Filters" only has options for stereo or mono. No multi channel or LFE. DTS setting options are normal.

rahzel
12th July 2012, 08:51
Is there a way to unify MPC's volume control with windows? If not, is there a way to have my mouse wheel control Windows volume instead of MPC's? Right now, when MPC's window is active, it only controls MPC's volume. It's not a big deal for me, but my dad is very computer illiterate and having two different volume controls confuses him.

v0lt
12th July 2012, 16:57
Noticed in 5436 that AC3 decoder settings in "Internal Filters" only has options for stereo or mono. No multi channel or LFE. DTS setting options are normal.
Now to decode ac3 using libavcodec instead a52dec. The new ac3 decoder supports only three modes ("as is", mono and stereo).

Fragbert
12th July 2012, 17:54
Now to decode ac3 using libavcodec instead a52dec. The new ac3 decoder supports only three modes ("as is", mono and stereo).

Kind of ironic to label something as an "ac3 decoder" when it can not decode ac3? Or am I erronously thinking that the limited options cant pass 5.1? What's the proper setting for analog connections, "as is" ?

v0lt
12th July 2012, 19:12
@Fragbert
I do not understand your question.

"As is" = "no mixing in the decoder." In this case, the audio driver will mix the sound (see your system settings).

boyumeow
13th July 2012, 04:58
@rahzel,
Change the [option>keys] volume that was bound to the mouse wheel to none. Thanks.

LigH
13th July 2012, 06:57
@ Fragbert:

Your option to choose is "as is". Not all AC3 audio streams are multichannel; stereo and mono AC3 streams do exist. Calling this option "multichannel" would suggest that decoded AC3 sources with less channels get upmixed, which doesn't make sense. If the decoded AC3 stream has a 5.1 channel configurarion, the six decoded channels will be passed to the sound driver "as they are" with the option "as is". If the AC3 stream had less channels, less channels are decoded, less channels are passed to the sound driver.

tschi
14th July 2012, 09:31
hi, UTF8 subs without BOM are not displayed correctly (svn5436): sample (http://www.mediafire.com/?cqv35a5ccamwgk1)
is it possible to do something ?
Thank you for your consideration

ryrynz
14th July 2012, 13:32
Would anyone else like to see an option where File-Open File-Browse locates to the directory of the last played file or being user configured rather than defaulting to Libraries\Documents all the time?

Keiyakusha
14th July 2012, 18:47
File-Open File-Browse locates to the directory of the last played file
On win7 this is how it works for me...

In windows explorer I navigated to some random folder, started media file. Then closed player, opened again. When I went to File-Open File - last played file was selected, after clicking Browse, it opens folder with this file.

ryrynz
15th July 2012, 02:52
MPC opens up the last folder played if it's selected by the File-Open File-Browse method. If however you launch Explorer click on an associated file and have it play and then File-Open File-Browse it still only opens the folder from the last file played via File-Open File-Browse method, not the directory of the file launched via Explorer.

And if for whatever reason it can't find that directory it launches Libraries\Documents instead.

wanezhiling
16th July 2012, 15:01
Just in case the owner of the site http://henry.fushizen.eu/ happens to frequent here, your lite builds are including the internal filters once again.
http://henry.fushizen.eu/builds/MPC-HC/
Not available anymore..

JEEB
16th July 2012, 15:08
http://henry.fushizen.eu/builds/MPC-HC/
Not available anymore..
Yeah, certain laws in Japan became somewhat stricter and thus the person in charge of those decided that distribution would end, as distributing MPC-HC compiles might get too much unwanted attention from the authorities in the worst case scenario.

petran79
16th July 2012, 17:01
so only from here then

http://xhmikosr.1f0.de/mpc-hc/?folder=bXBjLWhj

v0lt
16th July 2012, 20:40
I deleted libdca. And using ffmpeg to decode DTS. But now work only two types of output: "As is" and "Stereo". This will be enough?

Octo-puss
17th July 2012, 19:01
Just one lame offtopic question: I looked into SVN changelog out of curiosity, and there are loads of entries about some "webserver". I thought the application was simply a media player...

Snowknight26
17th July 2012, 20:17
Options -> Player -> Web Interface...

Octo-puss
17th July 2012, 21:24
Thank you. Guess I am too classical user, this completely missed me.

John_J
17th July 2012, 23:30
Hello everybody!

I know, I'm a little bit late when using MPC-HC v1.5.x quite for a long time, but yesterday I decided to try an update to v1.6.2.4902. :o

First thing I noticed is a wrong subtitle color when using ffdshow (rev3476 CLSID) as decoder with subtitles enabled. An update to rev4475 solved that problem (but most ffdshow encoders have gone now). Was there a change in the used color space or something like that?

Second thing I noticed is a missing indicator for DXVA in the status bar ("playing [DXVA]") when DXVA is used. I'm using a Nvidia GT240. Is it related to this hardware/driver or more a problem of the used renderer? I tried all, but only Overlay Mixer/VMR7 (windowed)/VMR9 (windowed) enable DXVA (with no status bar text).

Cheerio,
JohnJ

HoP
17th July 2012, 23:33
Second thing I noticed is a missing indicator for DXVA in the status bar ("playing [DXVA]") even when DXVA is used
i have that problem too :)

Aleksoid1978
18th July 2012, 07:41
i have that problem too :)

Indicator [DXVA] work only for VMR7/9 Renderless and EVR Custom/EVR Sync render.

chros
18th July 2012, 08:58
Thank you. Guess I am too classical user, this completely missed me.
For me too, but I'm using this feature with an Android phone and several remote apps on it for 2 years.

Mercury_22
18th July 2012, 09:03
I deleted libdca. And using ffmpeg to decode DTS. But now work only two types of output: "As is" and "Stereo". This will be enough?

Yes BUT "As is" setting doesn't stick !! It's reverting to stereo but the reg value for SpeakerConfig_dts it's 0 so maybe it's just the message "As is" which doesn't stick :confused:

Also I vote to remove all the settings for Audio Decoder = keep only "As is" cause any down / up mixing can / should be done in "Custom channel mapping " Why confuse the user with two settings for the same thing ?

kasper93
18th July 2012, 12:00
Also I vote to remove all the settings for Audio Decoder = keep only "As is" cause any down / up mixing can / should be done in "Custom channel mapping " Why confuse the user with two settings for the same thing ?
First of all Audio Decoder can be used as standalone filter and should have output options. Second thing is that not everyone have audio switcher enabled.


@v0lt
I think "As is" should be default setting and mixing (if needed) will be done by Microsoft mixer/driver. Mixing to stereo in decoder should be optional, you could also add 5.1 output (but without mixing) so for stereo input it will output 5.1 with blank channels.

v0lt
18th July 2012, 14:00
Yes BUT "As is" setting doesn't stick !! It's reverting to stereo but the reg value for SpeakerConfig_dts it's 0 so maybe it's just the message "As is" which doesn't stick :confused:
fixed in r5550

I think "As is" should be default setting and mixing (if needed) will be done by Microsoft mixer/driver. Mixing to stereo in decoder should be optional, you could also add 5.1 output (but without mixing) so for stereo input it will output 5.1 with blank channels.
In the beginning was the "As is". But there were big problems on some systems, so I returned the "Stereo".

John_J
18th July 2012, 19:32
Indicator [DXVA] work only for VMR7/9 Renderless and EVR Custom/EVR Sync render.

That doesn't sound logical but explains a lot. So I have to find the reason why I'm limited to windowed renderers & overlay.

vivan
18th July 2012, 20:22
Indicator [DXVA] != DXVA is using. Actually it's useless. So I don't see any problem.
Switch to LAV Video Decoder, it shows active decoder (dxva/dxva-copyback/cuvid/qs/software) plus it have dxva-copyback decoder so you could use proper subtitle filter (xy-vsfilter). Also you can try madVR, it's way better than EVR and others. And it can use dxva (as any renderer, via dxva-copyback decoder), but without showing this strange indicator :D.

HoP
18th July 2012, 20:40
Indicator [DXVA] work only for VMR7/9 Renderless and EVR Custom/EVR Sync render.

i selected "EVR CP" but it didn't work.
P.S: im using JanWillem32 builds.latest build here (http://forum.doom9.org/showpost.php?p=1582999&postcount=1139)

John_J
19th July 2012, 12:50
Indicator [DXVA] != DXVA is using. Actually it's useless.

:D That's confusing... no indicator could mean DXVA on & a displayed indicator doesn't prove the use of DXVA :confused: So I always have to look in the filter settings.

Did some other testings and tried several different HD test files (interlaced, non-interlaced, h.264, MPEG2) using the internal MPC-HC decoder. Some are played using DXVA, some not..., some even without any picture. No problems at all with LAV decoder.

PS: I still need ffdshow for playing back Avisynth files. That's the reason why I also use it's internal subtitle renderer and not VSFilter. One more filter only for subtitles...nope?!

John_J
19th July 2012, 17:18
More testing: MPC-HC (DXVA), ffdshow (DXVA), LAV DXVA, Cyberlink DXVA, VMR7/9, EVR Custom...with & without subtitles. The more deeper I get into this, the more I realize that DXVA is more of a curse than a blessing. :angry:

v0lt
19th July 2012, 18:31
i selected "EVR CP" but it didn't work.
P.S: im using JanWillem32 builds.latest build here (http://forum.doom9.org/showpost.php?p=1582999&postcount=1139)
This is an experimental build. If you have any specific questions to address to JanWillem32 in that topic.

vivan
19th July 2012, 21:27
So I always have to look in the filter settings.Any 8-bit 4:2:0 AVC video with <= 1080p would be decoded using DXVA. It's almost any video, except 10-bit video (which is in 99% cases is anime).
Anyway if LAV switch to software decoding - than that video (except MPEG-4 ASP, which is supported using CUVID, but who cares) can't be decoded with hardware decoder. In that case there is nothing else to do anyway, so why bothering? :)
Or you're trying to use pure DXVA with filters that doesn't support it (e.g. madVR, VSfilter). But in that case you should use dxva-copyback (or CUVID).

I still need ffdshow for playing back Avisynth files.So... what's the problem? Install both of them, in "External Filters" add LAV Video Decoder and choose "prefer". MPC-HC would use LAV, DirectShowSource/DSS2 from avisynth - ffdshow...

That's the reason why I also use it's internal subtitle renderer and not VSFilter. One more filter only for subtitles...nope?!I thought you were using ffdshow subtitle's, since if you are using ISR nothing (including decoder) could screw them up.

More testing: MPC-HC (DXVA), ffdshow (DXVA), LAV DXVA, Cyberlink DXVA, VMR7/9, EVR Custom...with & without subtitles. The more deeper I get into this, the more I realize that DXVA is more of a curse than a blessing. :angry:What's the problem?
If you're using ISR, than subtitles can't affect anything. And LAV is perfect solution for MPC-HC...
If you are using internal DXVA decoders - make sure that all "DXVA Compatibility checks" in decoder settings are off.
Also note that it's impossible to use pure dxva decoders (e.g. ffdshow dxva) with avisynth.