Breaking Eggs And Making Omelettes

Topics On Multimedia Technology and Reverse Engineering


Profiles In Multimedia Hacking

January 15th, 2006 by Multimedia Mike

Kudos to Reimar Döffinger for a new, clean implementation of the LZO lossless coding algorithm for the FFmpeg project. This means that there is one less external package that multimedia players have to rely on since there is an equivalent capability in FFmpeg.

I wanted to highlight this because it is useful when someone undertakes to re-implement a decoder from another package as another FFmpeg module. This has happened a number of times already, in the cases of Vorbis, FLAC, and VP3, for example. Remember, reverse engineering also applies to understanding bodies of code written in higher level languages than ASM and re-implementing them based on your newfound understanding.

For eye candy, check out Reimar’s “show your work” handwritten notes for understanding the LZO decoder. The original LZO decoder seemed to have so many labels and goto statements that it might as well have been written in straight ASM.

Posted in Open Source Multimedia, Reverse Engineering | 3 Comments »

3 Responses

  1. Jim Leonard Says:

    I’m missing something here — why didn’t the project use the actual LZO code? Why was it important to re-implement something that already has source?

  2. Multimedia Mike Says:

    The regulation LZO decoder is GPL. FFmpeg LGPL. You do the license math. :-)

  3. Reimar Döffinger Says:

    Also I heartily suggest to read the code – especially minilzo.c. Then compare it to my code. For those that do multimedia hacking because they want to understand, I’d say there is another obvious reason :-)
    (just for the record – I am not a big fan of the LGPL and prefer GPL – but code to understand/use/decode existing data is one case where I would even consider a BSD-style license)