[theora-dev] First Alpha of oggToolspp

Yorn yorn at gmx.net
Mon Jan 14 12:01:43 PST 2008


Hi all,

I am happy, to announce the first (Alpha) release of the oggToolspp.

The basis of the command line tools is a small, but hopefully growing library 
for manipulating ogg streams (mainly video streams) written in c++.

The aim of this library is, to provide easy access methods to ogg pages, ogg 
packets and the video-frames and audio-samples in the end.

The command line tools are actually oggSplit, which will divided an oggFile 
into it's streams and oggDump which will print a dump of an ogg file. The 
tools are more a prove of concept for the c++ library. Please don't count 
them as a replacement of the oggz-Library tools. 

The files can be downloaded from:
http://www.streamnik.de/download.html

Please remember the library is far away from being complete. There are a lot 
of thinks, that need work actually. E.g. there is no configure script and no 
readme.

Have fun - Yorn

--------------

For those who are interested in the concept:

C++ provides streaming operators (<< and >>) which are mainly used by the 
system to receive text at stderr or stdout (cout << "Hello World"). However, 
I use these operators for transfering information from one media unit to 
another. 

E.g. the two lines:
repository >> rawData;
oggDecoder << rawData;

will grap a bunch of raw data from a repository (e.g. a file) and place it 
into rawData. This rawData object is then placed into the oggDecoder.

To find out if there is output data available, all media units provide the 
method isAvailable():

while (oggDecoder.isAvailable()) {
  oggDecoder >> oggPage;
  oggStreamDecoder << oggPage;
}

This can be done up until a frame or audio sample is available, but you don't 
have to. You can also place the data it into an oggEncoder and then into a 
new repository e.g. to split a stream (please refer to oggSplit as an 
example).



More information about the theora-dev mailing list