[vorbis-dev] Xiph Magic

Beni Cherniavsky cben at techunix.technion.ac.il
Thu Jul 17 05:36:06 PDT 2003



Tor-Einar Jarnbjo wrote on 2003-07-17:

>
> > Then FLAC has duplicate framing information when encapsulated in
> > Ogg.  You can determine where a packet ends from the packet
> > itself.
>
> Yes, the decoder knows when a packet is finished and the next packet
> will begin on the next boundary. Except from that, there are no additional
> framing informatioon in a raw FLAC file.
>
That's precisely what I meant by "framing".  I appologize if I was
unclear.

> > I'm not sure about Speex but I'm pretty sure that Vorbis packets
> > are not self-sized.  If not, how come simply trimming (non-header)
> > Vorbis packets is supposed to produce a legal Vorbis file?
> > Quoting the spec: "Vorbis provides none of its own framing,
> > synchronization or protection against errors".
>
> In theory, it is possible to decode an incomplete Vorbis packet and
> still render some sort of audio output. In a Vorbis packet, the order
> of information is sorted according to importance, so if the last
> part of a Vorbis packet is missing, the decoder could be (according
> to the spec probably should be) able to produce audio output with
> minial distortion.
>
> In the normal case (and I am quite sure, that the common players
> would fail playing a properly Ogg-framed Vorbis stream with incomplete
> packets),
>
I'm quite unsure of this as the spec is *very* explicit on this.
Xiph's libvorbis surely handles this, as does Tremor.  The only other
significant implementations are from-the-spec ones written to check
how clear is the spec and perhaps some hardware implementations (e.g.
the Ogg-on-a-chip project which IIRC started before the spec was
ready).  Hardware implementations surely support peeled packets ;-).
In general, I can't imagine anybody implementing Vorbis decoding could
not hear about the concept that trimmed packets are legal.  This was
widely known long before there was a complete spec.

> the packets are complete and the decoder is able to determine the
> end of a packet without relying on the Ogg framing.
>
[reading the spec]...  You are right.  The packets have a "natural
end" determined by their content and decoder setup from the headers.
Nice to learn.

But there is still no such thing as "Native Vorbis" out there.  Nobody
is storing Vorbis without packet boundaries because relying on the
common case would be foolishly short-sighted.


-- 
Beni Cherniavsky <cben at tx.technion.ac.il>

If I don't hack on it, who will?  And if I don't GPL it, what am I?
And if it itches, why not now?  [With apologies to Hilel ;]
--- >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