summaryrefslogtreecommitdiff
path: root/CHANGES
blob: b30327e63fdcfb485db47d27a5cf428c4eb3714f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
libtheora 1.1.1 (2009 October 1)

 - Fix problems with MSVC inline assembly
 - Add the missing encoder_disabled.c to the distribution
 - build updates: autogen.sh should work better after switching systems
   and the MSVC project now defaults to the dynamic runtime library
 - Namespace some variables to avoid conflicts on wince.

libtheora 1.1.0 (2009 September 24)

 - Fix various small issues with the example and telemetry code
 - Fix handing a zero-byte packet as the first frame
 - Documentation cleanup
 - Two minor build fixes

libtheora 1.1beta3 (2009 August 22)

 - Rate control fixes to smooth quality
 - MSVC build now exports all of the 1.0 api
 - Assorted small bug fixes

libtheora 1.1beta2 (2009 August 12)

 - Fix a rate control problem with difficult input
 - Build fixes for OpenBSD and Apple Xcode
 - Examples now all use the 1.0 api
 - TH_ENCCTL_SET_SPLEVEL works again
 - Various bug fixes and source tree rearrangement

libtheora 1.1beta1 (2009 August 5)

 - Support for two-pass encoding
 - Performance optimization of both encoder and decoder
 - Encoder supports dynamic adjustment of quality and 
   bitrate targets
 - Encoder is generally more configurable, and all
   rate control modes perform better
 - Encoder now accepts 4:2:2 and 4:4:4 chroma sampling
 - Decoder telemetry output shows quantization choice
   and a breakdown of bitrate usage in the frame
 - MSVC assembly optimizations up to date and functional

libtheora 1.1alpha2 (2009 May 26)

 - Reduce lambda for small quantizers.
 - New encoder fDCT does better on smooth gradients
 - Use SATD for mode decisions (1-2% bitrate reduction)
 - Assembly rewrite for new features and general speed up
 - Share code between the encoder and decoder for performance
 - Fix 4:2:2 decoding and telemetry
 - MSVC project files updated, but assembly is disabled.
 - New configure option --disable-spec to work around toolchain
   detection failures.
 - Limit symbol exports on MacOS X.
 - Port remaining unit tests from the 1.0 release.

libtheora 1.1alpha1 (2009 March 27)

 - Encoder rewrite with much improved vbr quality/bitrate and
   better tracking of the target rate in cbr mode.
 - MSVC project files do not work in this release.

libtheora 1.0 (2008 November 3)

 - Merge x86 assembly for forward DCT from Thusnelda branch.
 - Update 32 bit MMX with loop filter fix.
 - Check for an uninitialized state before dereferencing in propagating
   decode calls.
 - Remove all TH_DEBUG statements.
 - Rename the bitpacker source files copied from libogg to avoid
   confusing simple build systems using both libraries.
 - Declare bitfield entries to be explicitly signed for Solaris cc.
 - Set quantization parameters to default values when an empty buffer is
   passed with TH_ENCCTL_SET_QUANT_PARAMS.
 - Split encoder and decoder tests depending on configure settings.
 - Return lstylex.sty to the distribution.
 - Disable inline assembly on gcc versions prior to 3.1.
 - Remove extern references for OC_*_QUANT_MIN.
 - Make various data tables static const so they can be read-only.
 - Remove ENCCTL codes from the old encoder API.
 - Implement TH_ENCCTL_SET_KEYFRAME_FREQUENCY_FORCE ctl.
 - Fix segfault when exactly one of the width or height is not a multiple
   of 16, but the other is.
 - Compute the correct vertical offset for chroma.
 - cpuid assembly fix for MSVC.
 - Add VS2008 project files.
 - Build updates for 64-bit platforms, Mingw32, VS and XCode.
 - Do not clobber the cropping rectangle.
 - Declare ourselves 1.0final to pkg-config to sort after beta releases.
 - Fix the scons build to include asm in libtheoradec/enc.

libtheora 1.0beta3 (2008 April 16)

 - Build new libtheoradec and libtheoraenc libraries
   supporting the new API from theora-exp. This API should
   not be considered stable yet.
 - Change granule_frame() to return an index as documented.
   This is a change of behaviour from 1.0beta1.
 - Document that granule_time() returns the end of the
   presentation interval.
 - Use a custom copy of the libogg bitpacker in the decoder
   to avoid function call overhead.
 - MMX code improved and ported to MSVC.
 - Fix a problem with the MMX code on SELinux.
 - Fix a problem with decoder quantizer initialization.
 - Fix a page queue problem with png2theora.
 - Improved robustness.
 - Updated VS2005 project files.
 - Dropped build support for Microsoft VS2003.
 - Dropped build support for the unreleased libogg2.
 - Added the specification to the autotools build.
 - Specification corrections.

