View Full Version : Media Player Classic Home Cinema (MPC-HC) - DXVA!
avivahl
8th March 2008, 18:29
A small idea, could you make a small build that will pop a window when starting to play a file? The window could contain some verbose information (inside a multiline textbox) that I'll be able to post here (or at pastebin, if it's long) and you'll see where the decoding process halts...
Casimir666
8th March 2008, 18:32
File seeking is not the problem... I can (and always could) still seek in a file. If I click on the slider, at the middle for example, it will correctly say "00:27/01:15", but won't go on to 00:28... Even when I seek, the same video frame (from the beginning) stays.
Also, if I turn off DXVA (uncheck Enable DXVA, but keep the internal MPC H264 decoder itself checked), the video will still NOT show. The file will play forward, and audio can be heard... but no video. Just a black frame.
With ffdshow, everything is showing fine, of course.
Ok can you do a screenshot for the property page of the source filter? It didn't seems to be the internal MP4 source isn't it?
avivahl
8th March 2008, 18:53
Ok can you do a screenshot for the property page of the source filter? It didn't seems to be the internal MP4 source isn't it?
I hope the following few shots will help you:
- Main window (after launching "mplayer.exe 10,000B.C.Teaser.mp4"): Screenshot (http://i31.tinypic.com/116q4qs.jpg)
- Internal MP4 Splitter: [IN] Input (http://pastebin.com/m4ca41b48), [OUT] GPAC ISO Video Handler (http://pastebin.com/m1caf348a), [OUT] GPAC ISO Audio Handler (http://pastebin.com/m3a6b9cb0).
- MPC Video Decoder (H.264): Properties Window (http://i31.tinypic.com/34e2637.jpg), [IN] Video (http://pastebin.com/m13d82002), [OUT] Output (http://pastebin.com/m10b0cfff).
- Enhanced Video Renderer (custom presenter): Properties Window (http://i26.tinypic.com/ouy0yc.jpg), [IN] EVR Input0 (http://pastebin.com/m1322e444).
- MPC-HC Options: Output Tab Screenshot (http://i25.tinypic.com/3swv5.jpg), Internal Filters Tab Screenshot (http://i29.tinypic.com/2lmqe6o.jpg).
This should give you an idea of things... :)
-Avi Vahl.
appyton
8th March 2008, 19:07
My results:
NVIDIA 8600 GT, P Core2Duo 6420, OS: Vista 32, using EVR (not custom)
Using MPC Video Decoder
The video will still NOT show. The file will play forward, and audio can be heard, but no video. Just a black frame (Just like Avi Vahl). Changing IDC to 4.1 didnt make a difference.
Using Cyberlink H264:
720p - successful HA, with CPU < 5% each core, also direct vobsub works fine.
1080p - even after changing IDC to 4.1 and also ref 5 (http://www.avsforum.com/avs-vb/showthread.php?t=972503), no HA, all I get is green screen.
With CoreAVC:
Everything plays, no HA ever.
Casimir666
8th March 2008, 19:18
[OUT] GPAC ISO Video Handler
Filter : MP4 Splitter (low merit) - CLSID : {61F47056-E400-43D3-AF1E-AB7DFFD4C4AD}
- Connected to:
CLSID: {008BAC12-FBAF-497B-9670-BC6F6FBAE2C4}
Filter: MPC Video Decoder
Pin: Video
- Connection media type:
Video: MPEG4 Video (H264) 1280x544 23.96fps
AM_MEDIA_TYPE:
majortype: MEDIATYPE_Video {73646976-0000-0010-8000-00AA00389B71}
subtype: Unknown GUID Name {31637661-0000-0010-8000-00AA00389B71}
formattype: FORMAT_MPEG2_VIDEO {E06D80E3-DB46-11CF-B4D1-00805F6CBBEA}
bFixedSizeSamples: 1
bTemporalCompression: 0
lSampleSize: 1
cbFormat: 165
VIDEOINFOHEADER:
rcSource: (1236384,208945920)-(0,14)
rcTarget: (1236416,0)-(0,14)
dwBitRate: 0
dwBitErrorRate: 0
AvgTimePerFrame: 417309
Hum strange things in rcSource. I'll try in 64 bits if i have the same...
avivahl
8th March 2008, 21:21
Any idea? Could the rcSource and rcTarget be the reason for the problem? I tried reading this (http://msdn2.microsoft.com/en-us/library/ms787671(VS.85).aspx), but my limited digital-video/directshow experience shows in this subject... The only thing I understood was that these RECTs represent some section of the video frame which is passed to the next filter...
Pheon
8th March 2008, 21:56
If it would help, since I'm also on Vista x64, I could post up some of the properties pages I get. I also get the same behaviour as avivahl with DXVA unchecked and MPC video decoder still checked. Audio and subtitles play but the video stays as a black frame.
Casimir666
8th March 2008, 22:17
Any idea? Could the rcSource and rcTarget be the reason for the problem? I tried reading this (http://msdn2.microsoft.com/en-us/library/ms787671(VS.85).aspx), but my limited digital-video/directshow experience shows in this subject... The only thing I understood was that these RECTs represent some section of the video frame which is passed to the next filter...
This rect are use by renderer to crop part of the video. I have tried on my Vista 64 : same crazy values for rect but the video play normally. So i think it's only a display bug in the property window...
CiNcH
8th March 2008, 22:24
@Casimir666,
thanks for providing the standalone filters. Are there any news concerning interlaced content and the H.264 DXVA decoder?
avivahl
8th March 2008, 22:25
Well, what about my previous idea:
A small idea, could you make a small build that will pop a window when starting to play a file? The window could contain some verbose information (inside a multiline textbox) that I'll be able to post here (or at pastebin, if it's long) and you'll see where the decoding process halts...
It could help debug/identify which part of the decoding chain breaks/halts video playback.
Sulik
8th March 2008, 23:05
I had a quick look at the MPC-HC source, and it definitely looks like it's not doing proper DPB management for DXVA H.264. This will screw up any non-trivial dpb reordering, ie: reference b-frames (hw will be using incorrect reference frames at best, unless it's ignoring all the dxva parameters and doing it's own reordering)
JohnLai
8th March 2008, 23:48
My results:
NVIDIA 8600 GT, P Core2Duo 6420, OS: Vista 32, using EVR (not custom)
Using MPC Video Decoder
The video will still NOT show. The file will play forward, and audio can be heard, but no video. Just a black frame (Just like Avi Vahl). Changing IDC to 4.1 didnt make a difference.
Using Cyberlink H264:
720p - successful HA, with CPU < 5% each core, also direct vobsub works fine.
1080p - even after changing IDC to 4.1 and also ref 5 (http://www.avsforum.com/avs-vb/showthread.php?t=972503), no HA, all I get is green screen.
With CoreAVC:
Everything plays, no HA ever.
Casimir666, I'm still experience the same problem exactly like appyton and avivahl except I'm on VMR9 renderless(win xp). Of course, using 3d surfaces with bilinear, other settings on the vmr untouched.
thuan
9th March 2008, 03:03
@Casimir666: May you answer my problem about early rendering of softsub?
DrNein
9th March 2008, 06:05
Sorry i don't see what is missing from you post :confused: You are talking of the theater mode / standard display ?
I am referring primarily to dual display however it still remains that VMR7 Windowed is a good choice for XP since it is capable of both DxVA and mirroring yet it is excluded from your "rules" list. VMR9 Renderless is also capable of DxVA but not mirroring so is less practial but okay for a single display. All other renderers are essentially useless for our purposes.
Casimir666
9th March 2008, 09:01
@thuan
I haven't noticed subs delay in DXVA mode (EVR buffering should introduce this). Matmaul have added live subtitle shifting (not present in v1.1, but should be in latest _xxl)
=> F1 / F2 shift subs (without saving change in file)
I am referring primarily to dual display however it still remains that VMR7 Windowed is a good choice for XP since it is capable of both DxVA and mirroring yet it is excluded from your "rules" list. VMR9 Renderless is also capable of DxVA but not mirroring so is less practial but okay for a single display. All other renderers are essentially useless for our purposes.
No VRM7 didn't support DXVA. Until recently the filter have a bug in the property page, but he was lying ;)
_xxl
9th March 2008, 10:36
I had a quick look at the MPC-HC source, and it definitely looks like it's not doing proper DPB management for DXVA H.264. This will screw up any non-trivial dpb reordering, ie: reference b-frames (hw will be using incorrect reference frames at best, unless it's ignoring all the dxva parameters and doing it's own reordering)
Please send a patch.
thuan
9th March 2008, 11:17
@Casimir666: Yeah, sub early is because of EVR buffering, is there anyway to disable it? Selecting 1 and 2 frame buffering freezes the video though whether I use DXVA or not. I can confirm that sub shifting is working fine but having to set it for every movie I watch is kinda tedious (I watch mostly anime fansubs and nowadays a lot of them have soft subs). Any chance that an auto sub delay feature will be implemented to counter this EVR buffering side effect?
arfster
9th March 2008, 14:25
1080p - even after changing IDC to 4.1 and also ref 5 (http://www.avsforum.com/avs-vb/showthread.php?t=972503), no HA, all I get is green screen.
To clarify: did you re-encode the file to ref5? The green screen is usually the result of an encode breaking L4.1 rules, and the software can't do much if the hardware doesn't support beyond that.
clsid
9th March 2008, 15:30
@Casimir666: Yeah, sub early is because of EVR buffering, is there anyway to disable it? Selecting 1 and 2 frame buffering freezes the video though whether I use DXVA or not. I can confirm that sub shifting is working fine but having to set it for every movie I watch is kinda tedious (I watch mostly anime fansubs and nowadays a lot of them have soft subs). Any chance that an auto sub delay feature will be implemented to counter this EVR buffering side effect?
@thuan
I haven't noticed subs delay in DXVA mode (EVR buffering should introduce this)
Matmaul's delay functionality could internally be used to set an initial delay:
IF using EVR THEN
delay (in ms) := "EVR Buffers" / framerate * 1000;
e.g. 5 buffers and 25 fps would mean a 200 millisecond delay.
Casimir666
9th March 2008, 16:04
Matmaul's delay functionality could internally be used to set an initial delay:
IF using EVR THEN
delay (in ms) := "EVR Buffers" / framerate * 1000;
e.g. 5 buffers and 25 fps would mean a 200 millisecond delay.
Hum not with MatMaul shift, but i think there is a solution with a modification in EVRCustom. Thuan you are right there is a shift, but really with buffer set to 5 i haven't noticed before :eek: With 15 buffers yet it's became clear
appyton
9th March 2008, 16:22
To clarify: did you re-encode the file to ref5? The green screen is usually the result of an encode breaking L4.1 rules, and the software can't do much if the hardware doesn't support beyond that.
I followed the instructions in the first post of that thread on AVS.
Tool AVInaptic is still giving Ref 9!! just checked it, wonder what else I can do to change to Ref 5
3ngel
9th March 2008, 17:48
Hi,
i'm trying to enable the DXVA accelleration, but there is no way i can use it no matter what i try.
I have XP 64, HD2600, Cat 8.2, VMR9 Renderless (even with other renderers it doesn't work).
The internal MPC filter for h264 works well, but "Not Using DXVA" is always present. For VC-1, sometimes the frame get stuck or there are error like green garbled pixels.
BTW someone can help me to get DXVA working?
Thanks
molitar
9th March 2008, 18:17
Hi,
i'm trying to enable the DXVA accelleration, but there is no way i can use it no matter what i try.
I have XP 64, HD2600, Cat 8.2, VMR9 Renderless (even with other renderers it doesn't work).
The internal MPC filter for h264 works well, but "Not Using DXVA" is always present. For VC-1, sometimes the frame get stuck or there are error like green garbled pixels.
BTW someone can help me to get DXVA working?
Thanks
The internal MPC does not seem to have any leniency for improperly formatted h264 or VC-1 and will fail. CoreAVC has this built in so it can still play many improperly formatted h264. Would be nice if this could be done with MPC or if they could set it that if it fails to render than switch to a secondary renderer like CoreAVC.
tetsuo55
9th March 2008, 19:34
I had a quick look at the MPC-HC source, and it definitely looks like it's not doing proper DPB management for DXVA H.264. This will screw up any non-trivial dpb reordering, ie: reference b-frames (hw will be using incorrect reference frames at best, unless it's ignoring all the dxva parameters and doing it's own reordering)
yes please submit a patch for this :)
Could this be the reason why some dxva compliant files sometimes show macroblocking or red flashing blocks?
MatMaul
9th March 2008, 20:47
Anamorphic MPEG-4 Part-2 and Part-10 video streams encoded with aspect ratio signalling and muxed within the .MP4 (or .AVI) container, are not displayed correctly.
However, anamorphic MPEG-1 and MPEG-2 video streams encoded with aspect ratio signalling and muxed within the .MP4, .MPG and .VOB containers are displayed correctly.
confirmed, this also applies for MPEG2 but it's difficult to demonstrate it because all the muxers seems to copy the AR signalling from the bitstream into the container AR flag.
actually the MPC decoders just copy the AR provided by the demuxer to the renderer, so if an AR is present in the video bitstream it is ignored.
Selecting 1 and 2 frame buffering freezes the video though whether I use DXVA or not.
confirmed and fixed, the values 1 and 2 are not available anymore :p
Pheon
10th March 2008, 06:32
I tried to play some DVDs recently, however, with the 64 bit version set to EVR custom pres, it will only play the first frame of the video and then it freezes on that frame while the audio continues and the time elapsed continues to get longer. If I fast forward or rewind I get a new frame but it still freezes at that frame if I try to resume playback. With the normal EVR and VMR9 renderless I get it to play, however subtitles do not show at all and when I rewind or fast forward the video performance seems to drop. In the filters context menu it says it's using Microsoft MPEG-2 Video Decoder. With the 32 bit version everything works fine, I get subtitles and audio with EVR custom pres. Under filters, it says it's using Cyberlink Video/SP Decoder (MD3). This is probably from Dell MediaDirect that's installed on my computer.
thuan
10th March 2008, 08:38
Hum not with MatMaul shift, but i think there is a solution with a modification in EVRCustom. Thuan you are right there is a shift, but really with buffer set to 5 i haven't noticed before :eek: With 15 buffers yet it's became clear
I notice it with three frame buffer, too. I'm too picky :D. Guess that's because I have done a bunch of karaoke lyrics and did some sub timing myself.
leeperry
10th March 2008, 11:00
oh cool we gonna get internal subs right on time.
coz atm I use vsfilter with a delay, and this thing is pretty buggy.....refuses to override placement, etc :eek:
molitar
10th March 2008, 12:19
Help is their no method to load DirectVobSub without breaking DXVA? If I disable DirectVobSub than DXVA works but than I have no subtitle. I thought maybe loading it in the external filter section but that failed to work too.
Lys
10th March 2008, 13:44
How can you see if the hardware acceleration is working? Just look at the HW percentage?
clsid
10th March 2008, 14:54
Help is their no method to load DirectVobSub without breaking DXVA? If I disable DirectVobSub than DXVA works but than I have no subtitle. I thought maybe loading it in the external filter section but that failed to work too.
With DXVA the video decoder must be directly connected to the video renderer. No intermediate filters like DirectVobSub are allowed.
You should use the internal subtitle option in MPC. That is compatible with DXVA because it sends the subs to the renderer (which add them to the video) instead of adding it to the video directly (like DirectVobSub does).
Miryan
10th March 2008, 17:06
How can you see if the hardware acceleration is working? Just look at the HW percentage?
Filters > MPC Video Decoder > DXVA settings.
If you set it to "Enable DXVA" you see the next row, started with "DXVA Mode".
SeeMoreDigital
10th March 2008, 17:32
confirmed, this also applies for MPEG2 but it's difficult to demonstrate it because all the muxers seems to copy the AR signalling from the bitstream into the container AR flag.
actually the MPC decoders just copy the AR provided by the demuxer to the renderer, so if an AR is present in the video bitstream it is ignored.Hmmm....
I've just carried out some more tests with some anamorphic 720x576 MPEG-2 elementary (.M2V) streams encoded with aspect ratio signalling. They are displayed at the correct shape during playback. So it would seem the AR flag within MPEG-2 bit-streams are being detected :)
This would suggest the issue is more specific to MPEG-4 Part-2/Part-10 streams.
MatMaul
10th March 2008, 18:40
I think if you look more carefully the loaded filters you will see a "demuxer" for the elementary stream, MPEG2 ES can't be read directly. it is this demuxer which signal the AR on its output pin.
SeeMoreDigital
10th March 2008, 19:05
Here's some more info....
ES (.M2V) Output: -
http://i26.tinypic.com/f4p5kg.png
PES (.VOB) Output: -
http://i25.tinypic.com/2hnq0z6.png
Cheers
EDIT: I forgot to ask....
Would it be possible for somebody to create a splitter to enable playback or elementary MPEG-4 AVC (.264, .h264, .avc) streams? Donald Graft has managed to do this with DGAVCIndex.
MatMaul
10th March 2008, 19:27
as you can see in your screen it's the splitter (or the specific dvd file reader for the vob) which provide the 16/9 AR.
SeeMoreDigital
10th March 2008, 19:45
If I disable MPC's internal MP4/MOV (v6.4.0.2) splitter and use Haali's splitter instead, my anamorphic 720x576 MPEG-4 Part-2/Part-10 .MP4 streams are displayed at the correct shape during playback.
As far as I know MPC v6.4.9.1 uses the same internal MP4/MOV (v6.4.0.2) splitter with no ill effects.
Cheers
ADude
10th March 2008, 20:09
I tried to play some DVDs recently, however, with the 64 bit version set to EVR custom pres, it will only play the first frame of the video and then it freezes on that frame while the audio continues and the time elapsed continues to get longer. If I fast forward or rewind I get a new frame but it still freezes at that frame if I try to resume playback.
I can confirm that with Vista 32-bit and EVR Custom Presenter, the new V 1.1.0.0 stable version breaks DVD playback in the way described above. (Note that the highlight of current position of the cursor is missing also.)
I reverted to V 1.0.11.0 stable version and DVD playback works perfectly again with that previous version.
Casimir666
10th March 2008, 20:45
I can confirm that with Vista 32-bit and EVR Custom Presenter, the new V 1.1.0.0 stable version breaks DVD playback in the way described above. (Note that the highlight of current position of the cursor is missing also.)
I reverted to V 1.0.11.0 stable version and DVD playback works perfectly again with that previous version.
EVR custom and Microsoft Mpeg2 decoder are not compatibles at the moment. The fix for this problem have been removed from release 1.1 final because it cause more problems that it solve.
Official release 1.0.11.0 also have this bug, only some intermediate versions present on this thread haven't.
lawrywild
10th March 2008, 20:52
Is it possible for the DVD Navigator filter to be compatible with the Microsoft MPEG-2 Video Decoder in Vista Premium/Ultimate ? At the moment, it doesn't display the buttons, so have to guess and click around the screen hoping to hit the button :P
MatMaul
10th March 2008, 21:01
If I disable MPC's internal MP4/MOV (v6.4.0.2) splitter and use Haali's splitter instead, my anamorphic 720x576 MPEG-4 Part-2/Part-10 .MP4 streams are displayed at the correct shape during playback.
It's because haali seems to read the AR inside the mpeg4 streams.
if you look at the pin infos, you can see that the haali splitter provides the AR information and the MPC does not (i think it is not a bug of the splitter because if the AR information is present in the video stream so it is the work of the decoder to parse it).
ffdshow decoder reads correctly the AR in the video stream and send it to the renderer via its output pin, the internal decoder does not so it is definitivly a bug in the decoder.
the good way to do it I think is:
if ar present in the input pin of the decoder
then copy it to the output pin of the decoder
else if ar present in the video bitstream
then copy it to the output pin of the decoder
else
do not set any AR
ADude
10th March 2008, 21:12
EVR custom and Microsoft Mpeg2 decoder are not compatibles at the moment. The fix for this problem have been removed from release 1.1 final because it cause more problems that it solve.
Official release 1.0.11.0 also have this bug, only some intermediate versions present on this thread haven't.
I am not using Microsfot MPEG2 decoder, I am using Cyberlink PowerDVD Video/SP decoder PDVD7.
Again, it works fine with 1.0.11.0, but is broken in 1.1.0.0 .
leeperry
10th March 2008, 23:25
Is it possible for the DVD Navigator filter to be compatible with the Microsoft MPEG-2 Video Decoder in Vista Premium/Ultimate ? At the moment, it doesn't display the buttons, so have to guess and click around the screen hoping to hit the button :P
yeah, also doesn't work with EVR on XP :(
use CTRL + arrows, and space for enter
or maybe it's ALT instead of CTRL, can't remember :D
Pheon
10th March 2008, 23:30
EVR custom and Microsoft Mpeg2 decoder are not compatibles at the moment. The fix for this problem have been removed from release 1.1 final because it cause more problems that it solve.
Official release 1.0.11.0 also have this bug, only some intermediate versions present on this thread haven't.
Ok, thanks for the quick reply! Would love to get DVD playback with the 64 bit version, but it's not so important since it's working great with the 32 bit version and the Cyberlink Video/SP Decoder (MD3). Although I now have both the 32 bit and 64 bit version on my computer. Hope that won't mess anything up. I know they pretty much share settings now.
DrNein
10th March 2008, 23:57
No VRM7 didn't support DXVA. Until recently the filter have a bug in the property page, but he was lying ;)
Hmm. I have been using DxVA with VMR7 Windowed for years on XP and with AVC specifically for at least a year and a half. To be clear, my CPU is very old so it is obvious whether acceleration is working or not because useage increases dramatically -for example from virtually nil when active up to 60% when inactive for a typical 20Mbps sample. Some higher bitrate disc sources would simply become unplayable.
I did some more testing with a variety of commerical trailers, disc, and DVB and did find one flaw: BBC sources are not accelerated by ffmpeg decoder (confirmed in property page) but are by CyberLink. Switching to VMR9 Renderless makes no difference in this regard.
Available VC-1 sources are more limited but those are also accelerated by ffmpeg with VMR7 Windowed.
molitar
11th March 2008, 03:50
Ok version 446 is buggy.. when I do fast seeking it crashes with this error. I still had version 422 on my system and it does not crash.. will try version before 446 and see what happens.
pplication popup: Visual Studio Just-In-Time Debugger : An unhandled win32 exception occurred in mplayerc.exe [5356]. Just-In-Time debugging this exception failed with the following error: 0x800400b3
Check the documentation index for 'Just-in-time debugging, errors' for more information.
shambles
11th March 2008, 13:27
any chance of ever getting asio sound output in mpc hc?
manuel74
11th March 2008, 14:56
I have a problem with MPC HC and refresh rate on Nvidia.
If I select 59 hz everything it's fine.
Using 24 hz (obviously with 24hz encoded MKV) and 50 hz (for PAL material), give me bad stutter.
Same refresh rate with PowerDVD works really well.
I have already tried to turn on/off telecine in nvidia control panel but nothing change.
My config is latest MPC HC x86 with Vista x64 SP1 and latest Nvidia driver.
Any idea ?
bye
Manuel
MatMaul
11th March 2008, 19:20
r460:
http://www.etud.insa-toulouse.fr/~mvelten/bordel/mplayerc_r460.zip
now the subtitles are in sync with EVR Custom.
wyrd
11th March 2008, 20:17
Hi,MatMaul
Thanks for new build and improvement.
It is not played then.(it seems to use DXVA)
http://tirnanog.fate.jp/tmp/snap/mpc-hc_play_mov(svq3).jpg
can anyone confirm?
FIXED : Sorenson video was not played when DXVA was activated on internal filter
vBulletin® v3.8.11, Copyright ©2000-2026, vBulletin Solutions Inc.