{"id":2210,"date":"2010-02-11T23:18:40","date_gmt":"2010-02-12T07:18:40","guid":{"rendered":"http:\/\/multimedia.cx\/eggs\/?p=2210"},"modified":"2010-02-13T11:13:22","modified_gmt":"2010-02-13T19:13:22","slug":"indeo-5-and-partial-bink-in-ffmpeg","status":"publish","type":"post","link":"https:\/\/multimedia.cx\/eggs\/indeo-5-and-partial-bink-in-ffmpeg\/","title":{"rendered":"Indeo 5 and Partial Bink in FFmpeg"},"content":{"rendered":"<p>There have been some great additions to <a href=\"http:\/\/ffmpeg.org\/\">FFmpeg<\/a> in recent weeks. Most notable is an <a href=\"http:\/\/wiki.multimedia.cx\/index.php?title=Indeo_5\">Indeo 5<\/a> 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 <a href=\"http:\/\/samples.mplayerhq.hu\/V-codecs\/IV50\/\">Educ_Movie_DeadlyForce.avi<\/a>:<\/p>\n<p><center><br \/>\n<img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/multimedia.cx\/eggs\/wp-content\/uploads\/2010\/02\/indeo5-swat-deadly-force.jpg\" alt=\"SWAT 3: Deadly force Indeo 5 video\" title=\"SWAT 3: Deadly force Indeo 5 video\" width=\"240\" height=\"180\" class=\"aligncenter size-full wp-image-2211\" \/><br \/>\n<\/center><\/p>\n<p>The video is much funnier in <a href=\"http:\/\/www.oldmanmurray.com\/features\/767.html\">its original context<\/a> (though it&#8217;s no longer posted there). Thankfully, the math behind Indeo 5 is bit exact which allows me to enter a test spec right away.<\/p>\n<p>While Indeo 5 was used in quite a few PC games through the years, no game-related format can touch <a href=\"http:\/\/wiki.multimedia.cx\/index.php?title=Bink_Container\">Bink<\/a>. FFmpeg now includes a Bink file demuxer. Further, FFmpeg now has decoders for both variations of <a href=\"http:\/\/wiki.multimedia.cx\/index.php?title=Bink_Audio\">Bink audio<\/a> (designated DCT and RDFT), which can also occur in <a href=\"http:\/\/wiki.multimedia.cx\/index.php?title=Smacker\">Smacker files<\/a>.<\/p>\n<p>So I added new <a href=\"http:\/\/fate.multimedia.cx\/\">FATE<\/a> test specs to cover those new additions. I also went through the <a href=\"http:\/\/wiki.multimedia.cx\/index.php?title=FATE_Test_Coverage\">FATE test coverage wiki page<\/a> and eliminated a bunch of low-hanging fruit. Sometimes, there were samples (some difficult to find) at the <a href=\"http:\/\/samples.mplayerhq.hu\/\">samples archive<\/a>; other times, it was necessary to do a Google search for &#8220;filetype:&lt;file extension&gt;&#8221;. 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.<\/p>\n<p>These are the new FATE tests:<\/p>\n<ul>\n<li><a href=\"http:\/\/fate.multimedia.cx\/index.php?test_spec=366\">adpcm-ea-r2<\/a><\/li>\n<li><a href=\"http:\/\/fate.multimedia.cx\/index.php?test_spec=368\">adpcm-ea-r3<\/a><\/li>\n<li><a href=\"http:\/\/fate.multimedia.cx\/index.php?test_spec=367\">bink-demux<\/a>: only demuxing right now; not testing the perceptual audio codec until I finally deploy the 1-off testing method<\/li>\n<li><a href=\"http:\/\/fate.multimedia.cx\/index.php?test_spec=360\">deluxepaint-anm<\/a><\/li>\n<li><a href=\"http:\/\/fate.multimedia.cx\/index.php?test_spec=362\">ea-tgv-ima-ea-eacs<\/a><\/li>\n<li><a href=\"http:\/\/fate.multimedia.cx\/index.php?test_spec=361\">iff-ilbm<\/a><\/li>\n<li><a href=\"http:\/\/fate.multimedia.cx\/index.php?test_spec=363\">indeo5<\/a><\/li>\n<li><a href=\"http:\/\/fate.multimedia.cx\/index.php?test_spec=365\">iv8-demux<\/a><\/li>\n<li><a href=\"http:\/\/fate.multimedia.cx\/index.php?test_spec=364\">lossless-tta<\/a><\/li>\n<li><a href=\"http:\/\/fate.multimedia.cx\/index.php?test_spec=359\">mpc8-demux<\/a><\/li>\n<li><a href=\"http:\/\/fate.multimedia.cx\/index.php?test_spec=369\">vc1<\/a>: 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<\/li>\n<\/ul>\n<p>Michael has been at work fixing more formal H.264 conformance vectors. 2 new tests that reflect this work are <a href=\"http:\/\/fate.multimedia.cx\/index.php?test_spec=353\">h264-conformance-frext-frext_mmco4_sony_b<\/a> and <a href=\"http:\/\/fate.multimedia.cx\/index.php?test_spec=358\">h264-conformance-frext-frext2_panasonic_b<\/a>. Further, I am in the process of amending the <a href=\"http:\/\/fate.multimedia.cx\/index.php?test_spec=303\">ea-mad (now ea-mad-adpcm-ea-r1)<\/a> 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.<\/p>\n<p>Regarding the <a href=\"http:\/\/fate.multimedia.cx\/index.php?test_spec=361\">iff-ilbm<\/a> test, I could only find one sample on the internet for that format. It&#8217;s a bit weird:<\/p>\n<p><center><br \/>\n<img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/multimedia.cx\/eggs\/wp-content\/uploads\/2010\/02\/lms-matriks.jpg\" alt=\"lms-matriks\" title=\"lms-matriks\" width=\"320\" height=\"240\" class=\"aligncenter size-full wp-image-2213\" srcset=\"https:\/\/multimedia.cx\/eggs\/wp-content\/uploads\/2010\/02\/lms-matriks.jpg 320w, https:\/\/multimedia.cx\/eggs\/wp-content\/uploads\/2010\/02\/lms-matriks-300x225.jpg 300w\" sizes=\"auto, (max-width: 320px) 100vw, 320px\" \/><br \/>\n<\/center><\/p>\n<p>It came from a demoscene archive. I wonder if this immortalized test vector is self-deprecating humor of one&#8217;s own demo group or slander of a rival demo group?<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Indeo 5 video, Bink demuxer and audio decoders, and a bunch of new and revised FATE test specs<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[101],"tags":[],"class_list":["post-2210","post","type-post","status-publish","format-standard","hentry","category-fate-server"],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/multimedia.cx\/eggs\/wp-json\/wp\/v2\/posts\/2210","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/multimedia.cx\/eggs\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/multimedia.cx\/eggs\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/multimedia.cx\/eggs\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/multimedia.cx\/eggs\/wp-json\/wp\/v2\/comments?post=2210"}],"version-history":[{"count":7,"href":"https:\/\/multimedia.cx\/eggs\/wp-json\/wp\/v2\/posts\/2210\/revisions"}],"predecessor-version":[{"id":2227,"href":"https:\/\/multimedia.cx\/eggs\/wp-json\/wp\/v2\/posts\/2210\/revisions\/2227"}],"wp:attachment":[{"href":"https:\/\/multimedia.cx\/eggs\/wp-json\/wp\/v2\/media?parent=2210"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/multimedia.cx\/eggs\/wp-json\/wp\/v2\/categories?post=2210"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/multimedia.cx\/eggs\/wp-json\/wp\/v2\/tags?post=2210"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}