That is not dead which can eternal buffer, And with strange aeons RALF may be implemented.

And now for something completely different, a post about our favourite eldritch abomination (the word “buffering” should tell it all).

I’ve decided to spend some time on RealVideo codecs.

  • RM demuxer — the one in Libav is based on some scarce guesswork and does many things incorrectly (reporting incorrect FPS, reporting PTS while container stores only DTS, ignoring interleavers, selecting video codec by version reported in its extradata, etc.). I hope improve it a bit or kill trying.
  • RV1/2 — our decoder is based mostly on guesswork, I’ve looked at it and tried to correct header parsing at least. For these codecs internal version number actually matters for bitstream reading. Another funny fact: Real didn’t develop RV2 fully by themselves, they based it on Intel ILVC sources (even some header from Helix distribution says it and I wondered why some functions in RV2 have Hive* names like in Indeo 4 and 5). Also decoder sports some artefacts related to motion vectors outside picture boundaries, maybe it will be fixed too.
  • RV3 — there was a problem with chroma drift, it’s finally fixed.
  • RV4 — there’s well-known problem caused by lack of weighted MC. I’ve finally implemented it, after some cleaning and related work on RV3/4 decoder it should appear in Libav soon.

P.S. So far there are two codecs not supported by Libav, RALF (yet another pointless lossless audio format in its own special container too, or in slightly twisted RM at least) and ClearVideo (yes, it was possible to have non-RV there, anybody remembers that fractal codec?). While RALF is unlikely to be implemented ever (I think I wrote about it once), ClearVideo might be supported eventually but don’t hold your breath on it.

5 Responses to “That is not dead which can eternal buffer, And with strange aeons RALF may be implemented.”

  1. janne says:

    Thank you for fixing the RV4 decoder, I’ve got some content that I’ve wanted to encode to some sane format (720p; internal horizontal resolution is halved, NNEDI upscaling saves the day) but the motion compensation errors have been too severe to do that.

  2. Peter says:

    Someday, someone will give RALF some attention,

  3. compn says:

    i never found an ILVC sample 🙁

    the binary decoder (ilvc20.ax) is reported to decode the H263 fourcc as well.

  4. Enig123 says:

    That’s the most exciting news this month. I was looking forward to your effort to make RV decoder perfect for a long time.

  5. Enig123 says:

    How’s it going on with the improvements? Cannot wait for the updates.