diff options
author | Sean Bartell <wingedtachikoma@gmail.com> | 2011-06-25 21:32:25 -0400 |
---|---|---|
committer | Nils Wallménius <nils@rockbox.org> | 2012-04-25 22:13:20 +0200 |
commit | f40bfc9267b13b54e6379dfe7539447662879d24 (patch) | |
tree | 9b20069d5e62809ff434061ad730096836f916f2 /lib/rbcodec/codecs/libmad/CHANGES | |
parent | a0009907de7a0107d49040d8a180f140e2eff299 (diff) | |
download | rockbox-f40bfc9267b13b54e6379dfe7539447662879d24.tar.gz rockbox-f40bfc9267b13b54e6379dfe7539447662879d24.zip |
Add codecs to librbcodec.
Change-Id: Id7f4717d51ed02d67cb9f9cb3c0ada4a81843f97
Reviewed-on: http://gerrit.rockbox.org/137
Reviewed-by: Nils Wallménius <nils@rockbox.org>
Tested-by: Nils Wallménius <nils@rockbox.org>
Diffstat (limited to 'lib/rbcodec/codecs/libmad/CHANGES')
-rw-r--r-- | lib/rbcodec/codecs/libmad/CHANGES | 338 |
1 files changed, 338 insertions, 0 deletions
diff --git a/lib/rbcodec/codecs/libmad/CHANGES b/lib/rbcodec/codecs/libmad/CHANGES new file mode 100644 index 0000000000..3fa57ef0cf --- /dev/null +++ b/lib/rbcodec/codecs/libmad/CHANGES | |||
@@ -0,0 +1,338 @@ | |||
1 | |||
2 | libmad - MPEG audio decoder library | ||
3 | Copyright (C) 2000-2004 Underbit Technologies, Inc. | ||
4 | |||
5 | $Id$ | ||
6 | |||
7 | =============================================================================== | ||
8 | |||
9 | Version 0.15.1 (beta) | ||
10 | |||
11 | * Updated to autoconf 2.59, automake 1.8.2, libtool 1.5.2. | ||
12 | |||
13 | * Replaced Layer III IMDCT routine with one based on a faster algorithm, | ||
14 | improving both speed and accuracy. | ||
15 | |||
16 | * Improved portability of the Huffman table initialization. | ||
17 | |||
18 | * Fixed a problem that could result in an assertion failure in layer3.c | ||
19 | due to an invalid Layer III free format bitrate. | ||
20 | |||
21 | * Improved the robustness of Layer II bitrate/mode combinations, and added | ||
22 | a new MAD_ERROR_BADMODE error enum. The allowability of low-bitrate | ||
23 | stereo streams is influenced by the --enable-strict-iso option to | ||
24 | `configure'. | ||
25 | |||
26 | Version 0.15.0 (beta) | ||
27 | |||
28 | * Updated to autoconf 2.57, automake 1.7.5, libtool 1.4.3. | ||
29 | |||
30 | * Added new mad_f_div() API routine. | ||
31 | |||
32 | * Added a 64th entry to the Layer I/Layer II scalefactor table, for better | ||
33 | compatibility with existing streams. The --enable-strict-iso option to | ||
34 | `configure' can be used to disable use of this entry. | ||
35 | |||
36 | * Modified the header decoding routine to allow the reserved emphasis | ||
37 | value, for better compatibility with existing streams. The | ||
38 | --enable-strict-iso option to `configure' can be used to restore the | ||
39 | previous behavior of reporting this value as an error. | ||
40 | |||
41 | * Added new MAD_EMPHASIS_RESERVED enumeration constant. | ||
42 | |||
43 | * Fixed a bug in the ARM version of mad_f_scale64() discovered by Andre | ||
44 | McCurdy. | ||
45 | |||
46 | * Rewrote PowerPC assembly for minor gains. | ||
47 | |||
48 | * Modified mad_timer_fraction() to avoid the possibility of division by | ||
49 | zero when 0 is passed as the second argument. | ||
50 | |||
51 | * Fixed a non-fatal problem caused by attempting to designate ancillary | ||
52 | bits in Layer III after a decoding error. | ||
53 | |||
54 | * Changed to build a shared library by default. | ||
55 | |||
56 | * Changed to use native Cygwin build by default; give --host=mingw32 to | ||
57 | `configure' to use MinGW (and avoid a dependency on the Cygwin DLL). | ||
58 | |||
59 | Version 0.14.2 (beta) | ||
60 | |||
61 | * Changed Cygwin builds to use MinGW; resulting Win32 executables no | ||
62 | longer have a dependency on Cygwin DLLs. | ||
63 | |||
64 | * Added a new mad_stream_errorstr() API function to libmad for retrieving | ||
65 | a string description of the current error condition. | ||
66 | |||
67 | Version 0.14.1 (beta) | ||
68 | |||
69 | * Updated config.guess and config.sub to latest upstream versions. | ||
70 | |||
71 | * Enabled libtool versioning rather than release numbering. | ||
72 | |||
73 | * Improved the documentation in minimad.c. | ||
74 | |||
75 | * Several other small fixes. | ||
76 | |||
77 | Version 0.14.0 (beta) | ||
78 | |||
79 | * Added a 64-bit FPM negation operation to improve performance of subband | ||
80 | synthesis on some platforms. | ||
81 | |||
82 | * Improved MSVC++ portability and added MSVC++ project files. | ||
83 | |||
84 | * Added rounding to Layer III requantization for slightly better accuracy. | ||
85 | |||
86 | Version 0.13.0 (beta) | ||
87 | |||
88 | * Ancillary data is now properly extracted from Layer III streams. | ||
89 | |||
90 | * Rewrote the Layer III joint stereo decoding routine to correct a major | ||
91 | MPEG-2 problem and a minor MPEG-1 problem decoding intensity stereo. | ||
92 | |||
93 | * Eliminated the dependency on sign-extending right shifts for Layer I and | ||
94 | Layer II. | ||
95 | |||
96 | * Renamed `private' field to `private_bits' for better C++ compatibility. | ||
97 | |||
98 | * Gratuitously renamed `sfreq' field to `samplerate' and | ||
99 | MAD_ERROR_BADSAMPLEFREQ constant to MAD_ERROR_BADSAMPLERATE. | ||
100 | |||
101 | * Added `samplerate' and `channels' fields to synth.pcm struct to allow | ||
102 | these to be different from the decoded frame, and for simpler access. | ||
103 | |||
104 | * Added new mad_stream_options() and mad_decoder_options() API entries for | ||
105 | special runtime decoding options. | ||
106 | |||
107 | * Added new MAD_OPTION_IGNORECRC and MAD_OPTION_HALFSAMPLERATE options. | ||
108 | |||
109 | * Added new MAD_FLAG_FREEFORMAT indicator flag. | ||
110 | |||
111 | * Fixed some bugs in the async decoder. | ||
112 | |||
113 | * Added a new mad_timer_multiply() API routine. | ||
114 | |||
115 | * Eliminated `+' from asm constraints under Intel for better compatibility | ||
116 | with some compilers. | ||
117 | |||
118 | * Fixed a PIC-related problem in imdct_l_arm.S. | ||
119 | |||
120 | * Eliminated a static variable to make libmad thread-safe. | ||
121 | |||
122 | Version 0.12.5 (beta) | ||
123 | |||
124 | * Modified Layer III requantization to occur during Huffman decoding for | ||
125 | significant performance gains. | ||
126 | |||
127 | * Optimized short block IMDCT by eliminating redundant calculations. | ||
128 | |||
129 | * Made several other Layer III performance improvements; added | ||
130 | ASO_INTERLEAVE1, ASO_INTERLEAVE2, and ASO_ZEROCHECK | ||
131 | architecture-specific options for best performance on various | ||
132 | architectures. | ||
133 | |||
134 | * Optimized synthesis DCT to store result values as soon as they are | ||
135 | calculated. | ||
136 | |||
137 | Version 0.12.4 (beta) | ||
138 | |||
139 | * New PowerPC fixed-point assembly courtesy of David Blythe. | ||
140 | |||
141 | * Reorganized fixed-point assembly routines for easier maintenance and | ||
142 | better performance. | ||
143 | |||
144 | * Improved performance of subband synthesis through better indexing and | ||
145 | fewer local variables. | ||
146 | |||
147 | * Added alias reduction for the lower two subbands of mixed short blocks, | ||
148 | per a report of ambiguity with ISO/IEC 11172-3 and for uniformity with | ||
149 | most other implementations. Also improved alias reduction performance | ||
150 | using multiply/accumulate. | ||
151 | |||
152 | * Added --enable-strict-iso option to `configure' to override best | ||
153 | accepted practices such as the alias reduction for mixed short blocks. | ||
154 | |||
155 | * Improved performance of Layer III IMDCT by using longer | ||
156 | multiply/accumulate runs where possible. | ||
157 | |||
158 | Version 0.12.3 (beta) | ||
159 | |||
160 | * Added MPEG 2.5 support. | ||
161 | |||
162 | * Added preliminary support for parameterizing the binary point position | ||
163 | in the fixed-point representation. | ||
164 | |||
165 | * Added multiply/accumulate optimization to the Layer III IMDCT for long | ||
166 | blocks. | ||
167 | |||
168 | * Fixed a bug in the handling of Layer III mixed_block_flag. | ||
169 | |||
170 | * Fixed a configure problem when multiple -O CFLAGS are present. | ||
171 | |||
172 | Version 0.12.2 (beta) | ||
173 | |||
174 | * Rearranged the synthesis polyphase filterbank memory vector for better | ||
175 | locality of reference, and rewrote mad_synth_frame() to accommodate, | ||
176 | resulting in improved performance. | ||
177 | |||
178 | * Discovered a combination of compiler optimization flags that further | ||
179 | improve performance. | ||
180 | |||
181 | * Changed some array references in layer3.c to pointer derefs. | ||
182 | |||
183 | Version 0.12.1 (beta) | ||
184 | |||
185 | * Resolved the intensity + MS joint stereo issue (a simple bug). | ||
186 | OPT_ISKLUGE is no longer considered to be a kluge. | ||
187 | |||
188 | * Fixed another, hopefully last main_data memory bug. | ||
189 | |||
190 | * Split part of struct mad_frame into struct mad_header for convenience | ||
191 | and size. | ||
192 | |||
193 | Version 0.12.0 (alpha) | ||
194 | |||
195 | * Changed the build environment to use automake and libtool. A libmad | ||
196 | shared library can now be built using the --enable-shared option to | ||
197 | `configure'. | ||
198 | |||
199 | * Added another callback to MAD's high-level decoder API after the frame | ||
200 | header has been read but before the frame's audio data is decoded. | ||
201 | |||
202 | * Streamlined header processing so that mad_frame_decode() can be called | ||
203 | with or without having already called mad_frame_header(). | ||
204 | |||
205 | * Fixed some other header reading miscellany, including CRC handling and | ||
206 | free bitrate detection, and frame length verification with free | ||
207 | bitrates. | ||
208 | |||
209 | * Fixed a problem with Layer III free bitrates > 320 kbps. The main_data | ||
210 | buffer size should now be large enough to handle any size frame, by | ||
211 | virtue of the maximum possible part2_3_length. | ||
212 | |||
213 | * Further developed the async API; arbitrary messages can now be passed to | ||
214 | the subsidiary decoding process. | ||
215 | |||
216 | * Streamlined timer.c and extended its interface. It now has support for | ||
217 | video frame/field lengths, including output support for drop-frame | ||
218 | encoding. | ||
219 | |||
220 | * Replaced many constant integer preprocessor defines with enums. | ||
221 | |||
222 | Version 0.11.4 (beta) | ||
223 | |||
224 | * Fixed free format bitrate discovery. | ||
225 | |||
226 | * Changed the timer implementation and extended its interface. | ||
227 | |||
228 | * Integrated Nicolas Pitre's patch for pre-shifting at compile-time and | ||
229 | for better multiply/accumulate code output. | ||
230 | |||
231 | * Applied Simon Burge's patch to imdct_l_arm.S for a.out compatibility. | ||
232 | |||
233 | * Added -mtune=strongarm for all ARM targets. | ||
234 | |||
235 | Version 0.11.3 (beta) | ||
236 | |||
237 | * Added new --enable-speed and --enable-accuracy options for `configure' | ||
238 | to automatically select appropriate SSO/ASO options, et al. | ||
239 | |||
240 | * Modified subband synthesis to use multiply/accumulate optimization (if | ||
241 | available) for better speed and/or accuracy. | ||
242 | |||
243 | * Incorporated Andre McCurdy's changes for further rounding optimizations | ||
244 | in the rest of his code. | ||
245 | |||
246 | Version 0.11.2 (beta) | ||
247 | |||
248 | * Incorporated Nicolas Pitre's ARM assembly and parameterized scaling | ||
249 | changes. | ||
250 | |||
251 | * Incorporated Andre McCurdy's ARM assembly optimization (used only if | ||
252 | --enable-aso is given to `configure' to enable architecture-specific | ||
253 | optimizations.) | ||
254 | |||
255 | * Reduced FPM_INTEL assembly to two instructions. | ||
256 | |||
257 | * Fixed accuracy problems with certain FPM modes in synth.c. | ||
258 | |||
259 | * Improved the accuracy of FPM_APPROX. | ||
260 | |||
261 | * Improved the accuracy of SSO. | ||
262 | |||
263 | * Improved sync discovery by checking for a sync word in the following | ||
264 | frame. | ||
265 | |||
266 | * Minor code clean-up. | ||
267 | |||
268 | * Added experimental rules for generating a libmad.so shared library. | ||
269 | |||
270 | Version 0.11.1 (beta) | ||
271 | |||
272 | * Moved libmad code into a separate directory. | ||
273 | |||
274 | * Changed SSO to be disabled by default, as output accuracy is deemed to | ||
275 | be more important than speed in the general case. | ||
276 | |||
277 | * Fixed a bug in Layer III sanity checking that could cause a crash on | ||
278 | certain random data input. | ||
279 | |||
280 | * Extended the Layer III requantization table from 8191 to 8206 as some | ||
281 | encoders are known to use these values, even though ISO/IEC 11172-3 | ||
282 | suggests the maximum should be 8191. | ||
283 | |||
284 | Version 0.11.0 (beta) | ||
285 | |||
286 | * Implemented MPEG-2 extension to Lower Sampling Frequencies. | ||
287 | |||
288 | * Improved Layer III performance by avoiding IMDCT calculation when all | ||
289 | input samples are zero. | ||
290 | |||
291 | * Significantly reduced size of Layer II tables. | ||
292 | |||
293 | Version 0.10.3 (beta) | ||
294 | |||
295 | * Improved SSO output quality. | ||
296 | |||
297 | * Made portable to cygwin. | ||
298 | |||
299 | * Localized memory references in III_huffdecode() for better performance. | ||
300 | |||
301 | Version 0.10.2 (beta) | ||
302 | |||
303 | * Rewrote Layer III long block 36-point IMDCT routine for better | ||
304 | performance. | ||
305 | |||
306 | * Improved subband synthesis fixed-point games somewhat. | ||
307 | |||
308 | Version 0.10.1 (beta) | ||
309 | |||
310 | * Added a subband synthesis optimization (SSO) which involves modifying | ||
311 | the fixed-point multiplication method during windowing. This produces | ||
312 | subtle differences in the output but improves performance greatly. | ||
313 | |||
314 | * Added I_STEREO and MS_STEREO flags to frame struct. | ||
315 | |||
316 | * Eliminated privately-used CRCFAILED flag. | ||
317 | |||
318 | * Fixed a bug where Layer III decoding could crash on some badly-formatted | ||
319 | (e.g. non-MPEG) bitstreams. | ||
320 | |||
321 | * Miscellaneous code clean-up. | ||
322 | |||
323 | Version 0.10.0 (beta) | ||
324 | |||
325 | * Added SPARC fixed-point math support. | ||
326 | |||
327 | * Revamped libmad API for better high- and low-level support. | ||
328 | |||
329 | * Documented more of the code. | ||
330 | |||
331 | * Changed sync semantics such that new stream buffers are assumed to be | ||
332 | sync-aligned. | ||
333 | |||
334 | * Changed Layer III to dynamically allocate static memory so as not to | ||
335 | waste it (about 6.4K) when only decoding Layer I or Layer II. | ||
336 | |||
337 | =============================================================================== | ||
338 | |||