[Ffmpeg-devel] Compilation with --enable-theora fails

Rich Felker dalias
Thu May 12 00:26:19 CEST 2005


On Wed, May 11, 2005 at 09:31:40PM +0200, M?ns Rullg?rd wrote:
> > How is it passing the header packets to the theora decoder? This MUST
> > be done via extradata, not as fake non-frame codec packets (which is
> > the way it's actually stored in the ogg file).
> 
> Of course I'm using extradata.
> 
> > See how it's done in ogg2's vorbis demuxing for an example,
> 
> I'm pretty familiar with that one, since I was the one who wrote it.

Oops, sorry! I didn't know. :)

> > although that's currently buggy
> 
> If it works, it's not buggy.  That doesn't mean it's impossible that
> it could be done in a better way.
> 
> > (using int16 is stupid/limited).
> 
> Can the header packets ever be more than 64k?  I did it that way,

Yes. The vorbis comment packet can be arbitrarily large. Imagine the
case where some idiot stores a high-res jpeg cover image in here..

> since that's what the libvorbis wrapper expects.  I'm not the one who
> wrote that one.

Let's not worry about blame, let's just fix it..

> > We had a discussion on IRC last night about how to fix it (basically
> > duplicating the vorbis header packing used as a defacto standard in
> > Matroska) which someone will probably implement soon.
> 
> Since when are you advocating matroska?

:)
I don't like it, but I also don't like introducing multiple
incompatible storage methods. Also, the method used by Matroska for
storing the vorbis headers is fairly harmonious with the the Xiph
design, using ogg vlc (aka lace-coded) numbers for the lengths of the
individual packets. It goes like:

V number of packets N, minus 1
V packet 1 length
  ...
V packet N-1 length
B packet 1 data
  ...
B packet N-1 data
B packet N data

Where B means raw binary data, V means "ogg vlc format", which stores
a number X as X/255 bytes of value 0xff followed by one byte of value
X%255.

The last packet's length is omitted since it's implicit from the total
extradata size. Note: this format is identical to a headerless OGG
page iirc.

> And before I'd consider
> anything related to matroska a de facto standard, I'd want to see at
> least a few percent of the files in the wild to be in matroska format.
> So far, I have come across two (2) matroska files, not counting sample
> files.

Download anime. There are hundreds, probably thousands of files in
Matroska format. Most of them have vorbis audio, although more and
more are (stupidly) AAC instead now because of a myth that it
compresses better. I can give you plenty of samples (first few megs of
a file) if you want to see... Or just browse anidb.info to look at all
the mkv files in the database.

Rich





More information about the ffmpeg-devel mailing list