Welcome to Doom9's Forum, THE in-place to be for everyone interested in DVD conversion.

Before you start posting please read the forum rules. By posting to this forum you agree to abide by the rules.


Go Back   Doom9's Forum > Hardware & Software > Software players

Thread Tools Search this Thread Display Modes
Old 5th May 2013, 02:55   #1  |  Link
Registered User
Join Date: Aug 2008
Posts: 30
MPC-HC video/PC levels issue

I'm pretty sure something is wrong with the levels on my HTPC. PC levels seem to be getting clipped and video levels look really "contrasty". This image should demonstrate the problem:

Configuration: MPC-HC (all internal filters disabled), LAV splitter/video/audio, MadVR, nVidia GT430 to HDMI to Pioneer HDTV. Each of these is individually configured to use 0-255 levels.

I (maybe wrongly) assumed that with everything set to 0-255, PC levels would look correct by default and video levels would get stretched by software to look correct. Any thoughts? Thank you!

Last edited by wst; 6th May 2013 at 18:07.
wst is offline   Reply With Quote
Old 6th May 2013, 18:07   #2  |  Link
Registered User
Join Date: Aug 2008
Posts: 30
Here's some new information that I hope will help. When I Ctrl+J to display diagnostic stats in MadVR, it says the video is "limited range (best guess)", and I assume that means video levels. However, the video clearly has PC levels. Is it possible that MadVR is just incorrectly detecting the levels of the clip?

This is a little confusing, but when I configure the display output settings in MadVR to 16-235, the clip renders correctly.

I have read some threads that refer to "double expansion," and it certainly seems like that could be happening here: MadVR thinks it's limited range, so it expands, clipping blacks and whites. Has anyone else had problems with MadVR level detection? Is this a known problem? I should also note that nothing changes when I swap MadVR fro EVR. Thanks again.

Last edited by wst; 6th May 2013 at 18:12. Reason: added info
wst is offline   Reply With Quote
Old 6th May 2013, 19:53   #3  |  Link
Registered User
JanWillem32's Avatar
Join Date: Oct 2010
Location: The Netherlands
Posts: 1,083
What you call 'level detection' is possible, but in general, the information is not available.
See the DirectShow section of "Extended Color Information": http://msdn.microsoft.com/en-us/libr...=vs.85%29.aspx .
The dwControlFlags item is generally empty. Without it, the renderer can do 2 things;
1. -Try to navigate the graph, query the stream that is being played, and see if the information can be read from that. This is really difficult. For starters, the search through the graph is a bothersome recursion over the base filter point, back to the original stream. Then to read the stream you need support all the semantics required to interpret all available types of streams. Implementing the functionality of a full source filter inside the video renderer is impractical.
2. -Based on assumptions of the typical video input data you will get, make a guess. This generally means that RGB inputs are assumed to be full-range, and Y'CbCr types to be the typical type of limited range. There are more variables that are generally guessed by the renderer, by the way.
development folder, containing MPC-HC experimental tester builds, pixel shaders and more: http://www.mediafire.com/?xwsoo403c53hv
JanWillem32 is offline   Reply With Quote
Old 6th May 2013, 19:57   #4  |  Link
Registered Developer
Join Date: Mar 2010
Location: Hamburg/Germany
Posts: 10,359
If your player is setup to show 16 as perfect black from a YUV video, then its working perfectly.
99.9% of all consumer content is limited range/video levels, which means 16 is actually supposed to be black.

Those calibration videos are setup to contain values from 0-255, so you can actually see if something is wrong, however a proper calibration should still only show 16-235, so that "video black" is also "actual black"

So in short, everything is working perfectly.

If the information about the level range is actually contained in the file somehow, LAV Video will set it in the mediatype, and madVR will read it. However madVR is the only renderer which understands it (that i know of)
LAV Filters - open source ffmpeg based media splitter and decoders

Last edited by nevcairiel; 6th May 2013 at 20:02.
nevcairiel is offline   Reply With Quote
Old 6th May 2013, 23:13   #5  |  Link
Registered User
Join Date: Aug 2008
Posts: 30
Nev, thanks for the info. This began with some basic tests for black/white clipping, where I noticed some blacks getting crushed around 9 and whites right at 234/235. So if my player is behaving correctly, then something must be wrong with the black levels in my HDTV.

Regarding PC levels, what if a video's source was TV/film, but it has been transcoded to a file with the expanded range - won't that cause clipping when I display here?

If we are going to assume that all video is 16-235, then why not configure all devices in the chain for 16-235?

What about BTB/WTW?
wst is offline   Reply With Quote

lav, levels, madvr, mpc-hc, video

Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump

All times are GMT +1. The time now is 04:59.

Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2024, vBulletin Solutions Inc.