Fix potential integer overflow.
[liboggz.git] / release_notes / liboggz-0.9.7.txt
1 Oggz 0.9.7 Release
2 ------------------
3
4 Oggz comprises liboggz and the command-line tools oggzinfo, oggzdump,
5 oggzdiff, oggzmerge, oggzrip, oggz-comment, oggz-scan, oggz-sort and
6 oggz-validate.
7
8 liboggz is a C library providing a simple programming interface for reading
9 and writing Ogg files and streams. Ogg is an interleaving data container
10 developed by Monty at Xiph.Org, originally to support the Ogg Vorbis audio
11 format.
12
13 This release is available as a source tarball at:
14
15 http://www.annodex.net/software/liboggz/download/liboggz-0.9.7.tar.gz
16
17 New in this release:
18 --------------------
19
20 This release adds a new oggz-sort tool, includes fixes for serialno generation
21 on 64bit (LP64) platforms, and adds decoding of FLAC vorbiscomment packets and
22 basic support for the Ogg mapping of the experimental CELT codec. It also
23 includes various API additions, documentation updates and new example code.
24
25
26 Details:
27 --------
28
29 Tools:
30         * Added new oggz-sort tool: Sort the pages of an Ogg file in order
31           of presentation time. (See below for rationale and usage).
32         * 'oggzdiff --revert' fixes for long oggzdump packetinfo lines
33         * oggz-comment: Modified to copy data pages verbatim.
34         * oggzinfo: Fixed for skeleton interpretation on big-endian hosts.
35         * oggzinfo: Various cleanups in skeleton.c (ogg.k.ogg.k)
36
37 Documentation:
38         * Updated known (non-experimental) content types in all man pages.
39         * Added information about the use of oggz_tell_granulepos() in
40           OggzReadCallbacks for retrieving calculated granulepos values.
41
42 Examples:
43         * Added modify-headers example, demonstrating how to write a program
44           which modifies Ogg header packets but leaves data pages intact.
45
46 liboggz API:
47         * Added oggz_comments_copy().
48         * Added oggz_comments_generate(), which does not require a packet_type
49           argument. Deprecate oggz_comment_generate().
50         * Added oggz_stream_get_numheaders(), implemented for all known codecs
51         * oggz_serialno_new() now only generates serialnos which will fit
52           within a 32bit integer.
53         * oggz_write_feed() now fails with OGGZ_ERR_BAD_SERIALNO if it is
54           passed a serialno outside of the 32bit range.
55         * Added OGGZ_CONTENT_CELT to the public OggzStreamContent enum.
56
57 Internal:
58         * Fixed a bunch of x86-64 compiler warnings. (Erik de Castro Lopo)
59         * Updated acinclude.m4 to latest ogg.m4. (Ivo Gonçalves)
60         * Added basic support for (experimental) Ogg mapping for CELT codec.
61         * libtool shared version info updated to 5:0:4
62
63
64 oggz-sort: Rationale and usage directions
65 -----------------------------------------
66
67 Some encoders produce files with incorrect page ordering; for example,
68 some audio and video pages may occur out of order. Although these files
69 are usually playable, it can be difficult to accurately seek or scrub
70 on them, increasing the likelihood of glitches during playback. Players
71 may also need to use more memory in order to buffer the audio and video
72 data for synchronized playback, which can be a problem when the files
73 are viewed on low-memory devices.
74
75 The tool oggz-validate can be used to check the relative ordering of
76 packets in a file. If out of order packets are reported, use oggz-sort
77 to fix the problem.
78
79 About Oggz
80 ----------
81
82 Oggz comprises liboggz and the command-line tools oggzinfo, oggzdump,
83 oggzdiff, oggzmerge, oggzrip, oggz-comment, oggz-scan, oggz-sort  and
84 oggz-validate.
85
86 liboggz supports the flexibility afforded by the Ogg file format while
87 presenting the following API niceties:
88
89         * Full API documentation
90
91         * Comprehensive test suite of read, write and seeking behavior.
92         The entire test suite can be run under valgrind if available.
93
94         * Developed and tested on GNU/Linux, Darwin/MacOSX, Win32 and
95         Symbian OS. May work on other Unix-like systems via GNU autoconf.
96         For Win32: nmake Makefiles, Visual Studio .NET 2003 solution files
97         and Visual C++ 6.0 workspace files are provided in the source
98         distribution.
99
100         * Strict adherence to the formatting requirements of Ogg bitstreams,
101         to ensure that only valid bitstreams are generated; writes can fail
102         if you try to write illegally structured packets.
103
104         * A simple, callback based open/read/close or open/write/close
105         interface to raw Ogg files.
106
107         * Writing automatically interleaves with packet queuing, and provides
108         callback based notification when this queue is empty
109
110         * A customisable seeking abstraction for seeking on multitrack Ogg
111         data. Seeking works easily and reliably on multitrack and multi-codec
112         streams, and can transparently parse Theora, Speex, Vorbis, FLAC,
113         CMML, CELT and Ogg Skeleton headers without requiring linking to those
114         libraries. This allows efficient use on servers and other devices
115         that need to parse and seek within Ogg files, but do not need to do
116         a full media decode.
117
118 Full documentation of the liboggz API, customization and installation,
119 and mux and demux examples can be read online at:
120
121     http://www.annodex.net/software/liboggz/html/
122
123 Tools
124 -----
125
126 The Oggz source tarball also contains the following command-line tools,
127 which are useful for debugging and testing Ogg bitstreams:
128
129         * oggzinfo: Display information about one or more Ogg files and
130         their bitstreams.
131
132         * oggzdump: Hexdump packets of an Ogg file, or revert an Ogg file
133         from such a hexdump.
134
135         * oggzdiff: Hexdump the packets of two Ogg files and output
136         differences.
137
138         * oggzmerge: Merge Ogg files together, interleaving pages in order
139         of presentation time.
140
141         * oggzrip: Extract one or more logical bitstreams from an Ogg file.
142
143         * oggz-comment: List or edit comments in an Ogg file.
144
145         * oggz-scan: Scan an Ogg file and output characteristic landmarks.
146
147         * oggz-sort: Sort the pages of an Ogg file in order of presentation
148         time.
149
150         * oggz-validate: Validate the Ogg framing of one or more files.
151
152 License
153 -------
154
155 Oggz is Free Software, available under a BSD style license.
156
157 More information is available online at the Oggz homepage:
158
159     http://www.annodex.net/software/liboggz/index.html
160
161 enjoy :)
162
163 --
164 Conrad Parker, Annodex Association
165 http://www.annodex.net/