[theora-dev] Theora in Matroska

Ralph Giles giles at xiph.org
Fri Nov 3 11:02:09 PST 2006

Forgive the cross posting, this affects several projects.

On Fri, Nov 03, 2006 at 12:50:27AM -0800, Unga wrote:

> Currently Theora video in Matroska is not supported by
> Mplayer. To enable the support Michael Niedermayer has
> made the following proposal sometime back:
> http://article.gmane.org/gmane.comp.video.mplayer.nut.devel/214

The proposal is that we add a recommendation to the ogg vorbis
spec to just concatenate the headers when embedding in a container
that needs to store them in a blob, and that readers skip leading 
and trailing data based on known packet lengths and magic strings.

As Michael says, this works, and is just the sort of hacky spec 
wrangling ogg is (in)famous for. :)

I guess my only comment is that this isn't particularly general. 
While vorbis has a fixed set of header packets with "easy" to determine 
lengths, it's possible to do a codec with external framing in mind where 
this wouldn't work. The theora spec, for example, allows additional 
application-defined header packets after the initial required three.

It also means a cross-encapsulator has to understand a codec's header 
packet format to put the data in an ogg stream, which is something many 
implementors have complained loudly about. Therefore I'd like to 
counterpropose something with explicit packet lengths, like matroska 
has, or the "packed header" format the vorbis and theora rtp drafts use.

If we're going to add this to the vorbis and theora specs, I'd like to 
see it used as broadly as possible, but luca dislikes the metadata 
header and omitted it from his packed header design for rtp. Luca, what 
do you think about adding the metadata header back as an optionally 
empty field?


More information about the theora-dev mailing list