Mercurial > hg > sv-dependency-builds
comparison src/libmad-0.15.1b/CHANGES @ 0:c7265573341e
Import initial set of sources
author | Chris Cannam |
---|---|
date | Mon, 18 Mar 2013 14:12:14 +0000 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:c7265573341e |
---|---|
1 | |
2 libmad - MPEG audio decoder library | |
3 Copyright (C) 2000-2004 Underbit Technologies, Inc. | |
4 | |
5 $Id: CHANGES,v 1.14 2004/02/17 02:02:03 rob Exp $ | |
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 |