Breaking Eggs And Making Omelettes

Topics On Multimedia Technology and Reverse Engineering


Archives:

Meta:

Ingenient MJPEG

October 31st, 2005 by Multimedia Mike

Alex Beregszaszi has been working out the details of another motion JPEG (MJPEG) variant, this one comes from Ingenient.

See Alex’s article for the codec’s application.

Check out his format information here.

Posted in Open Source Multimedia, Reverse Engineering | Comments Off

New DivX Version

October 29th, 2005 by Multimedia Mike

I just learned that a new version of DivX (version 6) is available when I found a file on BitTorrent that mentioned DivX6 in the filename. Fortunately, the file uses the fourcc DX50 which implies that the bitstream syntax is the same as the previous version. Version 6 of the encoder likely features general improvements to the encoding engine but packs the data into the same bitstream (which is apparently compatible with ISO MPEG-4). The DX50 data decodes fine with FFmpeg.

Posted in General | Comments Off

Truly Cheesy FMV

October 25th, 2005 by Multimedia Mike

In my multimedia research I have purchased a lot of used video games and investigated a lot of full motion video (FMV) formats. Some of the material is beyond appalling. But I have finally found the cheesiest FMV of all:


FMV-brand Macaroni and Cheese

Quite good, too.

Posted in General | Comments Off

Open Source QDesign Is Here!

October 18th, 2005 by Multimedia Mike

A significant milestone in open source multimedia: A group of highly dedicated and talented multimedia hackers has successfully reverse engineered the QDesign Music Codec (fourcc: QDM2) and released an open source decoder implementation. As usual, it is a piece of the FFmpeg project and the source code is available in the FFmpeg CVS repository, just waiting to be plugged into any libavcodec-using application. Be sure to pass the proper extradata through to the decoder.

There are very few QuickTime files that can not be played using open source software.

Thanks to all the folks who were involved in this effort: Ewald Snel, Benjamin Larsson, Alex Beregszaszi, and Roberto Togni.

Posted in Open Source Multimedia, Reverse Engineering | Comments Off

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 | No Comments »

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 | No Comments »

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 | No Comments »

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 | No Comments »

Eyes On The Prize

October 3rd, 2005 by Multimedia Mike

I find it useful to reaffirm my core goal in this whole multimedia hacking adventure. I started out with this goal back in 2000 and it has not changed:

I want one multimedia player that:

  • can play any multimedia format I throw at it
  • is simple to install and use (simple and consistent graphical user interface)
  • runs under Linux
  • is free
  • is open source

Whenever I evaluate the state of multimedia support on Linux, I use the metric described above. Is it a difficult goal? Certainly. Is it possible? Absolutely. There are problems, but none could be described as insurmountable.

Posted in Open Source Multimedia | Comments Off

WC4 Procurement

October 1st, 2005 by Multimedia Mike

I visited my favorite used software shop today (actually a used book shop that happens to sell used software on consignment). They actually had not one, but two copies of Wing Commander IV: The Price of Freedom. I guess this means I actually have to finish reverse engineering that Xan codec now.

Posted in Origin Xan, Reverse Engineering | Comments Off