annotate src/libmad-0.15.1b/CHANGES @ 169:223a55898ab9 tip default

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