Breaking Eggs And Making Omelettes

Topics On Multimedia Technology and Reverse Engineering


Final Fantasy Fanboys Rejoice!

October 17th, 2005 by Multimedia Mike

Kostya has ironed out the details of the Duck TrueMotion 2 video codec format and finished the FFmpeg decoder. Now it is possible to natively decode all 100+ AVI files on the PC version of Final Fantasy VII:

Final Fantasy VII Logo

Check out the FFmpeg CVS repository.

Posted in On2/Duck, Open Source Multimedia | Comments Off on Final Fantasy Fanboys Rejoice!

Duck TrueMotion 2 & Esoteric FLIC

October 12th, 2005 by Multimedia Mike

Kostya has plodded through the long-open sourced, yet highly cryptic, code of On2’s VpVision and successfully reverse engineered a description of the Duck TrueMotion 2 video codec (fourcc: TM20). He then re-implemented a fresh version which is available in the FFmpeg CVS repository. Here it is in action, decoding the one known TM20 sample:

Final Fantasy - TM20

The video depicts something related to the unkillable Final Fantasy game series. The most famous application for the TM20 codec has been to encode the FMV in Eidos’ PC port of Final Fantasy VII. This game is known to use a bitstream-incompatible version of the TM20 format. So there is still some work to do on this codec before the Final Fantasy fanboys rejoice over being able to natively decode the FMV for this game.

Also, do you remember the basic Autodesk FLIC format? Did you know there are more variations of the format than you can possibly imagine? As much as I enjoy hacking on esoteric multimedia formats I just could not bring myself to care about these variations. This is mostly because I did not have sample files.

Recently, however, Steven Johnson has seen fit to implement several variations of the format including FLX and DTA extensions. The code is in FFmpeg’s CVS.

Posted in On2/Duck, Open Source Multimedia | Comments Off on Duck TrueMotion 2 & Esoteric FLIC

Hooking Up The SMPTE VC-1 Decoder In FFmpeg

October 6th, 2005 by Multimedia Mike

Update, Jan-16-2008: I should have posted this update a long time ago. Readers should be advised that these instructions are obsoleted by the fact that FFmpeg already includes a native (and much faster) VC-1 decoder.

Some people have asked me for my code to make the SMPTE VC-1 reference decoder work with FFmpeg, slow though it may be. I suppose I could make a patch. But the official version of FFmpeg is whatever happens to be in CVS at the current moment. So any patch I could produce would work for maybe a day. So get ready to do a little editing on your local FFmpeg CVS tree. The steps:

Read the rest of this entry »

Posted in Open Source Multimedia | Comments Off on Hooking Up The SMPTE VC-1 Decoder In FFmpeg

More On That Multimedia Programming Language

October 4th, 2005 by Multimedia Mike

I move swiftly from project to project and I know some readers are hoping that I succinctly forget about this multimedia programming language idea. Just a few more thoughts:

Matthieu Castet tipped me off that gcc 4 actually offers vector data type extensions. The concept is to declare and use vector data types in such a way that the compiler will understand how to transform them into SIMD instructions (MMX, SSE2, Altivec, et al). Please forgive my skepticism regarding how well this could possibly work. I do not begrudge the gcc developers for their roles; I know it’s a tough duty and I appreciate that gcc works across so many different CPU architectures. However, one area of gcc that seems to break down with inordinate regularity is optimization along with C/ASM code intermingling.

One item that I did not make clear in my first post about the language is driving motivation. The idea is to take something that resembles an ISO-style spec and compile it directly. Have you ever looked at a formal ISO spec? Probably not an official one, but chances are that if you have been working on multimedia tech for any period of time you have at least seen ISO draft documents floating around on the internet. Generally, they are impenetrable but also highly programmatic. I think it would be useful to compile the specs directly.

Maybe I am thinking of some literate programming variation.

Posted in Outlandish Brainstorms | Comments Off on More On That Multimedia Programming Language

« Previous Entries Next Entries »