[ogg-dev] Some oggdsf utilities and libraries now available on UNIX
Andre Pang
Andre.Pang at csiro.au
Wed Jan 5 08:05:27 PST 2005
Hi all,
(This has been cross-posted to vorbis-dev and ogg-dev, since I thought
various people on vorbis-dev may be interested in it.)
I've been working with illiminable for the past few weeks to port the
underlying, platform-neutral part of his DirectShow filters (oggdsf) to
UNIX. While DirectShow is a Windows-specific media framework,
illiminable's filters have been designed so that the DirectShow filters
are actually wrappers around quite platform-neutral C++ libraries.
Since most Windows-specific code are contained only within the
DirectShow filters, it was quite easy to port the underlying libraries
to UNIX systems. So, some of illiminable's libraries are now available
for your hacking pleasure on UNIX systems. Specifically, these
libraries and tools (note, the "OO" in the names of the libraries and
tools means "Object-Oriented" -- blame illiminable for that name ;):
* libilliCore: generally useful C++ functions
* libOOOgg: an alternative Ogg bitstream (de)multiplexer (doesn't use
libogg at all)
* libOOOggSeek: provides seeking in Ogg files
* libVorbisComment: a library to construct and extract Vorbis comments
from Ogg streams
* libOOOggChef: slice and dice Ogg files by logical bitstreams and time
* OOOggDump: An Ogg page and packet dumper (similar to liboggz's
oggzdump if you've used that)
* OOOggValidate: An Ogg bitstream validator
* OOOggStat: Tells you what streams are present in an Ogg file
* OOOggChainSplitter: Splits chained Ogg streams up and renames the
resulting files according to the Vorbis comments stored in the original
chained file (useful for all you internet radio listeners)
* OOOggCommentDump: Print out Vorbis comments in an Ogg stream
* OOOggSeekFileMaker: Construct a seek table from an Ogg file (not very
useful on its own, but a good example program on how to use the
libOOOggSeek library)
* OOOggSeekFileReader: Reads back a seek table constructed with
OOggSeekFileMaker and prints out the time<->byte mappings
There are many other libraries that I haven't ported across yet (such as
libOOTheora), but they shouldn't be too hard to port at all if people
are interested. OOOggDump, OOOggValidate and OOOggChainSplitter are
quite useful tools in their own right.
I've tested the libraries and tools on Linux and Mac OS X, although it
should compile on other UNIXes without much of a problem. Note that GNU
g++ 3.3 is required due to the extensive use of #pragma once in the
header files (and better conformance to the STL).
To play with this code, just check out http://svn.xiph.org/oggdsf/trunk
(it will take a while!), cd into the unix/ directory, type 'autoreconf'
there to invoke the GNU autotools chain (autoreconf should come as part
of your OS distribution), and do the standard ./configure && make &&
make install mantra.
Anyway, if you have more of a C++ bent or just want an alternative to
libogg on UNIX, have a look at the oggdsf-derived libraries. Happy hacking!
--
: André Pang (x4180)
: Software Engineer, Networked Media : CeNTIE
More information about the ogg-dev
mailing list