annotate src/libmad-0.15.1b/CHANGES @ 23:619f715526df sv_v2.1

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