INTERACT FORUM
More => Old Versions => Media Center 16 (Development Ended) => Topic started by: rjm on June 11, 2011, 12:27:41 am
-
16.0.110
Videos I ripped to h264 mp4 are being played with the incorrect aspect ratio. For example, a 592x396 video is displayed as (almost) full screen when it should be displayed as widescreen. I have a hunch that it has something to do with non-square pixels not being respected. VLC plays it correctly in widescreen. Not sure when the problem was introduced. For sure it came with RO but I don't know if it was introduced in 16.0.110. I'm not a video expert. Let me know what other information I can provide.
-
Any possibility of getting a sample file via megaupload or something?
Otherwise, maybe you could try tweaking the ffdshow settings, especially the pixel aspect ratio. Directions on how to tweak Red October settings here:
http://yabb.jriver.com/interact/index.php?topic=64475.msg431828#msg431828 (http://yabb.jriver.com/interact/index.php?topic=64475.msg431828#msg431828)
If you find a setting that fixes the problem let us know.
-
I uploaded a clip. Play with VLC to see the correct aspect ratio.
http://www.megaupload.com/?d=EAMRIU7P
-
On my system the aspect ratio looks correct and we're displaying it identically to VLC. See the screen shot attached. Maybe you could post a screen shot with how it looks on your system?
-
Mmmm....
Here are a few clues:
1) Video plays with correct aspect ratio on Vista.
2) I see full screen problem on XP. If I manually change aspect ratio to 1.78 it looks fine.
3) Switching to RO HQ makes no difference.
I can send a screenshot but there is nothing to see other than a fullscreen image (i.e. no black bars on top or bottom and black bars on left and right). Let me know if you still want it.
-
On my XP PC the sample's aspect ratio is correct with RO HQ. It is too narrow with std RO.
Also "Windows merit based" shows the correct aspect ratio (actually very slightly wider than 16:9).
Regarding the merit based mode I am surprised to see this graph:
Filter Graph Info:
Filter 'JRiver Audio Renderer'
CLSID: {A4002F8E-510F-442C-8AD3-F9C7B23FB394}
Host:
Input Pin 'In'
Connected to pin 'Out' of filter 'ffdshow Audio Decoder'
Major type MEDIATYPE_Audio Sub type MEDIASUBTYPE_PCM, Format type FORMAT_WaveFormatEx
Filter 'Video Mixing Renderer 9'
CLSID: {51B4ABF3-748F-4E3B-A276-C828330E926A}
Host: c:\windows\system32\quartz.dll
Input Pin 'VMR Input0'
Connected to pin 'Out' of filter 'FFDShow Video Decoder'
Major type MEDIATYPE_Video Sub type MEDIASUBTYPE_YV12, Format type FORMAT_VideoInfo2
Input Pin 'VMR Input1'
Input Pin 'VMR Input2'
Filter 'ffdshow Audio Decoder'
CLSID: {0F40E1E5-4F79-4988-B1A9-CC98794E6B55}
Host: C:\Documents and Settings\AB\Application Data\J River\Media Center 16\Plugins\ffdshow\ffdshow.ax
Output Pin 'Out'
Connected to pin 'In' of filter 'JRiver Audio Renderer'
Major type MEDIATYPE_Audio Sub type MEDIASUBTYPE_PCM, Format type FORMAT_WaveFormatEx
Input Pin 'In'
Connected to pin 'Unspecified' of filter 'MP4 Source'
Major type MEDIATYPE_Audio Sub type Unknown GUID Name: {000000FF-0000-0010-8000-00AA00389B71}, Format type FORMAT_WaveFormatEx
Filter 'FFDShow Video Decoder'
CLSID: {04FE9017-F873-410E-871E-AB91661A4EF7}
Host: C:\Documents and Settings\AB\Application Data\J River\Media Center 16\Plugins\ffdshow\ffdshow.ax
Input Pin 'In'
Connected to pin 'Video Media Handler' of filter 'MP4 Source'
Major type MEDIATYPE_Video Sub type Unknown GUID Name: {31637661-0000-0010-8000-00AA00389B71}, Format type FORMAT_MPEG2_VIDEO
Output Pin 'Out'
Connected to pin 'VMR Input0' of filter 'Video Mixing Renderer 9'
Major type MEDIATYPE_Video Sub type MEDIASUBTYPE_YV12, Format type FORMAT_VideoInfo2
Input Pin 'In Text'
Filter 'MP4 Source'
CLSID: {3CCC052E-BDEE-408A-BEA7-90914EF2964B}
Host: c:\program files\mc16\plugins\mp4splitter.ax
Output Pin 'Video Media Handler'
Connected to pin 'In' of filter 'FFDShow Video Decoder'
Major type MEDIATYPE_Video Sub type Unknown GUID Name: {31637661-0000-0010-8000-00AA00389B71}, Format type FORMAT_MPEG2_VIDEO
Output Pin 'Unspecified'
Connected to pin 'In' of filter 'ffdshow Audio Decoder'
Major type MEDIATYPE_Audio Sub type Unknown GUID Name: {000000FF-0000-0010-8000-00AA00389B71}, Format type FORMAT_WaveFormatEx
Why does MC use its own filters? They are not supposed to be registered to DirectShow.
-
Why does MC use its own filters? They are not supposed to be registered to DirectShow.
Unless someone manually registered the ffdshow.ax filter, I'm about 99% sure that the actual ffdshow.ax being used is not the one in our appdata directory. This is the pesky bug that when we display the contents of the filter graph we try to show the filter's host filename but we're showing the wrong one.
-
Mmmm....
Here are a few clues:
1) Video plays with correct aspect ratio on Vista.
2) I see full screen problem on XP. If I manually change aspect ratio to 1.78 it looks fine.
3) Switching to RO HQ makes no difference.
Sounds like the video renderer might be the difference between Vista and XP. Maybe the renderer being used on XP is not respecting the internal pixel aspect ratio.
I can send a screenshot but there is nothing to see other than a fullscreen image (i.e. no black bars on top or bottom and black bars on left and right). Let me know if you still want it.
No need for a screenshot, I assume it looks like the attached image which is what I see in Windows 7 when using Real Player.
-
Sounds like the video renderer might be the difference between Vista and XP. Maybe the renderer being used on XP is not respecting the internal pixel aspect ratio.No need for a screenshot, I assume it looks like the attached image which is what I see in Windows 7 when using Real Player.
Just a reminder that pre-RO my XP system played it correctly.
Yep, your screenshot is what I see.
-
Just a reminder that pre-RO my XP system played it correctly.
You're right, it's not the renderer that's the problem. I can reproduce this problem on my XP virtual box, but so far I haven't pinned down the bug, other than it looks to be one of:
1. a bug in the ffdshow version we're currently using in Red October
2. an ffdshow setting we're missing somewhere
-
On my XP PC the sample's aspect ratio is correct with RO HQ. It is too narrow with std RO.
If you're using additional filters, can you show a dump of the filter graph when RO HQ does it correctly? I can't do it here because my virtual box won't run madVR.
-
I didn't use the "with additional filters" modes.
However, I noticed this:
Filter 'MP4 Source'
CLSID: {3CCC052E-BDEE-408A-BEA7-90914EF2964B}
Host: c:\program files\mc16\plugins\mp4splitter.ax
mp4splitter.ax and some other filters in the MC program folder were registered to DS. I guess an old MC16 build installed them. I unregistred and deleted them. I deleted also the ffdshow folder from the application data location (it wasn't registered, I just wanted to force MC to download it and monitor the process). Then I reinstalled MC. This did not affect the AR problem in the RO std mode.
Regarding the merit based mode, MC does not select the same filters as for example WMP does. According to the merits this file should use the Haali splitter and ffdshow DXVA decoder.
I attached a screenshot of what WMP uses. (I right-clicked the ffdshow DXVA decoder icon during playback.)
-
Thats actually a rather common problem.
Files typically have two ARs encoded, one is the container AR, and the other one is the stream AR. You can "usually" trust the container AR, but the stream AR is most of the time just wrong (especially in H264). The exception to this rule are MPEG-TS files, where its reversed.
Now the problem is that most decoders do not offer you can option to ignore the Stream AR and only use the Container AR as provided by the source filter. The Haali splitter uses some rather ugly hack to work around this - it actually modifies the H264 bitstream and overwrites the Stream AR inside with the Container AR, so the decoder has no choice but to use it (at least if its configured to do so, but its default on, iirc). I'm usually no fan of such hacks, so i didn't implement this kind of hackery in LAV Splitter. The perfect solution is of course if the decoder offers you an choice between Stream AR and Container AR.
-
Thats actually a rather common problem.
Whewww... was worried my dilithium crystals were shot.
-
So what causes the difference between RO standard and RO HQ? Both modes use the LAV splitter. Does madVR fix the AR?
RO std
Filter Graph Info:
Filter 'JRiver Audio Renderer'
CLSID: {A4002F8E-510F-442C-8AD3-F9C7B23FB394}
Host:
Input Pin 'In'
Connected to pin 'Output' of filter 'LAV Audio Decoder (auto-configured)'
Major type MEDIATYPE_Audio Sub type MEDIASUBTYPE_IEEE_FLOAT, Format type FORMAT_WaveFormatEx
Filter 'Video Mixing Renderer 9'
CLSID: {51B4ABF3-748F-4E3B-A276-C828330E926A}
Host: c:\windows\system32\quartz.dll
Input Pin 'VMR Input0'
Connected to pin 'Out' of filter 'ffdshow Video Decoder (auto-configured)'
Major type MEDIATYPE_Video Sub type MEDIASUBTYPE_YV12, Format type FORMAT_VideoInfo
Input Pin 'VMR Input1'
Filter 'ffdshow Video Decoder (auto-configured)'
CLSID: {04FE9017-F873-410E-871E-AB91661A4EF7}
Host: C:\Documents and Settings\AB\Application Data\J River\Media Center 16\Plugins\ffdshow\ffdshow.ax
Input Pin 'In'
Connected to pin 'Output' of filter 'JRiver Video Monitor'
Major type MEDIATYPE_Video Sub type Unknown GUID Name: {31435641-0000-0010-8000-00AA00389B71}, Format type FORMAT_MPEG2_VIDEO
Output Pin 'Out'
Connected to pin 'VMR Input0' of filter 'Video Mixing Renderer 9'
Major type MEDIATYPE_Video Sub type MEDIASUBTYPE_YV12, Format type FORMAT_VideoInfo
Input Pin 'In Text'
Filter 'LAV Audio Decoder (auto-configured)'
CLSID: {E8E73B6B-4CB3-44A4-BE99-4F7BCB96E491}
Host: C:\Documents and Settings\AB\Application Data\J River\Media Center 16\Plugins\lav\LAVAudio.ax
Input Pin 'Input'
Connected to pin 'Output' of filter 'JRiver Audio Monitor'
Major type MEDIATYPE_Audio Sub type Unknown GUID Name: {000000FF-0000-0010-8000-00AA00389B71}, Format type FORMAT_WaveFormatEx
Output Pin 'Output'
Connected to pin 'In' of filter 'JRiver Audio Renderer'
Major type MEDIATYPE_Audio Sub type MEDIASUBTYPE_IEEE_FLOAT, Format type FORMAT_WaveFormatEx
Filter 'JRiver Video Monitor'
CLSID: {A4207487-E7D8-406B-9882-B66370DE2492}
Host:
Input Pin 'Input'
Connected to pin 'Video' of filter 'LAV Source Splitter'
Major type MEDIATYPE_Video Sub type Unknown GUID Name: {31435641-0000-0010-8000-00AA00389B71}, Format type FORMAT_MPEG2_VIDEO
Output Pin 'Output'
Connected to pin 'In' of filter 'ffdshow Video Decoder (auto-configured)'
Major type MEDIATYPE_Video Sub type Unknown GUID Name: {31435641-0000-0010-8000-00AA00389B71}, Format type FORMAT_MPEG2_VIDEO
Filter 'JRiver Audio Monitor'
CLSID: {A4207487-E7D8-406B-9882-B66370DE2492}
Host:
Input Pin 'Input'
Connected to pin 'Audio' of filter 'LAV Source Splitter'
Major type MEDIATYPE_Audio Sub type Unknown GUID Name: {000000FF-0000-0010-8000-00AA00389B71}, Format type FORMAT_WaveFormatEx
Output Pin 'Output'
Connected to pin 'Input' of filter 'LAV Audio Decoder (auto-configured)'
Major type MEDIATYPE_Audio Sub type Unknown GUID Name: {000000FF-0000-0010-8000-00AA00389B71}, Format type FORMAT_WaveFormatEx
Filter 'LAV Source Splitter'
CLSID: {B98D13E7-55DB-4385-A33D-09FD1BA26338}
Host: C:\Documents and Settings\AB\Application Data\J River\Media Center 16\Plugins\lav\LAVSplitter.ax
Output Pin 'Video'
Connected to pin 'Input' of filter 'JRiver Video Monitor'
Major type MEDIATYPE_Video Sub type Unknown GUID Name: {31435641-0000-0010-8000-00AA00389B71}, Format type FORMAT_MPEG2_VIDEO
Output Pin 'Audio'
Connected to pin 'Input' of filter 'JRiver Audio Monitor'
Major type MEDIATYPE_Audio Sub type Unknown GUID Name: {000000FF-0000-0010-8000-00AA00389B71}, Format type FORMAT_WaveFormatEx
RO HQ
Filter Graph Info:
Filter 'JRiver Audio Renderer'
CLSID: {A4002F8E-510F-442C-8AD3-F9C7B23FB394}
Host:
Input Pin 'In'
Connected to pin 'Output' of filter 'LAV Audio Decoder (auto-configured)'
Major type MEDIATYPE_Audio Sub type MEDIASUBTYPE_IEEE_FLOAT, Format type FORMAT_WaveFormatEx
Filter 'madVR'
CLSID: {E1A8B82A-32CE-4B0D-BE0D-AA68C772E423}
Host: C:\Documents and Settings\AB\Application Data\J River\Media Center 16\Plugins\madvr\madvr.ax
Input Pin 'Input'
Connected to pin 'Out' of filter 'ffdshow Video Decoder (auto-configured)'
Major type MEDIATYPE_Video Sub type MEDIASUBTYPE_YV12, Format type FORMAT_VideoInfo2
Filter 'ffdshow Video Decoder (auto-configured)'
CLSID: {04FE9017-F873-410E-871E-AB91661A4EF7}
Host: C:\Documents and Settings\AB\Application Data\J River\Media Center 16\Plugins\ffdshow\ffdshow.ax
Input Pin 'In'
Connected to pin 'Output' of filter 'JRiver Video Monitor'
Major type MEDIATYPE_Video Sub type Unknown GUID Name: {31435641-0000-0010-8000-00AA00389B71}, Format type FORMAT_MPEG2_VIDEO
Output Pin 'Out'
Connected to pin 'Input' of filter 'madVR'
Major type MEDIATYPE_Video Sub type MEDIASUBTYPE_YV12, Format type FORMAT_VideoInfo2
Input Pin 'In Text'
Filter 'LAV Audio Decoder (auto-configured)'
CLSID: {E8E73B6B-4CB3-44A4-BE99-4F7BCB96E491}
Host: C:\Documents and Settings\AB\Application Data\J River\Media Center 16\Plugins\lav\LAVAudio.ax
Input Pin 'Input'
Connected to pin 'Output' of filter 'JRiver Audio Monitor'
Major type MEDIATYPE_Audio Sub type Unknown GUID Name: {000000FF-0000-0010-8000-00AA00389B71}, Format type FORMAT_WaveFormatEx
Output Pin 'Output'
Connected to pin 'In' of filter 'JRiver Audio Renderer'
Major type MEDIATYPE_Audio Sub type MEDIASUBTYPE_IEEE_FLOAT, Format type FORMAT_WaveFormatEx
Filter 'JRiver Video Monitor'
CLSID: {A4207487-E7D8-406B-9882-B66370DE2492}
Host:
Input Pin 'Input'
Connected to pin 'Video' of filter 'LAV Source Splitter'
Major type MEDIATYPE_Video Sub type Unknown GUID Name: {31435641-0000-0010-8000-00AA00389B71}, Format type FORMAT_MPEG2_VIDEO
Output Pin 'Output'
Connected to pin 'In' of filter 'ffdshow Video Decoder (auto-configured)'
Major type MEDIATYPE_Video Sub type Unknown GUID Name: {31435641-0000-0010-8000-00AA00389B71}, Format type FORMAT_MPEG2_VIDEO
Filter 'JRiver Audio Monitor'
CLSID: {A4207487-E7D8-406B-9882-B66370DE2492}
Host:
Input Pin 'Input'
Connected to pin 'Audio' of filter 'LAV Source Splitter'
Major type MEDIATYPE_Audio Sub type Unknown GUID Name: {000000FF-0000-0010-8000-00AA00389B71}, Format type FORMAT_WaveFormatEx
Output Pin 'Output'
Connected to pin 'Input' of filter 'LAV Audio Decoder (auto-configured)'
Major type MEDIATYPE_Audio Sub type Unknown GUID Name: {000000FF-0000-0010-8000-00AA00389B71}, Format type FORMAT_WaveFormatEx
Filter 'LAV Source Splitter'
CLSID: {B98D13E7-55DB-4385-A33D-09FD1BA26338}
Host: C:\Documents and Settings\AB\Application Data\J River\Media Center 16\Plugins\lav\LAVSplitter.ax
Output Pin 'Video'
Connected to pin 'Input' of filter 'JRiver Video Monitor'
Major type MEDIATYPE_Video Sub type Unknown GUID Name: {31435641-0000-0010-8000-00AA00389B71}, Format type FORMAT_MPEG2_VIDEO
Output Pin 'Audio'
Connected to pin 'Input' of filter 'JRiver Audio Monitor'
Major type MEDIATYPE_Audio Sub type Unknown GUID Name: {000000FF-0000-0010-8000-00AA00389B71}, Format type FORMAT_WaveFormatEx
-
So what causes difference between RO standard and RO HQ? Both modes use the LAV splitter. Does madVR fix the AR?
Impossible to say without more in-depth graph details, sadly MC16 doesn't show the actual contents of the media type format structures.
If only the renderer makes a difference, i would wager that one of them is broken, and its not caused by the issue i outlined above.
-
I put a fix in last night's build which should correct the aspect ratio, at least it did on my system.
Please test it out rjm and let us know.Edit: I see you already tested and it's working... Thanks!
ffdshow has an option titled "Set interlaced flag in output media type" which is enabled by default but the tool-tip says it's disabled automatically when you select ffdshow internal de-interlacing. We always enable ffdshow internal de-interlacing in Red October, but apparently the way we select the option programmatically does not cause this other option to be disabled. Long story short, Red October now disables this option when we enable internal de-interlacing and this seems to solve the aspect ratio problem. It must be something in the way some video renderers interpret the de-interlacing flag in the output media type.
-
Impossible to say without more in-depth graph details, sadly MC16 doesn't show the actual contents of the media type format structures.
If only the renderer makes a difference, i would wager that one of them is broken, and its not caused by the issue i outlined above.
It appears that VMR7 on XP is doing a worse job of interpreting the interlacing info flag that ffdshow puts into the output media type compared to madVR.
-
This is good for another reason... Setting the interlaced flag in ffdshow will cause the hardware deinterlacer on your GPU to kick in (if the right output format and renderer is used), or the hardware deinterlacer built into your TV/AVR/etc. Hopefully the logic in the hardware would be smart enough to see that the stream is actually progressive and ignore the flag, but that might be hoping for too much from simple hardware like that. Double processing the video would not be good.