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.
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?
The regulation LZO decoder is GPL. FFmpeg LGPL. You do the license math. :-)
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)