[ogg-dev] work on OggFile/OggStream
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.
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