On reverse-engineering codecs

Sometimes I’m asked what codec I’ll do next. So here’s the answer: I don’t really know.

Since I’m no longer student I don’t have much time to dedicate to reverse-engineering.
Thus I work on different codecs time from time and select such codecs more or less in random.
When I see that it’s nearly completed I spend more time on it till I write a decoder.
That’s how I got RALF decoder, for example.
Or that’s how I have not got Discworld III BMV decoder: long time ago I’ve figured out container format and audio compression, a month ago I’ve advanced in video decoder; but it’s far from completion and I don’t know when I’ll work on it again.

Of course some factors affect my selection of codecs: if I have some interest in it, if it serves some theoretical purpose (e.g. I did Indeo Audio and RALF not because I needed them but to have respective families of codecs fully supported) or if somebody convinces me to do it (two words – GSoC 2007).

So if you ask for some decoder you might get it after a while (but no obligations unless you send me a box of Trocadero).
Don’t forget that samples should be present too (and decoder for the more complex formats).

3 Responses to “On reverse-engineering codecs”

  1. Oleksij says:

    Hi, do you hav interest on reversing of olympus dss audio codec. I woul love but i have no expiriance or knwledge on it. I soud recorder produsing this type of files, i have windows player for it. I can disasamble it but at first looks it looks like lots of work and i do not know where to start.

    If you have intereset, please contact me.

  2. Connor says:

    Any chance you’ve got anywhere with the BMV file format in the past month? I’m working on a couple of Noir-related things (either building it into Residual or as an independent VM) and anything you have on it might be useful.

  3. Kostya says:


    Not yet, maybe one day…

    I’ve stopped at the moment where it reads up to 240 colours that are used later in the decoding video frame.