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

nevcairiel
22nd August 2010, 08:34
It only works with MPC's internal splitters, can it be enabled for other splitters?

The splitters need to export information where the keyframes are, and its not supported on all container formats. The best performance you'll get with MKV.
The new splitter will also support this. :)

tetsuo55
22nd August 2010, 09:31
You guys crack me up.
Have you completely lost touch with reality now?
Instead of adding ever more features you should concentrate on fixing the one million bugs that have been reported.

It's still impossible to play back BBC HD content with DXVA using MPC vid.dec. & ATI by the way. Just to let you know.Here is a quick basic lesson in Free Open Source Software:
"Developers will work on whatever motivates them to get up in the morning"

That said, the bug you mentioned is very difficult to diagnose and fix, its not like we have not tried!
The svn commits only show the successes, not the 100's of failures to fix bugs!

Now that you understand how it works, you also quickly realise that you are this person, who is motivated by this bug when you get up in the morning, so a patch from you is very welcome. (and if you do not know how to program, don't worry neither did half of the devs who eventually committed patches to mpc-hc, its easy to learn the basics required since you can quickly specialise in that one area that interests you)

(PS: The audio renderer is not being developerd by team-mpc, but by a dev from and for a different project,we are simply lucky that he codes it in a way we can use too)

starla
22nd August 2010, 10:55
You guys crack me up.
Have you completely lost touch with reality now?
Instead of adding ever more features you should concentrate on fixing the one million bugs that have been reported.

This was prolly targeted at me - it is true that my marbles have been lost for many years already.

Parts of the lost marbles can be found here: http://forum.team-mediaportal.com/general-development-no-feature-request-here-48/mediaportal-audio-renderer-better-video-playback-quality-84441/

btw. as forums change so will the nick :)


It's still impossible to play back BBC HD content with DXVA using MPC vid.dec. & ATI by the way. Just to let you know.

ATI is most likely the responsible for this - it is not only MPC-HC H264 decoder issue.

http://forum.team-mediaportal.com/video-cards-334/warning-pixelation-corruption-h264-channels-82941/

STaRGaZeR
22nd August 2010, 11:00
The splitters need to export information where the keyframes are, and its not supported on all container formats. The best performance you'll get with MKV.
The new splitter will also support this. :)

Cool :)

Is there an option to use this feature all the time without having to press shift?

lboregard
22nd August 2010, 12:40
for some reason, some of my mkvs play 2 audio streams at the same time ... i seem to believe it happens when one of the stream is vorbis ... but have yet to confirm

im attaching 2 screenshot .. first one showing the filter graph, the second showing options

pls help

Momber
22nd August 2010, 13:36
ATI is most likely the responsible for this - it is not only MPC-HC H264 decoder issue.

http://forum.team-mediaportal.com/video-cards-334/warning-pixelation-corruption-h264-channels-82941/

That IS interesting. Looks like it's finally time to say goodbye to ATI. They have tested my patience to the limit on other issues in the past as well...

If you or anyone could recommend a fanless GForce card that works perfectly with MPC/DXVA, including BBC HD streams, on XP and Vista (not interested in "7"), I would be much obliged.
Needs to support PowerStrip, too.
TIA very much.

Having said that, on XP SP3, with my older HD2600, I don't see any pixelation/corruption. I see a totally black screen (VMR9 renderless).
With any of the non-XP renderers selected under output, MPC crashes. Tested up to and including build 2283.

tetsuo55
22nd August 2010, 13:47
Be carefull when deciding things based purely om mpeg-ts based problems, especially bbc.

Almost all the decoders and splitters have 1 or more problems with them, hopefully lavfsplitter wil eventually solve all the ones on the splitter side.

Momber
22nd August 2010, 13:58
Yeah I just read elsewhere that GForce cards are said to have worse PQ, especially with SD material. Sigh.
So I guess I'm going to buy a faster CPU instead and disable DXVA for H.264. CoreAVC is such a nice decoder in software-only mode ;)

nurbs
22nd August 2010, 14:23
Yeah, I read that too about the geforce cards. It's wrong, but that doesn't stop people from repeating it.

omri09
22nd August 2010, 15:25
Cool :)

Is there an option to use this feature all the time without having to press shift?

Join the question.

jeremy33
22nd August 2010, 15:35
Why the MPEG PS/TS/PVA - MP4/MOV - MPGEG AUDIO splitter are not checked by default now ?

88keyz
22nd August 2010, 15:55
for some reason, some of my mkvs play 2 audio streams at the same time ... i seem to believe it happens when one of the stream is vorbis ... but have yet to confirm

