Blob Blame History Raw
Thu Apr 29 10:42:26 JST 2010 Conrad Parker <>

	* Version 1.1.1

	This is a maintenance release of the current 1.1.x series, containing fixes
	for Mozilla bugs #498380, #496063, #487519, #559338 and Debian bug #557537.
	Additionally, vorbiscomment parsing was modified to tolerate comments which
	lack a value, ie. of form "KEY=" and "KEY".

Thu Oct  8 16:48:47 JST 2009 Conrad Parker <>

	* Version 1.1.0

	This release introduces a new API structure for reporting the byte
	offsets of the start and end pages for each packet.

	Public API:
	* Added <oggz/oggz_packet.h>: add oggz_packet definition, and
	  implement reader to return oggz_packet in OggzReadPacket callback.
	* Updated shared version info to 8.0.6

	* Improved accuracy of byte position tracking during reading,
	  as reported by oggz_tell()

Wed Oct  7 10:57:17 JST 2009 Conrad Parker <>

	* Version 1.0.1

	This release corrects timestamp calculation for Theora files with duplicate
	frames, which are produced by the recently-released libtheora-1.1 encoder.

	Public API:
	* Updated shared version info to 7:1:6

	* Mozilla #516847 - calc gp for duplicate frames
	  Theora encodes duplicate frames as zero-length packets, so
	  increment the calculated granulepos correctly for these.

	* Escape minus signs in man pages
	* Fix typo in oggz-dump man page

Tue Sep 15 07:27:18 JST 2009 Conrad Parker <>

	* Version 1.0.0

	This is a stable maintenance release, including build fixes and
	updates for embedded platforms (ARM, SH4) and updated Visual Studio
	project files for Microsoft Windows.

	This release also includes a new "oggz codecs" command, which simply
	lists the codecs present in one or more files. The default
	comma-separated output is designed for use in an HTML5 <video> codecs

	* Updated Visual Studio project files (Barry Duncan)
	* fix for arm, sh4 builds
	* remove DocBook .sgml files, use .1 directly
	* Debian #540360: use version script on GNU/kFreeBSD

	oggz tools:
	* oggz-chop: fix detection of accumulated continued pages, ie. when
	  all accumulated pages have granulepos -1 and thus should all be
	  kept when advancing the accumulator
	* oggz-chop: add a page accumulator for plain pages. Accumulate pages
	  even for start=0, or tracks with no granuleshift, for cases where
	  continued pages occur at the chop time.
	* oggz-codecs: New tool
	* oggz-comment: Handle duplicate comments, with unit test

	* add oggz.1 man page
	* add examples to chop, comment, dump, info, merge, rip and sort
	  man pages
	* update ChangeLog with info from all release_notes
	* Add PATCHES file, update README

	Public API:
	* Add ability to limit seeks to only search inside a specified byte
	  range. Adds oggz_bounded_seek_set() public API call.
	* Updated shared version info to 7:0:6

	* Handle Theora version > 3.2.0 initial granulepos 1|0
	* Fix data alignment on ARM (Erik de Castro Lopo, Chris Double,
	  Vladimir Vukicevic)
	* Fix for inefficient oggz_seek_units() (Sean Young)
	* oggz_read: always set the internal offset to the start of the
	  current page. This is returned by oggz_tell() and can be queried
	  within a ReadPage callback.
	* oggz_read: Fix packetno check for holes in headers. The packetno
	  has not yet been incremented, so the value to check is off-by-one.
	* Annodex #1581: avoid _oggz_comment_add_byname() strcmp of NULL
	* Mozilla #499604, Annodex #486: avoid uninitialized variable in
	* Mozilla #506870: fix leaks in oggz-comments.c
	* Mozilla #506878: check oggz_stream_get_content() return values
	* Mozilla #515376: Check index in dirac_parse_info()

