There have been some great additions to FFmpeg in recent weeks. Most notable is an Indeo 5 video decoder. Congratulations to everyone who worked hard to reverse engineer this codec that was used in quite a few video games. The sample I selected for a FATE test spec is called Educ_Movie_DeadlyForce.avi:
The video is much funnier in its original context (though it’s no longer posted there). Thankfully, the math behind Indeo 5 is bit exact which allows me to enter a test spec right away.
While Indeo 5 was used in quite a few PC games through the years, no game-related format can touch Bink. FFmpeg now includes a Bink file demuxer. Further, FFmpeg now has decoders for both variations of Bink audio (designated DCT and RDFT), which can also occur in Smacker files.
So I added new FATE test specs to cover those new additions. I also went through the FATE test coverage wiki page and eliminated a bunch of low-hanging fruit. Sometimes, there were samples (some difficult to find) at the samples archive; other times, it was necessary to do a Google search for “filetype:<file extension>”. To give you an idea of the current trends in the shifting sands of the internet, such searches invariably seem to yield Facebook pages as their top hits.
These are the new FATE tests:
- adpcm-ea-r2
- adpcm-ea-r3
- bink-demux: only demuxing right now; not testing the perceptual audio codec until I finally deploy the 1-off testing method
- deluxepaint-anm
- ea-tgv-ima-ea-eacs
- iff-ilbm
- indeo5
- iv8-demux
- lossless-tta
- mpc8-demux
- vc1: obviously, there needs to be a lot more VC1 tests; this is just a single conformance sample but it will guard against VC1 demuxer/decoder breakages until I finally get the rest of the samples automatically validated and entered
Michael has been at work fixing more formal H.264 conformance vectors. 2 new tests that reflect this work are h264-conformance-frext-frext_mmco4_sony_b and h264-conformance-frext-frext2_panasonic_b. Further, I am in the process of amending the ea-mad (now ea-mad-adpcm-ea-r1) test to use a sample that has EA R1 ADPCM in addition to EA Madcow video. The new sample is staged and I will update the spec to reflect that new sample when I activate the new specs.
Regarding the iff-ilbm test, I could only find one sample on the internet for that format. It’s a bit weird:
It came from a demoscene archive. I wonder if this immortalized test vector is self-deprecating humor of one’s own demo group or slander of a rival demo group?
First of all, there is only one person who managed to RE both Indeo 4 and 5 (now waiting for the former unless I get too desperate and hack something myself).
And mind you, we may eventually get Bink Video decoder as well. Samples are welcome.
Bink Video decoder would be great (and assuming its legally clean, there would be nothing RGT could do about it)
The http links in the iff-ilbm test spec appear to be broken.
I’m slightly surprised you had trouble finding examples of the format: back in the heyday of the Amiga it was difficult to find images that were in a _different_ format.
Having said that, they do seem to be hard to track down these days! There should be a handful of examples in Picture directory of:
http://drop.io/lsovltp/asset/deluxepaint52-examples-zip
They’re from the [Amiga] Deluxe Paint 5.2 example disk. Sadly I don’t have an ILBM of the iconic Tutankhamun mask shown here:
http://citystate.co.uk/archives/deluxe-paint/
That would be fun for historical reasons. :)
Thanks for interesting post, as always.
printed on the
@James: Thanks for the link correction; fixed. And indeed, it can make us feel old when we find out that certain familiar, once-widely used formats have fallen out of favor. :-)
@Kostya: You’re right, there was one principal reverse engineer on the project. I thought some other people pitched in as well. Perhaps I got confused by all the time the decoder spent in review on the development list.
You need more Bink samples? Seriously? Just wait until I get this little data mining project rolling: http://multimedia.cx/eggs/archivists-burden/ ; you will have untold gigs to try out.
finding a sample is so difficult that now i’m abandoning the search for them. next i’ll start looking for the original software, emulate/install it, and create my own samples.
Your tireless efforts are still appreciated, compn.
Actually, the original software route is a much better approach since we can alleviate copyright concerns by encoding unencumbered source material. We can also potentially flex more codec features by tweaking encoding options.
Plenty of iff-ilbm files here:
http://aminet.net/pix/art
They’re packed into lha archives, so that’s probably why they’re relatively hard to find by googling.
Is the vc1 sample bit-exact with the reference decoder?
@Carl: I did not verify yet. However, it looks correct when decoded to still images, and all 30 of my local configurations agree on the bit exact output. Not a perfect method, but good enough until I finally get around to doing it the most proper way.
ea-tgv/INTRO8K-partial.TGV is missing from mphq samples.
I always have to forget something. The sample is up now. Thanks.
http://aminet.net/search?path%5B%5D=pix&content=.iff
@Mike: The current vc1 test shows two (identical) frames, ffplay and mplayer play ~15 frames, so there is definitely something wrong – pts generation maybe?
Thanks for checking, Carl Eugen. I’ll try to do better on that one.
I don’t think there is a problem with your test, but that ffmpeg doesn’t do any better for this sample (but I would be happy if proven wrong).
The second link is still broken in the IFF-ILBM test spec ;)
@James: Thanks very much for checking over those; that was my abysmal web programming skills at work.