Oggz 0.9.7 Release ------------------ Oggz comprises liboggz and the command-line tools oggzinfo, oggzdump, oggzdiff, oggzmerge, oggzrip, oggz-comment, oggz-scan, oggz-sort 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 format. This release is available as a source tarball at: http://www.annodex.net/software/liboggz/download/liboggz-0.9.7.tar.gz New in this release: -------------------- This release adds a new oggz-sort tool, includes fixes for serialno generation on 64bit (LP64) platforms, and adds decoding of FLAC vorbiscomment packets and basic support for the Ogg mapping of the experimental CELT codec. It also includes various API additions, documentation updates and new example code. Details: -------- Tools: * Added new oggz-sort tool: Sort the pages of an Ogg file in order of presentation time. (See below for rationale and usage). * 'oggzdiff --revert' fixes for long oggzdump packetinfo lines * oggz-comment: Modified to copy data pages verbatim. * oggzinfo: Fixed for skeleton interpretation on big-endian hosts. * oggzinfo: Various cleanups in skeleton.c (ogg.k.ogg.k) Documentation: * Updated known (non-experimental) content types in all man pages. * Added information about the use of oggz_tell_granulepos() in OggzReadCallbacks for retrieving calculated granulepos values. Examples: * Added modify-headers example, demonstrating how to write a program which modifies Ogg header packets but leaves data pages intact. liboggz API: * Added oggz_comments_copy(). * Added oggz_comments_generate(), which does not require a packet_type argument. Deprecate oggz_comment_generate(). * Added oggz_stream_get_numheaders(), implemented for all known codecs * oggz_serialno_new() now only generates serialnos which will fit within a 32bit integer. * oggz_write_feed() now fails with OGGZ_ERR_BAD_SERIALNO if it is passed a serialno outside of the 32bit range. * Added OGGZ_CONTENT_CELT to the public OggzStreamContent enum. Internal: * Fixed a bunch of x86-64 compiler warnings. (Erik de Castro Lopo) * Updated acinclude.m4 to latest ogg.m4. (Ivo Gonçalves) * Added basic support for (experimental) Ogg mapping for CELT codec. * libtool shared version info updated to 5:0:4 oggz-sort: Rationale and usage directions ----------------------------------------- Some encoders produce files with incorrect page ordering; for example, some audio and video pages may occur out of order. Although these files are usually playable, it can be difficult to accurately seek or scrub on them, increasing the likelihood of glitches during playback. Players may also need to use more memory in order to buffer the audio and video data for synchronized playback, which can be a problem when the files are viewed on low-memory devices. The tool oggz-validate can be used to check the relative ordering of packets in a file. If out of order packets are reported, use oggz-sort to fix the problem. About Oggz ---------- Oggz comprises liboggz and the command-line tools oggzinfo, oggzdump, oggzdiff, oggzmerge, oggzrip, oggz-comment, oggz-scan, oggz-sort 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 distribution. * 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, CELT 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: http://www.annodex.net/software/liboggz/html/ Tools ----- 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 differences. * oggzmerge: Merge Ogg files together, interleaving pages in order of presentation time. * oggzrip: Extract one or more logical bitstreams from an Ogg file. * oggz-comment: List or edit comments in an Ogg file. * oggz-scan: Scan an Ogg file and output characteristic landmarks. * oggz-sort: Sort the pages of an Ogg file in order of presentation time. * oggz-validate: Validate the Ogg framing of one or more files. License ------- Oggz is Free Software, available under a BSD style license. More information is available online at the Oggz homepage: http://www.annodex.net/software/liboggz/index.html enjoy :) -- Conrad Parker, Annodex Association http://www.annodex.net/