libtheora 1.0beta2 (2007 October 12)

 - Fix a crash bug on char-is-unsigned architectures (PowerPC)
 - Fix a buffer sizing issue that caused rare encoder crashes
 - Fix a buffer alignment issue
 - Build fixes for MingW32, MSVC
 - Improved format documentation.

libtheora 1.0beta1 (2007 September 22)

 - Granulepos scheme modified to match other codecs. This bumps
   the bitstream revision to 3.2.1. Bitstreams marked 3.2.0 are
   handled correctly by this decoder. Older decoders will show
   a one frame sync error in the less noticable direction.

libtheora 1.0alpha8 (2007 September 18)

 - Switch to new spec compliant decoder from theora-exp branch.
   Written by Dr. Timothy Terriberry.
 - Add support to the encoder for using quantization settings
   provided by the application.
 - more assembly optimizations

libtheora 1.0alpha7 (2006 June 20)

 - Enable mmx assembly by default
 - Avoid some relocations that caused problems on SELinux
 - Other build fixes
 - time testing mode (-f) for the dump_video example

libtheora 1.0alpha6 (2006 May 30)

 * Merge theora-mmx simd acceleration (x86_32 and x86_64)
 * Major RTP payload specification update
 * Minor format specification updates
 * Fix some spurious calls to free() instead of _ogg_free()
 * Fix invalid array indexing in PixelLineSearch()
 * Improve robustness against invalid input
 * General warning cleanup
 * The offset_y member now means what every application thought it meant
   (offset from the top). This will mean some old files (those with a 
   non-centered image created with a buggy encoder) will display differently.

libtheora 1.0alpha5 (2005 August 20)

 * Fixed bitrate management bugs that caused popping and encode
   errors
 * Fixed a crash problem with the theora_state internals not
   being intialized properly.
 * new utility function:
   - theora_granule_shift()
 * dump_video example now makes YUV4MPEG files by default, so
   the results can be fed back to encoder_example and similar
   tools. The old behavior is restored through the '-r' switch.
 * ./configure now prints a summary
 * simple unit test of the comment api under 'make check'
 * misc code cleanup, warning and leak fixes

libtheora 1.0alpha4 (2004 December 15)

 * first draft of the Theora I Format Specification
 * API documentation generated from theora.h with Doxygen
 * fix a double-update bug in the motion analysis
 * apply the loop filter before filling motion vector border 
   in the reference frame
 * new utility functions:
   - theora_packet_isheader(),
   - theora_packet_iskeyframe()
   - theora_granule_frame()
 * optional support for building without floating point
 * optional support for building without encode support 
 * various build and packaging fixes
 * pkg-config support
 * SymbianOS build support

libtheora 1.0alpha3 (2004 March 20)

 UPDATE: on 2004 July 1 the Theora I bitstream format was frozen. Files
 produced by the libtheora 1.0alpha3 reference encoder will always be
 decodable by the Theora I spec.

 * Bitstream info header FORMAT CHANGES:
   - move the granulepos shift field to maintain byte alignment longer.
   - reserve 5 additional bits for subsampling and interlace flags.
 * Bitstream setup header FORMAT CHANGES:
   - support for a range of interpolated quant matricies.
   - include the in-loop block filter coeff.
 * Bitsteam data packet FORMAT CHANGES:
   - Reserve a bit for per-block Q index selection.
   - Flip the coded image orientation for compatibility with VP3.
     This allows lossless transcoding of VP3 content, but files
     encoded with earlier theora releases would play upside down.
 * example VP3 lossless transcoder
 * optional support for libogg2
 * timing improvements in the example player
 * packaging and build system updates and fixes

libtheora 1.0alpha2 (2003 June 9)

 * bitstream FORMAT CHANGES:
   - store the quant tables in a third setup header for
     future encoder flexibility
   - store the huffman tables in the third setup header
   - add a field for marking the colorspace to the info header
   - add crop parameters for non-multiple-of-16 frame sizes
   - add a second vorbiscomment-style metadata header
 * API changes to handle multiple headers with a single 
   theora_decode_header() call, like libvorbis
 * code cleanup and minor fixes
 * new dump_video code example/utility
 * experimental win32 code examples

libtheora 1.0alpha1 (2002 September 25)

 * First release of the theora reference implementation
 * Port of the newly opened VP3 code to the Ogg container
 * Rewrite of the code for portability and to use the libogg bitpacker