gecko-dev/media/liboggz/ChangeLog

465 lines
19 KiB
Plaintext

Thu Apr 10 11:14:43 JST 2009 Conrad Parker <conrad@metadecks.org>
* Version 0.9.9
This release adds Dirac support, security fixes, improved low-memory
behaviour, and a new 'oggz' wrapper tool with bash completion.
Security:
* 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
oggz-chop:
* 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
PATH_TRANSLATED
Documentation:
* oggz_constants.h: document use of OGGZ_PREFIX and OGGZ_SUFFIX
Build:
* 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
Internal:
* 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
wrong"
* 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 <conrad@metadecks.org>
* 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 (http://wiki.xiph.org/index.php/OggKate).
Tools:
* 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
(ogg.k.ogg.k)
* 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)
Documentation:
* 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
from: http://lists.xiph.org/pipermail/vorbis-dev/2008-April/019320.html
* Clarified documentation of oggz_table_insert()
* Added link to celt-codec.org in oggz_seek docs
Build:
* Fixed out-of-tree builds in configure and Makefile.am throughout
Internal:
* 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 <conrad@metadecks.org>
* 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.
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
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.
Tools:
* Added new oggz-comment tool (Kangyuan Niu)
* Added Skeleton support to oggzinfo (Tahseen Mohammad)
* Report FLAC samplerate, channels in oggzinfo (Conrad Parker)
Documentation:
* 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)
Internal:
* 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
Stichele)
* 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>
* Makefile.am:
dist uninstalled pc file
* oggz-uninstalled.pc.in:
added
* configure.ac:
increase package version so liboggplay can require > 0.9.5
Mon Mar 13 14:58:23 EST 2006 Conrad Parker <conrad@metadecks.org>
* 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 http://validator.annodex.org/ for
online validation of OggPCM files.
For more information about OggPCM, see:
http://wiki.xiph.org/index.php/OggPCM
* ./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 <conrad@metadecks.org>
* 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>
* configure.ac:
* doc/Makefile.am:
Work also with docbook2man as installed on Fedora
Fri Oct 7 16:59:32 EST 2005 Conrad Parker <conrad@metadecks.org>
* 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 <conrad@metadecks.org>
* 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>
* autogen.sh:
* m4/as-ac-expand.m4:
add m4 dir and use it
add an expand macro
* configure.ac:
uniformize configure's output across the annodex stack
2005-06-13 Thomas Vander Stichele <thomas at apestaart dot org>
* doc/Makefile.am:
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/Makefile.am:
don't override includedir
Fri Apr 8 23:52:31 EST 2005 Conrad Parker <conrad@metadecks.org>
* 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 <conrad@metadecks.org>
* Version 0.9.0
* updates for keyframe seeking in Theora and files with Ogg Skeleton
metaheaders (http://wiki.xiph.org/index.php/OggSkeleton)
* 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 <conrad@metadecks.org>
* 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 Makefile.am's
Wed Oct 6 15:49:25 EST 2004 Conrad Parker <conrad@metadecks.org>
* 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 <conrad@metadecks.org>
* 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 <conrad@annodex.net>
* added FLAC header parsing from Tobias Gehrig
* added CMML header parsing
Fri May 28 11:08:34 EST 2004 Conrad Parker <conrad@annodex.net>
* removed use of floating point in liboggz
Fri May 21 16:48:34 EST 2004 Conrad Parker <conrad@annodex.net>
* 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 <silvia.pfeiffer@csiro.au>
* Version 0.8.2
* fixed up the Makefiles to not include the CVS subdirectories
Sun Mar 07 16:00:00 EST 2004 Silvia Pfeiffer <silvia.pfeiffer@csiro.au>
* Version 0.8.1
* includes Windows port with Makefile & VC6 workspace & .NET solution
Thu Oct 16 21:55:07 EST 2003 Conrad Parker <conrad@annodex.net>
* split liboggz out from libannodex sources, started ChangeLog