Back Forum Reply New

wmv10b interlace support

I recently installed WMP10b ( warning, totally screws your system; yes, I still use MPC) which includes the 'WMV9 Advanced Profile' codec.  This codec is advertised as better supporting interlaced video.  I've tried this many times in the past with no luck, but new codec so I gave it a try.

I encoded a small truely-interlaced clip and analyzed it with GraphEdit.  Yep, had the correct aspect ratio and interlace format of 'Interleaved Bob Only' (been here before).  Playback seemed verrry smooth, but can't trust my eyes.  I then re-encoded the clip with the wrong field order (forced to tff).  Playback was verrry juddery...that's my bob alright!

I guess microsoft has gone to a lot of work, and even plans hardware-accelerated deinterlacing via DirectX VA (nvidia and ati are onboard).  Since this all uses DirectX (DirectShow), it's plausable that other decoders (xvid, divx, ffdshow, others w/ interlace support) could take advantage as well.  Just need to switch to videoinfoheader2 and read interlace and aspect ratio flags from mp4 stream, right?

From reading posts, some people here see pre-deinterlacing as mass ignorance.  So is this something worth getting excited about?  Will (can?) other codecs follow?

Samples:
~chads...-ricki-bff.wmv
~chads...-ricki-tff.wmv
The bff should play smooth while tff judders.  If clips are deinterlaced (no lines) but both play smooth, then wmp is discarding frames.  If clips play interlaced (visible lines) try GraphEdit or MPC.  When the tff judders, you will notice! Seems to be very buggy.  The aspect ratio and interlace flags are often ignored then magically obeyed (even using the same program)!  Perhaps just my rig  .
-Minolta

{reply to self}

Well, getting other decoders to handle videoinfoheader2 was easier than I thought.  I downloaded the xvid-1.0.1 sources and searched for VIDEOINFOHEADER2, and found function:

CXvidDecoder::GetMediaType

I then hard-coded in, of course:
vih-gt;dwPictAspectRatioX = 4;
vih-gt;dwPictAspectRatioY = 3;
vih-gt;dwInterlaceFlags = AMINTERLACE_IsInterlaced | AMINTERLACE_Field1First | AMINTERLACE_DisplayModeBobOnly;

And it actually worked!  Now my 480x480 interlaced xvid files play with 4:3 aspect ratio and are bob-deinterlaced to double fps.  Of course, this filter is useless since not all my videos have these settings.  However, the actual settings can be grabbed from the mp4 stream (but I have no idea how).  Now if it is this easy, why is WMV9/10 the only to use it??  Surely all codec developers are aware of it.

p.s.
force header2 use in registry by setting HKEY_CURRENT_USER\Software\GNU\XviD\Videoinfo_Compat=0
¥
Back Forum Reply New