im attaching 2 screenshot .. first one showing the filter graph, the second showing options

pls help

I can also confirm this behavior when you have multiple audio tracks and one of them is Vorbis audio. However the solution is simple, install Haali Media Splitter (http://haali.su/mkv/).

starla
22nd August 2010, 16:08
Be carefull when deciding things based purely om mpeg-ts based problems, especially bbc.

Almost all the decoders and splitters have 1 or more problems with them, hopefully lavfsplitter wil eventually solve all the ones on the splitter side.

Same corruption issue can be reproduced with haali, MPC-HC and TsReader (MediaPortal) source filters. Also peole who use MCE are reporting the issue.

http://support.microsoft.com/?kbid=2008334

http://support.amd.com/us/kbarticles/Pages/GPU40-video-corruption-when-viewing-content.aspx

http://www.avsforum.com/avs-vb/showthread.php?t=1224566

Alexander01
22nd August 2010, 16:56
Yeah I just read elsewhere that GForce cards are said to have worse PQ, especially with SD material. Sigh.


Just a question about the difference in PQ between Intel, ATI and nVidia.

If you look here: http://www.kitguru.net/components/graphic-cards/zardon/hqv-benchmark-2-0-analysis-ati-nvidia-and-intel/43/

You see ATI has cards has overall the highest scores in the HQV tests.

Now my question: Is this HQV test based on DXVA hardware decoding? Or just Software decoding (CPU)? I'm asking this because if you compare the DXVA ffdshow decoder and the normal ffdshow decoder there is no difference in PQ. The only difference is the motion that is a little bit smoother/less stuttering with DXVA.

So these HQV tests just represent the quality of the general video output from a videocard? (so DXVA/GPU or CPU decoding doesn't make sense with this?)

tetsuo55
22nd August 2010, 18:14
The HQV tests are done with ATI's hardware deinterlacers.

Alexander01
22nd August 2010, 19:28
But are these also used when using the DXVA or non-DXVA decoder of MPC-HC and ffdshow? Is it required to use DVXA to make use of ATI's hardware deinterlacers?

Momber
22nd August 2010, 21:59
Is it required to use DVXA to make use of ATI's hardware deinterlacers?
Yes it is.

nevcairiel
22nd August 2010, 22:03
Yes it is.

Is it?
I never owned a ATI, but i know that with NVIDIA this is a common misconception.
You can use the deinterlacer and the other post-processing without using DXVA, you just need to set the color outputformat to NV12.

Alexander01
22nd August 2010, 22:11
And what about the famous upscaling that ATI cards do? Do I need to use DXVA/GPU decoding for this, or can I also use CPU decoding?

STaRGaZeR
22nd August 2010, 23:51
Yes it is.

No it isn't. Just tell the decoder to output NV12 and set the interlace flags acordingly.

a_afra
23rd August 2010, 00:08
I'm proud to announce that I've developed some new cool renderer (EVR-CP and VMR9) features. :D

The most important new functionality is proper, full ICC color management. I believe this is a unique feature amongst media players (correct me if I'm wrong). By enabling this option, you can get accurate colors like in any other color managed application (e.g., Photoshop) if you have a calibrated screen. Basically, it simulates a reference studio monitor. You can find this feature at Renderer Settings -> Color Management.

There are three new/changed options in the Presentation menu:

10-bit RGB Output: If you have a 10-bit monitor and GPU, use this to take advantage of the higher precision. For maximum quality you may have to enable the following option too:
Force 10-bit RGB Input: Force the EVR mixer to produce 10-bit data. Highest quality. May be unstable.
Full Floating Point Processing: All temporary data is floating point (16-bit), so you don't lose precision during processing.

If you enable any of these new features, dithering will be applied as a final processing step to prevent banding artifacts.

Download the latest build to check these out. Let me know if you encounter any problems or if you have questions.

Snowknight26
23rd August 2010, 00:59
Forcing 10-bit RGB input causes EVR to display nothing but a black screen for me. Win 7 / 4850.

XhmikosR
23rd August 2010, 01:02
Forcing 10-bit RGB input causes EVR to display nothing but a black screen for me. Win 7 / 4850.

I cannot reproduce it.

Snowknight26
23rd August 2010, 01:17
Ctrl+J shows the surface as 10-bit, backbuffer is 8-bit, display is also 8-bit.

Another thing I've noticed is that right after checking 10-bit RGB Output, going fullscreen and (repeatedly?) trying to bring up the seekbar causes the GUI to freeze for a while. However, I can only reproduce this with a 480i60 (pure interlaced) MPEG-2 clip using the Microsoft DTV-DVD Video Decoder (DXVA).

SantinoSan
23rd August 2010, 01:30
HALP! OK, so what I thought was a bug was proven to NOT be a bug in MPC...but I was only able to "fix" it temporarily. After I installed a new video card and restarted the PC all went to crap. I cannot play MKVs of Blu-ray rips with pcm audio. I have tried every combination of splitters and decoders but I get nothing. Mediaportal works and I tried to mimic the setup but no luck. I also tried to use Graphstudio to see exactly what filter were being used, but it won't display any graphs, despite "seeing" the graph when I try to do remote graph. I'm sure it is a setup issue but I have exhausted my knowledge.

Can anybody help?

Thanks,
Santino

XhmikosR
23rd August 2010, 01:43
@SantinoSan: Reporting the same thing multiple times on multiple places doesn't necessarily help to fix your problem.

http://sourceforge.net/apps/trac/mpc-hc/ticket/665

Snowknight26
23rd August 2010, 01:51
Speaking of trac, might as well close https://sourceforge.net/apps/trac/mpc-hc/ticket/671 as its a dupicate of ticket 20.

SantinoSan
23rd August 2010, 02:00
@SantinoSan: Reporting the same thing multiple times on multiple places doesn't necessarily help to fix your problem.

http://sourceforge.net/apps/trac/mpc-hc/ticket/665

I know this is not a bug, hence the "NOT a bug" comment. I just need a little help with setup. If this is the wrong thread for such a thing I would be happy to start another thread for debugging MY setup issue.

Thanks,
Santino

XhmikosR
23rd August 2010, 02:06
If you see the comments on the trac, you'll notice that I cannot play back the audio using the internal filters.

Maccara
23rd August 2010, 06:29
The most important new functionality is proper, full ICC color management. I believe this is a unique feature amongst media players (correct me if I'm wrong).

Thank you!

You're right, this is pretty unique - been looking for a player that would do this properly (with standard renderers) for ages and pretty much gave up on it unless I was willing to implement it myself.

Initial impression: Works good. Well done!

a_afra
23rd August 2010, 08:24
Forcing 10-bit RGB input causes EVR to display nothing but a black screen for me. Win 7 / 4850.

Since this option forces to use that feature, it may not work correctly if your GPU doesn't support it.

Mercury_22
23rd August 2010, 09:11
I'm proud to announce that I've developed some new cool renderer (EVR-CP and VMR9) features. :D

The most important new functionality is proper, full ICC color management. I believe this is a unique feature amongst media players (correct me if I'm wrong). By enabling this option, you can get accurate colors like in any other color managed application (e.g., Photoshop) if you have a calibrated screen. Basically, it simulates a reference studio monitor. You can find this feature at Renderer Settings -> Color Management.

There are three new/changed options in the Presentation menu:

10-bit RGB Output: If you have a 10-bit monitor and GPU, use this to take advantage of the higher precision. For maximum quality you may have to enable the following option too:
Force 10-bit RGB Input: Force the EVR mixer to produce 10-bit data. Highest quality. May be unstable.
Full Floating Point Processing: All temporary data is floating point (16-bit), so you don't lose precision during processing.

If you enable any of these new features, dithering will be applied as a final processing step to prevent banding artifacts.

Download the latest build to check these out. Let me know if you encounter any problems or if you have questions.
Salut ! :)

Thanks for your new feature but why gamma default / recommended it's 2.35 and not 2.2 ?

Can you post a more detailed description /usage of all this new features ?

fastplayer
23rd August 2010, 09:39
I'm proud to announce that I've developed some new cool renderer (EVR-CP and VMR9) features. :D
Thank you very much for your contributions! :thanks:

Is there any chance you can implement dithering for default/non-10bit scenarios?
This would improve image quality for us mere mortals with simple HTPC setups, too.

a_afra
23rd August 2010, 09:45
Thanks for your new feature but why gamma default / recommended it's 2.35 and not 2.2 ?


Studio monitors are usually calibrated to 2.35-2.4 gamma. Surprisingly it's not standardized yet. Since the goal of the color management feature is to get as close to the original appearance as possible, it should be viewed at the gamma of the studio monitor used by the authors of the video. However, the optimal gamma depends on the viewing conditions. A gamma of 2.35 looks as it should only in a dark environment. This is why you can change this value if you would like to.

The most important thing is to properly calibrate your display (It doesn't matter to what gamma value). This is the only way to get accurate colors and gamma. Without calibration, the color management feature is useless.

I will soon update the wiki with a detailed description of the new features.

Mercury_22
23rd August 2010, 10:03
Studio monitors are usually calibrated to 2.35-2.4 gamma. Surprisingly it's not standardized yet. Since the goal of the color management feature is to get as close to the original appearance as possible, it should be viewed at the gamma of the studio monitor used by the authors of the video. However, the optimal gamma depends on the viewing conditions. A gamma of 2.35 looks as it should only in a dark environment. This is why you can change this value if you would like to.

The most important thing is to properly calibrate your display (It doesn't matter to what gamma value). This is the only way to get accurate colors and gamma. Without calibration, the color management feature is useless.

I will soon update the wiki with a detailed description of the new features.

Thanks for the info !
(Strange I always though studio monitors are calibrated to 2.2 gamma too)

Anyway I don't think the full 10 bit chain it will work until the bug introduced somewhere after rev 1824 (last rev I can test with full 10bit chain working) it gets fixed see Ticket #508 https://sourceforge.net/apps/trac/mpc-hc/ticket/508

EDIT Forcing 10-bit RGB input causes EVR to display nothing but a black screen for me. Win 7 / 4850.
The black screen it's a driver problem since now I'm getting it even with rev 1824

a_afra
23rd August 2010, 10:03
Is there any chance you can implement dithering for default/non-10bit scenarios?


If you turn on the full floating point processing, the output will be dithered. This means that the player will not introduce any more banding artifacts after decoding a frame. To get rid of all banding artifacts, the decoded frames must be either dithered too or computed at a higher precision than 8 bits.

The mentioned option tries to get 10-bit input frames to process, but only if EVR reports that it's supported. This depends on the GPU. I'm not sure about ATIs, but my NVIDIA doesn't officially support 10-bit video processing.

However, it seems to work in most cases (I had problems with interlaced sources) if you force it. You can do this be enabling the "Force 10-bit RGB Input". You need at least a DX10 GPU. It will also activate dithering. This way, all banding artifacts should be eliminated. Unfortunately, I don't have a 10-bit display, but I think the difference between properly dithered 8-bit and 10-bit is almost zero for videos.

a_afra
23rd August 2010, 10:10
Thanks for the info !
(Strange I always though studio monitors are calibrated to 2.2 gamma too)

Anyway I don't think the full 10 bit chain it will work until the bug introduced somewhere after rev 1824 it gets fixed see Ticket #508 https://sourceforge.net/apps/trac/mpc-hc/ticket/508

You're welcome :)

Let's try to track down that 10-bit bug. We should continue this discussion at the ticket. First, please tell me your exact hardware and software setup: display, GPU, connection used, OS, aero on/off.

fastplayer
23rd August 2010, 10:16
If you turn on the full floating point processing, the output will be dithered. This means that the player will not introduce any more banding artifacts after decoding a frame. To get rid of all banding artifacts, the decoded frames must be either dithered too or computed at a higher precision than 8 bits.

The mentioned option tries to get 10-bit input frames to process, but only if EVR reports that it's supported. This depends on the GPU. I'm not sure about ATIs, but my NVIDIA doesn't officially support 10-bit video processing.

However, it seems to work in most cases (I had problems with interlaced sources) if you force it. You can do this be enabling the "Force 10-bit RGB Input". You need at least a DX10 GPU. It will also activate dithering. This way, all banding artifacts should be eliminated. Unfortunately, I don't have a 10-bit display, but I think the difference between properly dithered 8-bit and 10-bit is almost zero for videos.
Thanks for the detailed explanation! And yep, this info literally cries for some wiki attention! :D

Mercury_22
23rd August 2010, 10:22
You're welcome :)

Let's try to track down that 10-bit bug. We should continue this discussion at the ticket. First, please tell me your exact hardware and software setup: display, GPU, connection used, OS, aero on/off.

See my signature :) Everything to default (MPC-HC, drivers, hardware...) and aero on

EDIT Just to resume:
From what revs I can test from http://www.xvidvideo.ru/media-player-classic-home-cinema-x86-x64/ last working it's 1824 firs not working 1829 !
My bet it's on Revision 1826 - Directory Listing
Modified Sun May 2 01:20:06 2010 UTC (3 months, 3 weeks ago) by kinddragon

DX7 presenters splitter to several files
Improved Reset() handling (ticket #12)

Also now I'm getting Surface X8R8G8B8 too I'll check later to see when this has appear

EDIT 2 Never mind the Surface X8R8G8B8 after resetting MPC-HC's settings now I get Surface A2R10G10B10 so I think everybody should reset their settings with the new rev with your new features

So it's just the Display X8R8G8B8 that won't "go" to Display A2R10G10B10

Thunderbolt8
23rd August 2010, 10:33
dont know if thats technically possible, but how about adding kernel streaming (XP) or wasapi (win7) output in order to have bit-exact output? atm it seems like reclock is needed for that, but if this could be done with mpc directly, then theres no need having to use reclock for that.

oddball
23rd August 2010, 10:52
If oyu are going to add in WASAPI support then you may as well throw in PAL speed down option too and option to transcode PCM to AC3 on the fly (Best interpolation and 24bit padded to 32 of course) ;)

Thunderbolt8
23rd August 2010, 11:06
but isnt that different, since what you mean is a modifier of audio, while kernel streaming & wasapi is merely another form of output of the audio?

a_afra
23rd August 2010, 11:19
See my signature :) Everything to default (MPC-HC, drivers, hardware...) and aero on


Oh, sorry :) Are you sure that you can really get 10-bit output? For example, if you have an NVIDIA card, you need a Quadro and a Displayport connection. Also, regardless of GPU, 10-bit is active only if you have aero turned off or if you are in fullscreen mode.

The new 10-bit RGB Output is different from the old 10-bit option. It tries to set the input (the video surface) to 10-bit too, but it mostly applies to the precision of the processed results. It can be useful even if the video surface depth is only 8 bits.

In your case, it seems that EVR does not report a supported 10-bit surface format. This is why the surface depth is only 8bits for you. The old 10-bit option didn't take this into account, but the new one doesn't force it, because it's a hack. You have to enable the force option too if you really want 10-bit input.

Mercury_22
23rd August 2010, 11:42
Oh, sorry :) Are you sure that you can really get 10-bit output? For example, if you have an NVIDIA card, you need a Quadro and a Displayport connection. Also, regardless of GPU, 10-bit is active only if you have aero turned off or if you are in fullscreen mode.

The new 10-bit RGB Output is different from the old 10-bit option. It tries to set the input (the video surface) to 10-bit too, but it mostly applies to the precision of the processed results. It can be useful even if the video surface depth is only 8 bits.

In your case, it seems that EVR does not report a supported 10-bit surface format. This is why the surface depth is only 8bits for you. The old 10-bit option didn't take this into account, but the new one doesn't force it, because it's a hack. You have to enable the force option too if you really want 10-bit input.

You're correct the surface was because of the new "Force 10-bit RGB Input" if I enable it I get Surface A2R10G10B10 too but
black screen because of the drivers

So to resume (again) using D3D Fullscreen Mode for all tests

1. with only "10-bit RGB Output" enable

rev 1824 gives me Surface A2R10G10B10 Backbuffer A2R10G10B10 Display A2R10G10B10 and Black screen but I remember clearly that with older drivers was no black screen !

rev 2306 gives me Surface X8R8G8B8 Backbuffer A2R10G10B10 Display X8R8G8B8 no black screen !

2. with "10-bit RGB Output" enable and "Force 10-bit RGB Input" enable rev 2306 gives me Surface A2R10G10B10 Backbuffer A2R10G10B10 Display X8R8G8B8 and black screen

3. with only "Force 10-bit RGB Input" enable rev 2306 gives me Surface A2R10G10B10 Backbuffer X8R8G8B8 Display X8R8G8B8 and black screen

a_afra
23rd August 2010, 12:01
Thanks for summing it up!

namaiki
23rd August 2010, 13:12
If you turn on the full floating point processing, the output will be dithered.

Thank you so much, a_afra. EVR-CP finally has dithered output. :)

mark0077
23rd August 2010, 15:37
Why the MPEG PS/TS/PVA - MP4/MOV - MPGEG AUDIO splitter are not checked by default now ?

Yeah I ran into that a few days ago, took me a while to figure it out.... it got disabled without me knowing...

XhmikosR
23rd August 2010, 15:47
All the filters are enabled by default. You can verify it by resetting your settings. The situation you describe might have happened because of the new PCM decoder which changed the order of the internal filters.

mark0077
23rd August 2010, 16:03
Well forgetting the order, the mpeg ps/ts/pva internal filter was unchecked a few days ago when I looked, as I was having terrible issues with all m2ts files. Is there any changes that were made recently that could disable an internal splitter?

I'll try to trace back using my browsers download history, which version may have caused this.

XhmikosR
23rd August 2010, 17:10
I just told you which change must have caused it. I cannot provide you with more info since I don't have. Try all the previous revisions until you find which one caused it. But I believe it's the PCM decoder addition which by changing the order caused that.