Prefer xz to bzip2 for distribution.
[theora.git] / CHANGES
1 libtheora 1.1.2 (unreleased snapshot)
2
3  - Fix Huffman table decoding with OC_HUFF_SLUSH is set to 0
4  - Fix a frame size bug in player_example
5  - Add support for passing a buffer the size of the picture
6    region, rather than a full padded frame to th_encode_ycbcr_in()
7    as was possible with the legacy pre-1.0 API.
8  - 4:4:4 support in player_example using software yuv->rgb
9  - Better rgb->yuv conversion in png2theora
10  - Clean up warnings and local variables
11  - Build and documentation fixes
12
13 libtheora 1.1.1 (2009 October 1)
14
15  - Fix problems with MSVC inline assembly
16  - Add the missing encoder_disabled.c to the distribution
17  - build updates: autogen.sh should work better after switching systems
18    and the MSVC project now defaults to the dynamic runtime library
19  - Namespace some variables to avoid conflicts on wince.
20
21 libtheora 1.1.0 (2009 September 24)
22
23  - Fix various small issues with the example and telemetry code
24  - Fix handing a zero-byte packet as the first frame
25  - Documentation cleanup
26  - Two minor build fixes
27
28 libtheora 1.1beta3 (2009 August 22)
29
30  - Rate control fixes to smooth quality
31  - MSVC build now exports all of the 1.0 api
32  - Assorted small bug fixes
33
34 libtheora 1.1beta2 (2009 August 12)
35
36  - Fix a rate control problem with difficult input
37  - Build fixes for OpenBSD and Apple Xcode
38  - Examples now all use the 1.0 api
39  - TH_ENCCTL_SET_SPLEVEL works again
40  - Various bug fixes and source tree rearrangement
41
42 libtheora 1.1beta1 (2009 August 5)
43
44  - Support for two-pass encoding
45  - Performance optimization of both encoder and decoder
46  - Encoder supports dynamic adjustment of quality and 
47    bitrate targets
48  - Encoder is generally more configurable, and all
49    rate control modes perform better
50  - Encoder now accepts 4:2:2 and 4:4:4 chroma sampling
51  - Decoder telemetry output shows quantization choice
52    and a breakdown of bitrate usage in the frame
53  - MSVC assembly optimizations up to date and functional
54
55 libtheora 1.1alpha2 (2009 May 26)
56
57  - Reduce lambda for small quantizers.
58  - New encoder fDCT does better on smooth gradients
59  - Use SATD for mode decisions (1-2% bitrate reduction)
60  - Assembly rewrite for new features and general speed up
61  - Share code between the encoder and decoder for performance
62  - Fix 4:2:2 decoding and telemetry
63  - MSVC project files updated, but assembly is disabled.
64  - New configure option --disable-spec to work around toolchain
65    detection failures.
66  - Limit symbol exports on MacOS X.
67  - Port remaining unit tests from the 1.0 release.
68
69 libtheora 1.1alpha1 (2009 March 27)
70
71  - Encoder rewrite with much improved vbr quality/bitrate and
72    better tracking of the target rate in cbr mode.
73  - MSVC project files do not work in this release.
74
75 libtheora 1.0 (2008 November 3)
76
77  - Merge x86 assembly for forward DCT from Thusnelda branch.
78  - Update 32 bit MMX with loop filter fix.
79  - Check for an uninitialized state before dereferencing in propagating
80    decode calls.
81  - Remove all TH_DEBUG statements.
82  - Rename the bitpacker source files copied from libogg to avoid
83    confusing simple build systems using both libraries.
84  - Declare bitfield entries to be explicitly signed for Solaris cc.
85  - Set quantization parameters to default values when an empty buffer is
86    passed with TH_ENCCTL_SET_QUANT_PARAMS.
87  - Split encoder and decoder tests depending on configure settings.
88  - Return lstylex.sty to the distribution.
89  - Disable inline assembly on gcc versions prior to 3.1.
90  - Remove extern references for OC_*_QUANT_MIN.
91  - Make various data tables static const so they can be read-only.
92  - Remove ENCCTL codes from the old encoder API.
93  - Implement TH_ENCCTL_SET_KEYFRAME_FREQUENCY_FORCE ctl.
94  - Fix segfault when exactly one of the width or height is not a multiple
95    of 16, but the other is.
96  - Compute the correct vertical offset for chroma.
97  - cpuid assembly fix for MSVC.
98  - Add VS2008 project files.
99  - Build updates for 64-bit platforms, Mingw32, VS and XCode.
100  - Do not clobber the cropping rectangle.
101  - Declare ourselves 1.0final to pkg-config to sort after beta releases.
102  - Fix the scons build to include asm in libtheoradec/enc.
103
104 libtheora 1.0beta3 (2008 April 16)
105
106  - Build new libtheoradec and libtheoraenc libraries
107    supporting the new API from theora-exp. This API should
108    not be considered stable yet.
109  - Change granule_frame() to return an index as documented.
110    This is a change of behaviour from 1.0beta1.
111  - Document that granule_time() returns the end of the
112    presentation interval.
113  - Use a custom copy of the libogg bitpacker in the decoder
114    to avoid function call overhead.
115  - MMX code improved and ported to MSVC.
116  - Fix a problem with the MMX code on SELinux.
117  - Fix a problem with decoder quantizer initialization.
118  - Fix a page queue problem with png2theora.
119  - Improved robustness.
120  - Updated VS2005 project files.
121  - Dropped build support for Microsoft VS2003.
122  - Dropped build support for the unreleased libogg2.
123  - Added the specification to the autotools build.
124  - Specification corrections.
125
126 libtheora 1.0beta2 (2007 October 12)
127
128  - Fix a crash bug on char-is-unsigned architectures (PowerPC)
129  - Fix a buffer sizing issue that caused rare encoder crashes
130  - Fix a buffer alignment issue
131  - Build fixes for MingW32, MSVC
132  - Improved format documentation.
133
134 libtheora 1.0beta1 (2007 September 22)
135
136  - Granulepos scheme modified to match other codecs. This bumps
137    the bitstream revision to 3.2.1. Bitstreams marked 3.2.0 are
138    handled correctly by this decoder. Older decoders will show
139    a one frame sync error in the less noticeable direction.
140
141 libtheora 1.0alpha8 (2007 September 18)
142
143  - Switch to new spec compliant decoder from theora-exp branch.
144    Written by Dr. Timothy Terriberry.
145  - Add support to the encoder for using quantization settings
146    provided by the application.
147  - more assembly optimizations
148
149 libtheora 1.0alpha7 (2006 June 20)
150
151  - Enable mmx assembly by default
152  - Avoid some relocations that caused problems on SELinux
153  - Other build fixes
154  - time testing mode (-f) for the dump_video example
155
156 libtheora 1.0alpha6 (2006 May 30)
157
158  * Merge theora-mmx simd acceleration (x86_32 and x86_64)
159  * Major RTP payload specification update
160  * Minor format specification updates
161  * Fix some spurious calls to free() instead of _ogg_free()
162  * Fix invalid array indexing in PixelLineSearch()
163  * Improve robustness against invalid input
164  * General warning cleanup
165  * The offset_y member now means what every application thought it meant
166    (offset from the top). This will mean some old files (those with a 
167    non-centered image created with a buggy encoder) will display differently.
168
169 libtheora 1.0alpha5 (2005 August 20)
170
171  * Fixed bitrate management bugs that caused popping and encode
172    errors
173  * Fixed a crash problem with the theora_state internals not
174    being intialized properly.
175  * new utility function:
176    - theora_granule_shift()
177  * dump_video example now makes YUV4MPEG files by default, so
178    the results can be fed back to encoder_example and similar
179    tools. The old behavior is restored through the '-r' switch.
180  * ./configure now prints a summary
181  * simple unit test of the comment api under 'make check'
182  * misc code cleanup, warning and leak fixes
183
184 libtheora 1.0alpha4 (2004 December 15)
185
186  * first draft of the Theora I Format Specification
187  * API documentation generated from theora.h with Doxygen
188  * fix a double-update bug in the motion analysis
189  * apply the loop filter before filling motion vector border 
190    in the reference frame
191  * new utility functions:
192    - theora_packet_isheader(),
193    - theora_packet_iskeyframe()
194    - theora_granule_frame()
195  * optional support for building without floating point
196  * optional support for building without encode support 
197  * various build and packaging fixes
198  * pkg-config support
199  * SymbianOS build support
200
201 libtheora 1.0alpha3 (2004 March 20)
202
203  UPDATE: on 2004 July 1 the Theora I bitstream format was frozen. Files
204  produced by the libtheora 1.0alpha3 reference encoder will always be
205  decodable by the Theora I spec.
206
207  * Bitstream info header FORMAT CHANGES:
208    - move the granulepos shift field to maintain byte alignment longer.
209    - reserve 5 additional bits for subsampling and interlace flags.
210  * Bitstream setup header FORMAT CHANGES:
211    - support for a range of interpolated quant matricies.
212    - include the in-loop block filter coeff.
213  * Bitsteam data packet FORMAT CHANGES:
214    - Reserve a bit for per-block Q index selection.
215    - Flip the coded image orientation for compatibility with VP3.
216      This allows lossless transcoding of VP3 content, but files
217      encoded with earlier theora releases would play upside down.
218  * example VP3 lossless transcoder
219  * optional support for libogg2
220  * timing improvements in the example player
221  * packaging and build system updates and fixes
222
223 libtheora 1.0alpha2 (2003 June 9)
224
225  * bitstream FORMAT CHANGES:
226    - store the quant tables in a third setup header for
227      future encoder flexibility
228    - store the huffman tables in the third setup header
229    - add a field for marking the colorspace to the info header
230    - add crop parameters for non-multiple-of-16 frame sizes
231    - add a second vorbiscomment-style metadata header
232  * API changes to handle multiple headers with a single 
233    theora_decode_header() call, like libvorbis
234  * code cleanup and minor fixes
235  * new dump_video code example/utility
236  * experimental win32 code examples
237
238 libtheora 1.0alpha1 (2002 September 25)
239
240  * First release of the theora reference implementation
241  * Port of the newly opened VP3 code to the Ogg container
242  * Rewrite of the code for portability and to use the libogg bitpacker
243