[ogg-dev] work on OggFile/OggStream

Arc arc at Xiph.org
Mon Nov 7 05:12:40 PST 2005

I've rehashed the model for the libogg2 convience library, seperating it into 
two libraries in the effort to allow 3rd party media frameworks to more directly 
utilize the functions provided by OggFile, while still providing VorbisFile-like 
convience for the most common uses of Ogg encoders/decoders.

In this new model, liboggstream provides the functionality of "codec plugins", 
inputting and outputting Ogg packets (because Ogg packets are a convient, 
general form to handle granule-stamped encoded and decoded multimedia data).  It 
will, as per configuration, launch a seperate application when an unknown codec 
is encountered (which may, in turn, contact a service at Xiph.org to find a 
plugin for that codec, download it, and retry the stream).

liboggfile will provide basically the same functionality as libvorbisfile with 
the addition of encoding support using liboggstream.  It'll be the (de)muxer 
with seeking on decode with callbacks used for both input and output, basic file 
and buffer callback functions will be provided with the library of course.  

This means that gStreamer, Helix, the new KDE multimedia framework, etc can use 
Ogg codec plugins directly, without having to either re-implement them or wrap 
them with cleverly-written callbacks, wether or not they're encoded in an Ogg 
bitstream, some 3rd party encapsulation (ie, Quicktime), or transfered over RTP.  

The concept for this started with my own need to break the task down into easier 
to implement chunks, and this model emerged as a favorable one from that, noting 
the past call to cooperate with one media framework or another.

Comments welcome/encouraged.


The recognition of individual possibility,
 to allow each to be what she and he can be,
  rests inherently upon the availability of knowledge;
 The perpetuation of ignorance is the beginning of slavery.

from "Die Gedanken Sind Frei": Free Software and the Struggle for Free Thought
 by Eben Moglen, General council of the Free Software Foundation

More information about the ogg-dev mailing list