[Theora-dev] Oggz 0.9.4 Released

Conrad Parker conrad at metadecks.org
Mon Feb 13 17:12:41 PST 2006

Oggz 0.9.4 Release

Oggz comprises liboggz and the command-line tools oggzinfo, oggzdump,
oggzdiff, oggzmerge, oggzrip, oggz-scan and oggz-validate.

liboggz is a C library providing a simple programming interface for reading
and writing Ogg files and streams. Ogg is an interleaving data container
developed by Monty at Xiph.Org, originally to support the Ogg Vorbis audio

This release is available as a source tarball at:


Many of the improvements in this release were driven by development of the
new Annodex Media Validation Service: http://validator.annodex.org/

New in this release:

        * liboggz: Added new oggz_run() convenience function
          - equivalent to calling oggz_read() or oggz_write() in a loop,
          but only returns upon completion or error
          - added new oggz_run_set_blocksize() function
          - updated libtool shared version info to 3:0:2

        * liboggz: Improved callback handling
          - added delayed callback error handling for oggz_read*() and
          oggz_write*() functions. When a reading or writing operation is
          stopped by a user callback returning OGGZ_STOP_OK or OGGZ_STOP_ERR,
          that return value is cached and reported by the subsequent call
          to oggz_read*() or oggz_write*() (unless no data has been read or
          written, in which case it is reported immediately as before). This
          ensures that a user callback returning OGGZ_STOP_OK or
          OGGZ_STOP_ERR is always explicitly acknowledged without requiring
          the application to track its own errors.

        * Improvements to oggz-validate:
          - added ability to run oggz-validate on stdin, using "-" as filename
          - added --prefix, --suffix and --partial options to suppress errors
          when only validating the specified portion of a complete stream
          - add --max-errors num option to specify the maximum number of
          errors to bail out after, or 0 to show all errors (ticket:154)
          - if an input file fails oggz_open(), continue processing other
          files on the commandline rather than exiting immediately
          - improved documentation of errors detected by oggz-validate
          - added --help-errors (-E) option to just list known errors,
          without other help text around

        * oggzmerge: When merging Vorbis and Theora streams, ensure the
          Theora header appears first in the output file in conformance with
          the Ogg Theora bitstream specification. (ticket:189)

About Oggz

Oggz comprises liboggz and the command-line tools oggzinfo, oggzdump,
oggzdiff, oggzmerge, oggzrip, oggz-scan and oggz-validate.

liboggz supports the flexibility afforded by the Ogg file format while
presenting the following API niceties:

        * Full API documentation

        * Comprehensive test suite of read, write and seeking behavior.
        The entire test suite can be run under valgrind if available.

        * Developed and tested on GNU/Linux, Darwin/MacOSX, Win32 and
        Symbian OS. May work on other Unix-like systems via GNU autoconf.
        For Win32: nmake Makefiles, Visual Studio .NET 2003 solution files
        and Visual C++ 6.0 workspace files are provided in the source

        * Strict adherence to the formatting requirements of Ogg bitstreams,
        to ensure that only valid bitstreams are generated; writes can fail
        if you try to write illegally structured packets.

        * A simple, callback based open/read/close or open/write/close
        interface to raw Ogg files.

        * Writing automatically interleaves with packet queuing, and provides	
        callback based notification when this queue is empty

        * A customisable seeking abstraction for seeking on multitrack Ogg
        data. Seeking works easily and reliably on multitrack and multi-codec
        streams, and can transparently parse Theora, Speex, Vorbis, FLAC,
        CMML and Ogg Skeleton headers  without requiring linking to those
        libraries. This allows efficient use on servers and other devices
        that need to parse and seek within Ogg files, but do not need to do
        a full media decode.

Full documentation of the liboggz API, customization and installation,
and mux and demux examples can be read online at:



The Oggz source tarball also contains the following command-line tools,
which are useful for debugging and testing Ogg bitstreams:

        * oggzinfo: Display information about one or more Ogg files and
        their bitstreams.

        * oggzdump: Hexdump packets of an Ogg file, or revert an Ogg file
        from such a hexdump.

        * oggzdiff: Hexdump the packets of two Ogg files and output

        * oggzmerge: Merge Ogg files together, interleaving pages in order
        of presentation time.

        * oggzrip: Extract one or more logical bitstreams from an Ogg file.

        * oggz-scan: Scan an Ogg file and output characteristic landmarks.

        * oggz-validate: Validate the Ogg framing of one or more files.


Oggz is Free Software, available under a BSD style license.

More information is available online at the Oggz homepage:


enjoy :)

Conrad Parker
Senior Software Engineer, Continuous Media Web, CSIRO Australia
http://www.annodex.net/   http://www.ict.csiro.au/cmweb/

More information about the Theora-dev mailing list