Known fourccs:
- WMV3
- WMVP
- WVP2
- WMVA
- WVC1
Known meaning of flags:
- RES_SM: really that’s two flags, RES_SM&2 indicated 411 interlaced mode and RES_SM&1 indicates sprite mode(or so it seems). These flags are mostly used by WMVP and WVP2
- RES_X8: I-frames may be packed with X8 algo. This also means that each I-frame has additional bit in frame header signalling if current frame should be encoded with X8 or with standard encoding scheme. Used in WMV3 Complex Profile.
- RES_FASTTX: still unknown, somehow interferes with motion compensation (at least it does not affect bitstream)
- RES_TRANSTAB: each macroblock should have its own DC/AC table index, not one global stored in the frame header.
- RES_RTM: Old version of WMV3 with different P-frame coding mode
X8 frames use their own Huffman codes (code lengths are stored as nibbles somewhere in bitstream) and also blocks looks like to be decoded in this way:
for(y=0;y
for(x=0;x< mb_width*2;x++){
decode luma blockif( x & y & 1)
decode both chroma blocks
}
}
what movie is this http://www.jhepple.com/SampleMovies/niceday.wmv?
Why your decoder can’t play this? is some weir 4CC you said before?
It is RES_RTM case – old WMV3 with unknown (for now) P-frame coding mode. I’ll RE it when I have enough time.