View Full Version : Media Player Classic Home Cinema (MPC-HC) - DXVA!
madshi
8th May 2011, 12:06
I still don‘t understand why you need to disable it?
You do understand that any problems are caused by either broken filters, drivers or virisses/trojans/worms....
One good reason is that the DScaler IVTC Mod settings dialog crashes with DEP enabled. And that's the best MPEG2 decoder for movies.
pankov
8th May 2011, 12:09
Guys,
I'm not using MPC-HC as my main player but I use it from time to time to check if a given problem is player or filter related and I try to replicate the same graph in both MPC-HC and ZoomPlayer and I usually am able to do it.
Recently I've noticed a problem that looks very strange to me - if I add ffdshow audio decoder as preferred and disable the internal decoders for AAC/AC3/DTS and start playback of a video file it plays fine but if I drop another file on MPC-HC instead of stopping the first one and starting the new it directly starts it so I have two files playing ... or at least the audio of two and no video. Often the player crashes afterwards but not always.
Any body got a clue what am I doing wrong?
This is just after settings reset and adding a few external filters.
Here is my .ini file in case it's as simple as changing an option that I've missed
http://www.mediafire.com/?wk07btim5ks6p9d
Guys,
I don't want to be PITA but can anybody help me with this?
Am I the only one having this problem?
I've tried different versions of MPC and FFDShow (including the latest ones) I still can't make it work.
:(
CruNcher
8th May 2011, 12:50
One good reason is that the DScaler IVTC Mod settings dialog crashes with DEP enabled. And that's the best MPEG2 decoder for movies.
Hmm isn't dscaler outdated no DXVA support also ?
Each and everyone has their own view about what's best in a certain area.
I guess that here applies as well ;)
hajj_3
8th May 2011, 12:55
Make desktop screenshot before you close MPC-HC, and after open again.
wow, it worked :) But when i do it with the installed version it doesn't work. Is it possible to fix the bug so that no-one experiences this?
namaiki
8th May 2011, 13:09
Guys,
I don't want to be PITA but can anybody help me with this?
Am I the only one having this problem?
I've tried different versions of MPC and FFDShow (including the latest ones) I still can't make it work.
:(
Does this require both LAV Splitter and LAV CUVID decoder to be used to reproduce? (For one, I cannot use LAV CUVID)
betaking
8th May 2011, 13:15
One good reason is that the DScaler IVTC Mod settings dialog crashes with DEP enabled. And that's the best MPEG2 decoder for movies.
Yes.you are right! and windows media player not use dep too!
nevcairiel
8th May 2011, 13:15
One good reason is that the DScaler IVTC Mod settings dialog crashes with DEP enabled. And that's the best MPEG2 decoder for movies.
Only the configuration dialog crashes, the decoder itself works just perfectly for me.
betaking
8th May 2011, 13:18
Only the configuration dialog crashes, the decoder itself works just perfectly for me.
windows xp sp2 have dep! but mpc-hc not crashes!:eek:
CruNcher
8th May 2011, 13:49
betaking DEP is not enabled by default for all applications, only windows system related files on Pre Vista/7 you have to force it to be sure it wouldn't crash.
pankov
8th May 2011, 13:50
Does this require both LAV Splitter and LAV CUVID decoder to be used to reproduce? (For one, I cannot use LAV CUVID)
no, it happens with every splitter/decoder I've tried (both internal and external (Haali/CoreAVC/ffdshow video)). The only thing that breaks it is ffdshow audio decoder.
:(
Edit:
I've also noticed that it doesn't matter if I drag&drop the file or use the "File->Open File" menu.
Also I've tried using EVR-CP instead of madVR and I noticed that it tries to display both videos too - a few frames from the first opened file and a few (but less) from the second one ... and when I press "stop" only the second one stops and the original continues to play.
tin3tin
8th May 2011, 14:13
Has opening of Avisynth scripts been broken? MPC-HC seems to crash when I try to open .avs files.
betaking
8th May 2011, 14:27
betaking DEP is not enabled by default for all applications, only windows system related files on Pre Vista/7 you have to force it to be sure it wouldn't crash.
no!mpc-hc's code use DEP enabled by default!
CruNcher
8th May 2011, 14:38
no!mpc-hc's code use DEP enabled by default!
Ahh yes sorry its indeed enabled by default so no crash on dscalers option dialog also here on XP SP3
there is though some other oddity with auto creating a graph and dscaler involved it clashes with ffdshow over here somehow, i have to block ffdshows video decoder (even with Mpeg-2 or raw rendering disabled) or it crashes it (not very nice) in MPC-HC. Though i wont give my hand into the fire what the actual cause for the ffdshow.ax crash is when dscaler is involved (to complex auto chain).
madshi
8th May 2011, 14:39
Hmm isn't dscaler outdated no DXVA support also ?
Who care about DXVA for *MPEG2*?? Any CPU released in the last 20 years can decode HD MPEG2 just fine. Ok, maybe not 20 years, but you get the picture.
DScaler might be outdated. But DScaler IVTC Mod is not outdated at all, it's still the best MPEG2 decoder for movies because it's the most reliable way to do IVTC. When using DXVA decoding/deinterlacing, you get 30p or 60p, but not 24p. So you'll have the typical 3:2 motion stutter.
Only the configuration dialog crashes, the decoder itself works just perfectly for me.
Yep, same for me.
CruNcher
8th May 2011, 15:23
Yeah i see what this Mod is for somekind of realtime software decimate for Hard Telecined stuff so practically a very automated way for handling rare non flagged streams :)
When using DXVA decoding/deinterlacing, you get 30p or 60p, but not 24p. So you'll have the typical 3:2 motion stutter.
It depends on the content and the Decoder but yeah if flags are missing you are lost anyways and i see the use of this Dscaler Mod their,unless you have a hardware chain that can cope with that in realtime.
Though Nvidias Hardware IVTC (at least @ a playback scenario) should be as efficient in cadence detection without flags on the renderer it's interesting that it fails for you even on Vista/7 EVR and you have to fallback to a Software solution such as this Dscaler Mod.
Not sure though but i guess Nvidia doesn't support your renderer yet and its questionable if they ever will so most probably it would be useful their too if you can live with the cpu usage ;)
madshi
8th May 2011, 15:36
Yeah i see what this Mod is for somekind of realtime software decimate for Hard Telecined stuff so practically a very automated way for handling rare non flagged streams :)
"Rare"? You must be joking?! None of the MPEG2 broadcasts that I've seen were properly flagged from start to end.
It depends on the content and the Decoder but yeah if flags are missing you are lost anyways and i see the use of this Dscaler Mod their,unless you have a hardware chain that can cope with that in realtime.
Though Nvidias Hardware IVTC (at least @ a playback scenario) should be as efficient in cadence detection without flags on the renderer it's interesting that it fails for you even on Vista/7 EVR and you have to fallback to a Software solution such as this Dscaler Mod.
To my best knowledge, NVidia's hardware IVTC results in 30p, just like ATI's does. The hardware IVTC is used to put the correct fields together, but it does *not* remove duplicate fields, so the output is 30p and not 24p.
robpdotcom
8th May 2011, 16:35
"Rare"? You must be joking?! None of the MPEG2 broadcasts that I've seen were properly flagged from start to end.
Much of the telecined ATSC material isn't flagged at all, so DScaler is the only option.
CruNcher
8th May 2011, 16:40
"Rare"? You must be joking?! None of the MPEG2 broadcasts that I've seen were properly flagged from start to end.
To my best knowledge, NVidia's hardware IVTC results in 30p, just like ATI's does. The hardware IVTC is used to put the correct fields together, but it does *not* remove duplicate fields, so the output is 30p and not 24p.
Strange i always got the impression it drops to much frames if it becomes active and thus why i gave it up and turned it off.
Much of the telecined ATSC material isn't flagged at all, so DScaler is the only option.
do you have such a sample with a film/video switch non flagged where it beats everything else ?
tetsuo55
8th May 2011, 16:45
Libavcodec and DXVA MPEG2 decoding should be mostly identical in quality (there was a time when Dscaler could beat the others for image quality).
But i see the discussion is not about the decoding of the individual frames, but the deinterlacing methods applied to the decoded stream.
Isn't correct detection and subsequent deinterlacing simply a missing(or broken) feature in ffmpeg?
madshi
8th May 2011, 16:54
Strange i always got the impression it drops to much frames if it becomes active and thus why i gave it up and turned it off.
It works very well for pure movie content.
But i see the discussion is not about the decoding of the individual frames, but the deinterlacing methods applied to the decoded stream.
Correct.
Isn't correct detection and subsequent deinterlacing simply a missing(or broken) feature in ffmpeg?
I don't know if ffmpeg has proper IVTC functionality built in. If so, no DirectShow filter seems to use it.
CruNcher
8th May 2011, 17:14
Where do i get a Mpeg-2 sample Bitstream with missing flags and film/video switching :) ?
laserfan
8th May 2011, 18:31
Where do i get a Mpeg-2 sample Bitstream with missing flags and film/video switching :) ?
What tool(s) can be used to identify these flags?
CruNcher
8th May 2011, 18:56
immediately to my mind comes Dgindex status display to me :)
also when you playback with Mplayer (ffmpeg) you should see state switches in the command line, which means nothing else that there was a flag indicating it.
hoborg
8th May 2011, 19:07
Fix in rev. 3090
:thanks:
tetsuo55
8th May 2011, 19:10
Ok i have been told that there is nothing wrong with ffmpeg.
The post-processor/Deinterlace should be able to detect if the frames are or are not telecined and change to IVTC mode when they do.
What happens when you take a correctly flagged file and feed it to nvidia or ATI with vector adaptive and pulldown detection enabled?
madshi
8th May 2011, 19:30
Ok i have been told that there is nothing wrong with ffmpeg.
The post-processor/Deinterlace should be able to detect if the frames are or are not telecined and change to IVTC mode when they do.
I don't know if that's true. Maybe it is. If so, this specific ffmpeg functionality does not seem to be made use of in either MPC-HC or ffdshow.
What happens when you take a correctly flagged file and feed it to nvidia or ATI with vector adaptive and pulldown detection enabled?
Probably depends on the decoder. But anyway, it's not really important how correctly flagged files behave, since most MPEG2 broadcasts are *not* correctly flagged, as far as I've seen...
tetsuo55
8th May 2011, 19:42
Well once we know that other deinterlacers are capable of correct IVCT it might be trivial to add the flags on the fly using similar logic as in dscaler.
Also dscaler might be able to be made compatible with DEP, does it get compiled with msvc? update the projects to vs2010 and it should get compiled as a DEP compatible filter.
madshi
8th May 2011, 19:49
Well once we know that other deinterlacers are capable of correct IVCT it might be trivial to add the flags on the fly using similar logic as in dscaler.
Yeah, that might be a job for ffdshow?
IVTC is a complex topic, though: Detecting the NTSC/ATSC 3:2 movie cadence and removing it to get from 60i to 24p is relatively easy. Doing 50i -> 25p is much more difficult. And then there are also various other cadences, e.g. for Anime content. The question is if ffmpeg supports all that, and with which quality/reliability.
Also dscaler might be able to be made compatible with DEP, does it get compiled with msvc? update the projects to vs2010 and it should get compiled as a DEP compatible filter.
Yeah, it might be possible to recompile/fix the DScaler IVTC Mod. I've no time for that, unfortunately...
tetsuo55
8th May 2011, 19:56
Here is my suggestion:
1. Find the sourcecode from the mod as written by kzeuh (he wrote 2 mods, the 2nd one would be preferable)
2. Get Dscaler source from the sourceforge page (might have to go back a few revisions, as the mod was made against release 6 and not 8)
3. Update the project files to vs2010, compile, fix warnings etc.. (and once you finish it should be DEP compatible)
4. Update the mod so it works with release 8 to get the most profit.
5. Add the IVTC detection code to ffdshow (should result in the same or better results, the biggest problem is that the current mod assumes film always, it does not seem to be "detection" but rather forced IVTC)
@ 50i to 25p (Thats not a problem at all imho, since 50 and 25 are multiples of eachother)
nevcairiel
8th May 2011, 20:07
You can get IVTC with ffdshow if you setup a simple AviSynth script inside to do it - that works pretty good, but its of course not the fastest solution.
Oh and on the ffmpeg topic:
avcodec is a decoder. It'll give you decoded fields, and all the flags it found in the bitstream.
In addition, it also includes libavfilter, which is a post-processing framework, but its still very early in its development cycle. It does include a yadif deinterlacer, but no special IVTC logic that i'm aware of.
In any case, ffdshow and other ffmpeg-based decoders usually only use avcodec to decode the fields, any post processing is then done outside of ffmpeg itself.
While this would be a job for avfilter, one day, its currently not supported by ffmpeg (and not a "bug").
laserfan
8th May 2011, 20:17
Where do i get a Mpeg-2 sample Bitstream with missing flags and film/video switching :) ?
What tool(s) can be used to identify these flags?
immediately to my mind comes Dgindex status display to me :)
also when you playback with Mplayer (ffmpeg) you should see state switches in the command line, which means nothing else that there was a flag indicating it.
Hmmm guess I dunno how to interpret; looked at both DGIndexNV Info window and debug=true when feeding avs to Vdub, and don't know how to find pulldown flags.
But thanks for turning me-on to Mplayer--it plays my source smoothly where no other player (incl MPC-HC) does!
tetsuo55
8th May 2011, 20:27
After reading the .txt files included with the dscaler mod it seems to me that the mod is hardcoded for IVTC, thats why it works so well, it simply treats all content as telecined.
The search algorithm used should easily be portable to ffdshow and/or usable through avisynth.
So there are 3 options:
-Recompile the mod to work with DEP (but get stuck with 5+year old decoder)
-Update the mod and then recompile it (and get stuck with a slightly less old decoder)
-Use FFdshow (and get the latest decoder)
The mod is said to also have a big overhead for the detection phase, and less overhead for the blindly decimate phase.
bigzaj
8th May 2011, 20:27
I'm having an issue with MKV playback with 5.1 audio. On my 32-bit machine when playing back a file it correctly identifies the audio as 640kbps 6-channel AC3. On my Win 7 64-bit machine it tells me "unidentified audio" and plays back in 2.1 stereo. Any thoughts on what this could be, do I need to configure the built in AC3 filter to 3 front + 2 rear with LFE?
madshi
8th May 2011, 20:47
@ 50i to 25p (Thats not a problem at all imho, since 50 and 25 are multiples of eachother)
No no. It *is* a problem. If you put the wrong 50i fields together you'll get heavy combing artifacts. Doing 60i -> 24p is easy because some fields are duplicates. Detecting duplicates is not so difficult, and once you've detected them you already know the exact telecine pattern. With 50i there are no duplicate fields. So finding out which fields belong together is more difficult. Especially if you want to do automatic video/film mode detection, too, which is extra difficult with 50i content.
tetsuo55
8th May 2011, 20:55
I guess i don't understand the problem enough then, or we're talking about different things.
In Pal land we either film at 25fps or speed up 24 to 25fps.
The you either show every frame twice, add a soft telecine flag or have actual interlacing.
Regardless of which one it is, it looks to me that the solution is simple, if its interlaced just deinterlace, else just treat it as 50fps progressive.
Now the 24 to 25 fps speedup is something that some people still want to solve, but thats what reclock is for.
But i should stop talking about it from google-search, and ask you for a specific example.
I have finally got around to compile MPC-HC and got it working perfectly with MingGW 4.6.1 for both x64 and x86.
I like the current BE mod for MPC-HC and would like to compile this as well, but applying the .patch from xvidvideo.ru makes the build go very wrong :p
Does anyone have advice on this?
Thanks
madshi
8th May 2011, 21:37
I guess i don't understand the problem enough
Agreed. Here comes a short crash course:
There are 2 kinds of interlaced contents:
(1) film content (filmed in 24p or 25p, then telecined to 60i/50i)
(2) video content (filmed natively interlaced)
You do not "deinterlace" (1). That's the wrong technology. If you "deinterlace" native film content, e.g. by using yadif, you're damaging image quality. The *only* proper way to treat (1) is to do IVTC. That applies to both 60i NTSC/ATSC content and to 50i SD/HD PAL content. Ideally, IVTC results in 24p for NTSC/ATSC movies and in 25p for PAL movies.
For (2) you can't use IVTC, there you have to use a video mode deinterlacer like yadif which (when used correctly) will output 60p for NTSC/ATSC content and 50p for PAL content.
IVTC for PAL movies means that you have to detect which 2 interlaced fields belong together. Once you found that out you simply weave them back together. The weaving is the easy part. Reliably finding out which fields belong together is hard. Finding out whether PAL content is native video or film is even more difficult.
tetsuo55
8th May 2011, 21:59
Ok thanks, I also read the wiki page for it.
It made clear that "extra" frames are inserted which have to be removed.
And whatever is left behind has to be de-interlaced into a progressive image. I read elsewhere that there is also a telecine where the remaining frames are already progressive and can be displayed as-is, not sure if that exists in the wild.
The wiki page also made clear that most telecine detectors use image comparison to detect repeating frames, and use that to detect the cadence pattern to decimate with.
nevcairiel
8th May 2011, 22:17
the nvidia post-processor does reproduce the original frames perfectly (at least i have not seen any artifacts anywhere), it just does not decimate the extra frames.
If i could write an algorithm for decimation into LAV CUVID .. but i'm really not that deep into video processing..
madshi
9th May 2011, 07:18
It made clear that "extra" frames are inserted which have to be removed.
It's extra fields, not frames. And that is only true for NTSC/ATSC, but not for PAL. There are no extra fields for PAL.
And whatever is left behind has to be de-interlaced into a progressive image.
Whatever is left has to be *weaved* together, but you need to know which fields belong together, otherwise you'll get the typical weave combing artifacts.
I read elsewhere that there is also a telecine where the remaining frames are already progressive and can be displayed as-is, not sure if that exists in the wild.
HD DVD video tracks are encoded this way. Basically they're encoded progressively, but there are flags in the video stream telling the decoder to interlace after decoding. Broadcasts sometimes have sections which are encoded like this, too, but usually it's only sections, not the whole movie.
The wiki page also made clear that most telecine detectors use image comparison to detect repeating frames, and use that to detect the cadence pattern to decimate with.
Yes, but as I said, repeating fields/frames do not occur with PAL content, which is why PAL IVTC is more difficult.
Madshi, i seem to remember an avisynth plugin called RePal, that tries to 're-pal' telicined etc. sources. Maybe the source code of the plugin is still available, and you can use it to see how it's detection algorithms work.
madshi
9th May 2011, 09:46
I know how these algorithms work.
Andy o
10th May 2011, 02:45
pankov and I are having the same trouble (http://forum.doom9.org/showthread.php?p=1499647#post1499647) with different particular decoders, (him ffdshow and me Arcsoft audio decoder). Looks like there's something with our MPC-HC installs. Just posting here so we can continue the discussion in a relevant thread.
SamuriHL
10th May 2011, 02:49
Yea, try my custom build and let me know if that does or doesn't help. It's 3098 so it should be "the latest" as of a few hours ago. Remember it has NO internal filters at all since I don't ever use them. It SHOULDN'T fix anything for you at all related to this problem, but, I figured it couldn't hurt.
Andy o
10th May 2011, 03:37
I'm trying wiping out everything Arcsoft from my system first, will try your build later, thanks.
SamuriHL
10th May 2011, 03:39
No problem. I'll check on your progress in the morning. I'm going to bed soon. I hope you're able to figure it out.
pankov
10th May 2011, 10:07
Samuri,
I've tried your custom build and sadly it doesn't fix the problem.
:(
On the bright side I've reset my ffdshow audio decoder settings (just renamed the key in the registry) and the problem disappeared.
Now I'll have to hunt it down to a particular setting but at least now I have a direction.
Nevertheless, I still think there is a bug in MPC-HC, because it shouldn't be possible a single decoder/filter to cause such a behavior in a player.
Andy o
10th May 2011, 10:10
Hmm I wiped my Arcsoft stuff from my PC, even ran a reg cleaner, and still the problem's there. Tried Samuri's build and the xvidvideo build, installing and running from the folder (from the .zip), and still no go. Also took video totally out of the equation, making a DTS-HD .mka audio-only, and MPC-HC still doesn't close properly the file before moving on to the next. I'm gonna install the stuff on my laptop see if it happens here too.
pankov
10th May 2011, 10:12
Andy,
in this case which audio decoder do you use or you are bit-streaming with LAV?
Andy o
10th May 2011, 10:22
I'm not bitstreaming anything right now. I'm decoding the DTS-HD with the Arcsoft decoder, but I'm having this bug with it. I haven't fixed the DD+ bug I mentioned at the LAV thread either.
I just tried on my laptop, and even not having LAV installed, it still happens with the MPC splitter and the Arcsoft decoder.
vBulletin® v3.8.11, Copyright ©2000-2026, vBulletin Solutions Inc.