CHANGES
上传用户:xjjlds
上传日期:2015-12-05
资源大小:22823k
文件大小:11k
源码类别:

多媒体编程

开发平台:

Visual C++

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