[ogg-dev] Oggz 0.9.1 Release
Conrad Parker
conrad at metadecks.org
Fri Apr 8 07:03:32 PDT 2005
Oggz 0.9.1 Release
------------------
Oggz comprises liboggz and the command-line tools oggzinfo, oggzdump,
oggzdiff, oggzmerge, oggzrip 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.1.tar.gz
New in this release:
* Added new oggzinfo tool
-------------------------
oggzinfo displays information about the contents of Ogg files.
By default it displays basic information such as audio samplerate
and video dimensions:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
$ oggzinfo 2004-12-04-cc-theora.ogg
Content-Duration: 00:01:54.748
Theora: serialno 1648191042
3442 packets in 251 pages, 13.7 packets/page
Video-Framerate: 29.970 fps
Video-Width: 160
Video-Height: 128
Vorbis: serialno 0317964026
4935 packets in 138 pages, 35.8 packets/page
Audio-Samplerate: 22000 Hz
Audio-Channels: 2
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
oggzinfo also has options to display the following information for
the entire file, and also for each logical bitstream:
- length in bytes, kB, MB, GB
- average bitrate in bps, kbps, Mbps, Gbps
- statistics on page lengths (maximum and standard deviation)
- statistics on packet lengths (maximum and standard deviation)
The man page for oggzinfo(1) can be read online at:
http://www.annodex.net/cgi-bin/man/man2html?query=oggzinfo
* Added new oggz-validate tool
------------------------------
oggz-validate checks the ordering of packets within an Ogg file, and
also checks that it complies with the Ogg bitstream mapping
restrictions.
The man page for oggz-validate(1) can be read online at:
http://www.annodex.net/cgi-bin/man/man2html?query=oggz-validate
* improved oggzdump tool
------------------------
oggzdump now displays packet lengths (in bytes, kB, MB, GB ;-)
and timestamps (rather than just byte offsets). It now interprets
theora granulepos as a split of keyframe|pframe:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
00:00:07.733: serialno 0539503247, granulepos 89|27, packetno 119: 277 bytes
0000: 506c a908 120e 3d0b 88d7 73e9 7227 227c Pl....= ..s.r'"|
0010: 9f40 7463 f789 87c1 8b79 043b 183c 946f . at tc.....y.;.<.o
0020: d1e3 3e47 0798 9fcd 61a9 f113 e261 d1ec ..>G....a....a..
...
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
oggzdump now also has a --content-type (or -c) option for
specifying the name of a particular bitstream to dump:
oggzdump --content-type theora file.ogg
will dump only the packets in the theora logical bitstream.
The man page for oggzdump(1) can be read online at:
http://www.annodex.net/cgi-bin/man/man2html?query=oggzdump
* bugfix in oggzdiff tool
-------------------------
r1176: fix some typos in oggzdiff which prevented multiple hide
options from being specified
The man page for oggzdiff(1) can be read online at:
http://www.annodex.net/cgi-bin/man/man2html?query=oggzdiff
* liboggz: bugfix in raw seeking
--------------------------------
liboggz provides seeking by time or byte offsets in multitrack Ogg
files. It automatically handles time offsets for files containing
Theora, Speex, Vorbis, FLAC and CMML.
r1092: fix a bug in raw seeking, where doing a raw seek by bytes
and back again by time (to the original time point) hadn't
invalidated the cached time offset, hence the second seek was
considered unnecessary and skipped. This change correctly
invalidates the cached time offset when doing a raw byte seek.
* unnecessary optimisations in oggzrip tool
-------------------------------------------
Optimised packet filtering: filtering decisions are now made at the
start of each logical bitstream, not at every packet. Additionally,
the hardcoded limit of extracting no more than 64 logical bitstreams
from the input file was removed.
The man page for oggzrip(1) can be read online at:
http://www.annodex.net/cgi-bin/man/man2html?query=oggzrip
About Oggz
----------
Oggz comprises liboggz and the command-line tools oggzinfo, oggzdump,
oggzdiff, oggzmerge, oggzrip 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 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 Oggz is Free Software, available under a BSD-style
license.
* oggzmerge: Merge Ogg files together, interleaving pages in order
of presentation time.
* oggzrip: Extract one or more logical bitstreams from an Ogg file.
* 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/
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 ogg-dev
mailing list