[vorbis-dev] Carrying non-audio data in an Ogg/Vorbis I stream

Svante Seleborg svante at seleborg.pp.se
Mon Oct 28 13:36:55 PST 2002



Hi!

(snip)

>> under the impression that "Ogg/Vorbis I" specifically meant Vorbis
>> encoded audio carried in an Ogg stream, under some very specific
>> restrictions, the major one here being that multiplexing of the Ogg
>> stream is not allowed - only chaining. See the "Restrictions" section
>> of http://www.xiph.org/ogg/vorbis/doc/vorbis-ogg.html.
>>
>> The point of the excercise is to bring other data in there, without
>> breaking this specification or violating these constraints.
>
>Yes, unfortunately Monty wrote the spec this way. Obviously a vorbis 
>decoder should just decode the first vorbis bitstream it finds in a 
>multiplexed file, silently discarding any substream types it doesn't 
>understand.
>
>Nevertheless, multiplexing your data and the vorbis stream within the 
>ogg file is the way to do this.

But that would break in any current player, right?

>
>> That was what I meant, sorry if I was unclear. I meant using a 
>> 'private'
>> header for the chained logical bitstream. I assume you mean the 
>> 'Theora'
>> project when you say 'Theo' - but why should I contact them?
>
>Not officially. Just pick something sane, and if it's popular you won't 
>be the one who has to worry about conflicts. :)
>
>You can add further redundancy checks to verify the packets are yours 
>if you're worried.

Of course, thanks. I'm more worried about what other unaware players
will do. Most modern file/stream formats will have some mechanism to
handle unkown future extensions, that's what I'm looking for. It seems
the Ogg/Vorbis I format specification missed this, by placing to harsh
constraints on the format, and/or not specifically stating the attitude
towards chained logical bitstreams of unknown nature. I'd be very happy
to be proven wrong here both in practice and in theory...

The current best bet seems to be to concatenate a separate Ogg stream,
which then should be ignored by the player as unkown, although this
should not really be the way to do it. I'd much rather have it inside
the stream as a separate logical stream, chained if I must.

/Svante
--- >8 ----
List archives:  http://www.xiph.org/archives/
Ogg project homepage: http://www.xiph.org/ogg/
To unsubscribe from this list, send a message to 'vorbis-dev-request at xiph.org'
containing only the word 'unsubscribe' in the body.  No subject is needed.
Unsubscribe messages sent to the list will be ignored/filtered.



More information about the Vorbis-dev mailing list