Thu Apr 10 11:14:43 JST 2009 Conrad Parker <>

	* Version 0.9.9

	  This release adds Dirac support, security fixes, improved low-memory
	  behaviour, and a new 'oggz' wrapper tool with bash completion.

	* Handle allocation failure due to out of memory throughout, for Mozilla
	  bug 468280. Adds new error return OGGZ_ERR_OUT_OF_MEMORY
	* skeleton.c::ogg_from_fisbone(): avoid memcpy of NULL
	  fp->message_header_fields. Fixes ticket:408, reported by j^
	* Mozilla bug 463756: return an error when a hole (ie. missing sequence
	  number) is detected in the headers of a track
	* Remove dead code from oggz_read.c for ticket:439, reported by Coverity
	* Check for NULL return value of val in cgi.c
	  (ticket:438, reported by Coverity)
	* Add NULL return checks
	  (ticket:440, reported by Coverity)
	* Check for integer overflows in calculations for realloc and when using
	  strlen returns.  For Mozilla bug 480014
	* Don't map all errors to OGGZ_ERR_STOP_ERR
	  Required for Mozilla bug 481933
	  Exposes detected HOLE_IN_DATA as return value from oggz_read(),
	  oggz_read_input(), and add documentation for extra return values
	* Apply patch by Jim Blandy from Mozilla bug 480521
	  Avoid overflow in comment lengths

	* Added "X-Accept-TimeURI: application/ogg" HTTP response header to
	  oggz-chop CGI output.
	* Added video/ogg and audio/ogg to example apache config for oggz-chop
	  CGI (Ivo)
	* Added a check if PATH_TRANSLATED is defined, warn about CGI
	  configuration error otherwise (to stderr, ie.  we
	* Added customization for DocumentRoot, for servers that don't provide

	* oggz_constants.h: document use of OGGZ_PREFIX and OGGZ_SUFFIX

	* Build fixes for Mac OS X (rillian)
	* Allow compilation of the library on win32 using Visual Studio 2003
	  and 2005.  The project files have been updated to fix previous errors
	  with compiling using both of these IDEs.
	  Patch by Barry Duncan, and regenerated by ogg.k.ogg.k

	* Add oggz_content_type() public API function:
	  Returns a human-readable string representation of a content type
	* Add API functions for getting and seting preroll:
	  oggz_get_preroll(), oggz_set_preroll()
	  Set preroll in oggz_auto.c for vorbis and speex
	* Kate updates (ogg.k.ogg.k)
	* Parse BOS page before calling first page reader callback.
	  Fixes ticket:416, "oggz-chop writes wrong granulerate in fisbone"
	* Apply patch from dryeo, "off_t not always in stdio.h"
	  Closes ticket:413
	* Apply patch from dryeo, "OS/2 also needs to set stdin/stdout to
	  binary" Closes ticket:414
	* Apply patch by j^, Closes ticket:406 "oggzinfo Video-Height is
	* Fix oggz-comment writing bad data into streams
	  Patch by ogg.k.ogg.k:
	* Updated shared version info to 6:0:5

Fri Jul 4 19:06:54 JST 2008 Conrad Parker <>

	* Version 0.9.8

	  This release adds a new oggz-chop tool, which can be used to serve time
	  ranges of Ogg media over HTTP.

	  It also includes support for the Ogg mapping of the experimental Kate
	  codec (

	* Added new oggz-chop tool: Extract the part of an Ogg file between
	  given start and/or end times. See below for usage information.
	* oggz-sort:  Detect and fix page granulepos that should be -1 but
	  isn't; fixes file error "on page with no completed packets, must be
	  -1" reported by oggz-validate. (Timothy B. Terriberry)
	* oggz-validate: Handle tracking of bos and eos when checking pages,
	  not packets.
	* oggz-validate: Generalized A/V header ordering to handle more audio
	  types (PCM, FLAC0, FLAC, CELT)
	* oggz-comment: Fixed a crash when writing output to stdout, eg. by
	  running "oggz-comment file.ogv -a". Reported by j^
	* oggz-comment: Fixed a bug where files with skeleton could not have
	  their comments modified or listed. Reported by j^
	* oggzinfo: Fixed crash if a skeleton track refers to a track not
	  found in the physical stream. (ogg.k.ogg.k)
	* oggzinfo: Fixed an overflow in standard deviation calculation,
	  and avoided a divide by zero, in the unlikely case where we have
	  only one packet. (ogg.k.ogg.k)
	* oggzinfo: remove memory leak from allocated message headers
	* oggzinfo: Fixed byte offsets for reporting skeleton basetime.
	* oggzinfo: Corrected calculation of Content-Duration to take the
	  Presentation-Time reported in skeleton
	* oggzinfo: Display percentage overhead of Ogg framing for each
	  track. (ogg.k.ogg.k)
	* oggz-basetime: Use new API call oggz_stream_get_numheaders(),
	  rather than hardcoding to 3. (ogg.k.ogg.k)
	* oggzdiff: Allow diffing files with the same name if they are in
	  different directories. (ogg.k.ogg.k)

	* Added a usage example to oggzrip man page, showing how to create an
	  Ogg Vorbis I file from any file containing a vorbis audio track. Adapted
	* Clarified documentation of oggz_table_insert()
	* Added link to in oggz_seek docs

	* Fixed out-of-tree builds in configure and throughout

	* Added support for the Kate codec throughout (ogg.k.ogg.k)
	* tools/skeleton.c: add fisbone_clear() function, for deallocating
	  message headers. (ogg.k.ogg.k)

Fri Feb 15 16:52:21 JST 2008 Conrad Parker <>

	* Version 0.9.7

	  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.

	* 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)

	* 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.

	* 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.

	* 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

Sun Jan 13 13:27:57 JST 2008

	* Version 0.9.6

	  This release adds a new oggz-comment tool, and improvements to
	  liboggz's determination of timestamps and seeking. Specifically,
	  liboggz now inspects the encoded data in order reconstruct the
	  expected granulepos (corresponding to a timestamp) for every packet
	  in an Ogg stream. This allows applications to use reliable
	  timestamps, even though these are only sparsely recorded in most
	  Ogg streams.

	* Added new oggz-comment tool (Kangyuan Niu)
	* Added Skeleton support to oggzinfo (Tahseen Mohammad)
	* Report FLAC samplerate, channels in oggzinfo (Conrad Parker)

	* Improved oggzmerge documentation (Debian bug #280550)

	liboggz API:
	* Added content type detection and retrieval functions
	  oggz_stream_get_content(), oggz_stream_get_content_type()
	  (Shane Stephens)
	* Added oggz_tell_granulepos function to query liboggz for
	  granulepos values. (Shane Stephens)
	* Added Vorbiscomment API oggz_comment_*() for manipulating comments
	  in Ogg Vorbis, Speex, Theora, FLAC files (Conrad Parker, Ian Malone)
	* Added oggz_get_numtracks() (Conrad Parker)

	* Added automatic calculation of missing granulepos values
	  in Vorbis, Speex, Theora (Shane Stephens) and FLAC (Conrad Parker)
	* Seeking improvements (Shane Stephens)
	* Corrections for C standards support (Erik de Castro Lopo)
	* GNU Autotools build system updates (Ralph Giles, Thomas van der
	* Updated Win32 build system (Alex Krumm-Heller, Marcin Lubonski)
	* libtool shared version info updated to 4:0:3

2007-01-12  Thomas Vander Stichele  <thomas at apestaart dot org>

	  dist uninstalled pc file
	  increase package version so liboggplay can require > 0.9.5

Mon Mar 13 14:58:23 EST 2006 Conrad Parker <>

	* Version 0.9.5

	* Fixed and updated Windows (Visual Studio) support
	  - added missing exported symbols, projects for oggz tools.
	  (Alex Krumm-Heller, Silvia Pfeiffer)

	* Support for OggPCM (Draft 2, Main header)

	  OggPCM is an experimental specification for storing uncompressed
	  PCM audio in Ogg bitstreams.

	  - liboggz: Recognition of OggPCM timestamps, and support for
	  seeking in files that contain OggPCM logical bitstreams.
	  - oggzinfo: Display OggPCM header details
	  - oggzdump, oggzrip: New [--content-type pcm, -c pcm] option
	  to filter on OggPCM
	  - oggz-validate: Validate framing of OggPCM logical bitstreams

	  This version is installed on for
	  online validation of OggPCM files.

	  For more information about OggPCM, see:

	* ./configure support for large (>2GB) files
	  This version adds build configuration support for large files,
	  allowing liboggz to operate on files >2GB. This version does
	  not introduce any API changes; interfaces such as oggz_tell()
	  continue to use off_t externally. However, sequential reading
	  and validation of large files is now possible.

	* bug fixes and cleanups:
	  - oggz-validate, oggzmerge, oggzdump, oggz-scan, oggzinfo: handle
	  unknown content types (Ian Malone)
	  - remove deprecated oggzed example
	  - various code and documentation build cleanups

Tue Feb 14 10:14:09 EST 2006 Conrad Parker <>

	* Version 0.9.4

	* 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)

2005-11-17  Thomas Vander Stichele  <thomas at apestaart dot org>

	* doc/
	  Work also with docbook2man as installed on Fedora

Fri Oct 7 16:59:32 EST 2005 Conrad Parker <>

	* Version 0.9.3
	* New oggz-scan tool (silvia)
	  oggz-scan displays timestamps of characteristic features in an Ogg
	  file. 'oggz-scan --keyframes file.ogg' displays timestamps of
	  unforced Theora keyframes, which are a useful rough approximation of
	  shot boundaries. Results can be output as plain text, CMML or HTML.
	* Improvements to oggz-validate:
	  - added page-level validation, ensuring that a page that ends zero
	  packets has the correct granulepos, -1. (MikeS)
	  - added a check that any Theora bos pages come before Vorbis and
	  Speex bos pages. (ticket:156) (conrad)
	  - correct handling of chained files (ticket: 162) (conrad)
	* win32 build fix for oggz tools (j^)
	* liboggz: replace internal typedef of oggz_off_t, use off_t instead
	  of long (ticket:161) (Grayfox)
	* examples/fix-eos: discard trailing incomplete packets from the end
	  of the stream. (MikeS)
	* remove autogenerated manpages (ticket:155) (conrad, silvia)

Mon Jul 11 22:14:14 CST 2005 Conrad Parker <>

	* Version 0.9.2
	* added rewrite-pages example code stub to build tools from
	* added fix-eos example tool to fix missing EOS flags (MikeS)
	* Build system improvements (thomasvs)
	* oggzinfo: Fix calculation of content duration. (ticket:117)
	* oggzmerge: Fix an interleaving error in oggzmerge. (ticket:121)
	* oggzrip: fix memory corruption detected by glibc on Fedora Core
	           (reported/fixed by thomasvs)
	* oggz-validate: report streams with missing *** eos (ticket:146)
	* oggz-validate: report and fail on non-Ogg files (ticket:147)
	* Removed need for ./configure --disable-shared when running tests
	under valgrind

2005-06-13  Thomas Vander Stichele  <thomas at apestaart dot org>

	* m4/as-ac-expand.m4:
	  add m4 dir and use it
	  add an expand macro
	  uniformize configure's output across the annodex stack

2005-06-13  Thomas Vander Stichele  <thomas at apestaart dot org>

	* doc/
	  the doxygen stamp file is a build marker and should not be installed

2005-06-09  Thomas Vander Stichele  <thomas at apestaart dot org>

	* src/tools/oggz-basetime.c: (filter_page), (read_page):
	  Don't adjust granulepos of the three header packets' pages

2005-06-07  Thomas Vander Stichele  <thomas at apestaart dot org>

	* src/tools/oggzrip.c:
	  fixes memory corruption detected by glibc on Fedora Core

2005-06-07  Thomas Vander Stichele  <thomas at apestaart dot org>

	* include/oggz/
	  don't override includedir

Fri Apr 8 23:52:31 EST 2005 Conrad Parker <>

	* Version 0.9.1
	* Added new oggzinfo tool
	* Added new oggz-validate tool
	* oggzdump now displays packet lengths (in bytes, kB, MB, GB ;-)
	  and timestamps (rather than just byte offsets).
	* oggzdump now interprets theora granulepos as a split of keyframe|pframe
	* oggzdump now also has a --content-type (or -c) option for
	  specifying the name of a particular bitstream to dump
	* r1176: fix some typos in oggzdiff which prevented multiple hide
	  options from being specified
	* 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.
	* oggzrip 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.

Mon Feb 14 16:51:28 PST 2005 Conrad Parker <>

	* Version 0.9.0
	* updates for keyframe seeking in Theora and files with Ogg Skeleton
	  metaheaders (
	* added missing header file definitions for oggz_get_granulerate()
	  and oggz_get_granuleshift()
	* build fix for Symbian, adding missing file oggz_seek.c (Colin Ward)
	* general code cleanups
	* updated libtool shared version info to 2:0:1

Mon Feb 7 13:18:33 EST 2005 Conrad Parker <>

	* Version 0.8.6
	* new oggzrip tool, for ripping individual tracks from Ogg files;
	  by David Kuehling
	* added inbuilt parsing of FLAC headers for seeking hints, by
	  Tobias Gehrig. This allows Ogg FLAC files to be used with oggzmerge
	  and similar tools.
	* fixed oggzmerge binary open bug on Win32 (Colin Ward)
	* updated Win32 project by Orum
	* added inbuilt parsing of Ogg Skeleton and CMML binary headers
	* simplified documentation related to seeking
	* added oggz_{get,set}_{granulerate,granuleshift}() query functions
	* Applied patch from Erik de Castro Lopo. Now builds on MingGW:
	  + add pkg-config check for Ogg
	  + add vorbis and speex CFLAGS to various's

Wed Oct 6 15:49:25 EST 2004 Conrad Parker <>

	* Version 0.8.5
	* new oggzmerge tool, for time-wise interleaving of bitstreams.
	  Via OggzAuto, merges files containing any number of Vorbis, Speex,
	  Theora and Annodex bitstreams automatically.
	* updated support for Win32
	* added OggzReadPage API
	* many improvements to seeking behaviour
	* added seek-stress example program
	* fixed theora keyframe shift interpretation in oggz_auto

Wed Sep 8 15:23:04 EST 2004 Conrad Parker <>

	* Version 0.8.4
	* added support for building on Symbian OS (by Colin Ward)
	* new OGGZ_ERR_IO_AGAIN handling for network reads
	* added test for reading packets one-by-one
	* expanded --help output for oggzdump tool
	* added option to run test suite under valgrind

Fri Jan 21 17:38:33 EST 2005 Conrad Parker <>

	* added FLAC header parsing from Tobias Gehrig
	* added CMML header parsing

Fri May 28 11:08:34 EST 2004 Conrad Parker <>

	* removed use of floating point in liboggz

Fri May 21 16:48:34 EST 2004 Conrad Parker <>

	* Version 0.8.3
	* Theora header parsing updated for Theora alpha3
	* fixes for win32 build procedure
	* improved API documentation for seeking, OGGZ_AUTO and OggzIO

Thu Mar 11 11:00:00 EST 2004 Silvia Pfeiffer <>
	* Version 0.8.2
	* fixed up the Makefiles to not include the CVS subdirectories
Sun Mar 07 16:00:00 EST 2004 Silvia Pfeiffer <>
	* Version 0.8.1
	* includes Windows port with Makefile & VC6 workspace & .NET solution
Thu Oct 16 21:55:07 EST 2003 Conrad Parker <>

	* split liboggz out from libannodex sources, started ChangeLog