For those, who are interested in playing 16-bit MVE files (yes, Mike, I am talking about you) here are some bits of information I’ve gathered at my leisure:
- you have to skip 16 bytes from block map at the beginning instead of 14 for 8-bit MVE
- colours are now stored as 15-bit (obvious, isn’t it), and high bit may be set for pattern fill order (8-bit MVE just compared colour values, which still works)
- for some opcodes pattern fill order was changed a bit (i.e. subblocks scan order)
- some opcodes meaning was changed completely. Opcode 3 does not requires additional bytes to be read anymore.
I didn’t have a desire to complete it, especially because it’s no fun to debug how motion is stored, so I just hacked existing decoder a bit to decode 16-bit files. Here’s a picture produced by maimed libavcodec/ipvideo.c
: