Revision history for Audio::Scan

0.56    2009-12-21 08:15:00
        - MP3: Bug 15197, fixed bitrate/duration calculation of MPEG-2 Layer 3 files.
        - MP3: RT 52932, fixed crash if seek fails while looking for APE tag.

0.55    2009-11-26 17:00:00
        - ID3: Bug 15196, fixed reading multiple TCON genre values.

0.54    2009-11-25 15:30:00
        - FLAC: Fixed bug when seeking in a file containing artwork.
        - FLAC: Save memory by not buffering padding data.

0.53    2009-11-22 17:20:00
        - FLAC: Avoid wasting memory when reading picture block when
          AUDIO_SCAN_NO_ARTWORK is set.
        - Fixed Win32 compile issue.

0.52    2009-11-20 23:30:00
        - Bug 15115, ignore ID3 LINK frame data in latin1 list type.
        - libid3tag: Avoid wasting memory when AUDIO_SCAN_NO_ARTWORK is set and we're
          reading an APIC frame.
        - MP4: Refactored tag parser to avoid wasting memory on COVR tags when not
          reading artwork.
        - Various minor buffer optimizations to slightly reduce memory usage.

0.51    2009-11-16 15:10:00
        - Fixed compilation error under Windows.

0.50    2009-11-12 22:00:00
        - MP4: API change, avg_bitrate is now returned in the top-level info hash, not
          on a per-track basis.  This fixes some issues where tracks do not have an
          average bitrate value.
        - MP4: Read correct bits_per_sample value for secondary SLS track.

0.49    2009-11-09 09:00:00
        - Bug 15074, Fixed ASF GUID struct issues on some platforms.

0.48    2009-11-02 15:40:00
        - Fixed bug where AUDIO_SCAN_NO_ARTWORK didn't work properly when set to 0.

0.47    2009-11-02 14:00:00
        - If the AUDIO_SCAN_NO_ARTWORK environment variable is set, binary artwork tag
          data is instead replaced by the length of the artwork data.  This can save
          memory when scanning a lot of files with potentially large artwork.
        - Changed method on non-Windows platforms for determining file size to use 
          stat instead of seek/tell.

0.46    2009-10-29 14:00:00
        - ID3: Change format of id3_version info field to list all versions of
          tags found in a file.
        - FLAC: Don't parse ID3 tags when using find_frame, in filehandle mode this
          caused a crash.
        - FLAC: Bug 14913, fixed error when calculating bitrate for large files.
        - WAV: Bug 14946, strip nulls from the end of LIST INFO tags.
        - MP4: Fixed error in avg_bitrate calculation for ALAC files.

0.45    2009-10-26 15:00:00
        - Bug 8380, Read multiple ID3 tags when more than one is found
          in a file, such as ID3v1 + ID3v2.
        - Fixed MP3 find_frame when looking for audio_offset + 1 and
          a Xing TOC is present.  Xing TOC is ignored for this special
          case.
        - Fixed FLAC find_frame when file has ID3v2 tags.
        - Bug 14883, added audio_size info to WAV and AIFF.
        - Fixed crash on invalid FLAC picture block.
        - Fixed bug in Ogg bitrate calculation.
        - Fixed tests to work on old Perls without Encode.
        - Max buffer size got accidentally reset to 10M in 0.44.
        - Added utility methods: get_types, extensions_for, type_for (Frank Terbeck)

0.44    2009-10-16 22:00:00
        - Bug 14788, ASF: Fixed crasher when reading multiple integer tags.
        - Changed Newx/Newxz calls to use older New/Newz API to support older Perls.

0.43    2009-10-16 15:00:00
        - Increase max buffer size yet again (to 20MB), this time someone had 16MB
          of artwork!
        - libid3tag: Don't re-generate frametype.c, compat.c, and genre.dat as this
          can fail if gperf is not available.

0.42    2009-10-13 10:45:00
        - Bug 14728, fixed issue in libid3tag where default ID3v2.3 UTF-16 byte
          order was set to big-endian instead of little-endian when no BOM
          was present.  Several other tag readers also default to little-endian
          so this appears to be the de-facto standard, even though the v2.3 spec
          says all Unicode text must have a BOM.
        - Bug 14705, Fixed libid3tag to return frames parsed so far when it runs into
          an invalid frame.
        - Bug 14658, MP4: fixed signed char issue on some PPC platforms.

0.41    2009-10-12 10:30:00
        - FLAC: Re-factored FLAC code to remove libFLAC dependency.
        - FLAC: API change: more accurate seeking via find_frame, which
          now takes an offset in milliseconds instead of bytes and seeks
          to the correct audio frame containing the desired sample.
        - FLAC: Added support for reading ID3v2 tags.
        - AIFF: Fixed error when reading ID3 chunks with a bad chunk size.
        - MP4: Fixed parsing of files with short TRKN fields.
        - MP4: Parse audio object type from esds box.
        - Vorbis: Added file_size to info.

0.40    2009-10-03 16:00:00
        - Bug 14462, fixed reading of WAV files with 18-byte fmt chunks.
        - WAV: Fixed reading of files with data chunks having the wrong size.
        - MP4: Fixed parsing of tags with duplicate keys containing integer
          values.
        
0.39    2009-10-01 16:00:00
        - Bug 14241, fixed Win32 crash when using find_frame on FLAC files.
        - Bug 14476, fixed crash when very large artwork is present (now supports
          tags up to 10M).
        - MP4: Fixed handling of cover art when multiple covers are present. Currently
          only the first cover image is returned.
        - Added is_supported($path) method. Can be used to determine if a given
          file can be scanned. (Frank Terbeck)

0.38    2009-09-22 13:00:00
        - Fixed crasher bug in average bitrate calculation logic.

0.37    2009-09-18 23:40:00
        - Minor fix to avoid an error being printed during bitrate calculation.

0.36    2009-09-18 23:30:00
        - Bug 13449, changed the way MP3 average bitrate calculation works. Read
          bitrate of all frames starting from the beginning of the file, bail out
          early if the file appears to be CBR.
        - Fixed a few bugs in the buffering code.

0.35    2009-09-17 15:00:00
        - WAV: added support for tags in an "ID3 " chunk.

0.34    2009-09-12 00:15:00
        - Bug 13995, fixed divide by zero error when trying to detect MP3 average
          bitrate on a file with no valid frames.

0.33    2009-09-11 22:15:00
        - Fixed Xing bitrate calculation for MPEG 2.0 files.

0.32    2009-09-09 14:00:00
        - Bug 13921, added support for ID3v2.3 experimental XSOP frame.
        - PPC is dead, changed Snow Leopard hint to only compile 32/64-bit x86.

0.31    2009-08-29 13:30:00
        - Allow static linking to a libFLAC that was built without
          Ogg support.
        - Change Snow Leopard hint to use 10.5 SDK and minimum version.

0.30    2009-08-27 00:15:00
        - Bug 8563, fixed parsing of MP4 sample rate.
        - Bug 13486, fixed parsing of MP4 files with multiple values for
          a single key.
        - Added Snow Leopard 64-bit universal binary support.

0.29    2009-08-07 16:00:00
        - Bug 13198, really fixed bad FLAC bitrate calculation on some
          files under Windows.

0.28    2009-08-06 19:00:00
        - Bug 13198, Changed the method for determining FLAC bitrate.

0.27    2009-07-26 23:00:00
        - Added support for Musepack SV8 files.
        - Refactored Musepack code to use buffer API, fixes
          crashes on big-endian platforms.
        - Added support for reading Musepack track gain and album gain.

0.26    2009-07-25 17:00:00
        - Added support for ID3v2.4 RVA2 peak values.
        - Fixed build on Solaris again.

0.25    2009-07-10 22:00:00
        - Bug 9942, fixed APE check when file does not have an ID3v1 tag, and
          fixed parsing of APE tags with multiple items separated by a null byte.
        - Bug 12615, improved Ogg Vorbis parser to do a better job finding the
          audio offset.
        - Bug 12668, fixed build on OpenSolaris (Sun's CC doesn't support -Wall).

0.24    2009-07-09 22:45:00
        - Bug 12691, some people have *really* large embedded artwork, allow buffer
          to allocate up to 5M at a time (was 1M).

0.23    2009-06-26 10:00:00
        - Added support for ADTS files with leading junk before first audio frame.

0.22    2009-06-18 12:00:00
        - Improved accuracy of MP3 find_frame when Xing TOC is present.
        - Fixed MP3 bug where Xing parser was not reading enough data.

0.21    2009-06-17 17:30:00
        - Refactored MP3 code to use more robust buffer API.
        - Bug 12409, fixed crash when scanning MP3 file with null bytes before
          initial audio frame.

0.20    2009-06-16 15:00:00
        - Bug 12168, fixed Vorbis calculation of bitrate and duration in certain
          files.
        - Bug 12326, fixed bug in scanning MP4 meta box.
        - Bug 12152, added support for APEv1 tags.
        - Fixed some APE test failures that happened on some platforms.

0.19    2009-06-15 15:35:00
        - MP4: find_frame support.
        - MP4: Added leading_mdat flag for MP4 files where mdat precedes
          moov.
        - MP4: Handle invalid data sizes in ilst box.
        - Changed FLAC parser to return CUESHEET_BLOCK for cuesheet metadata
          block so it doesn't conflict with user-added CUESHEET tag.

0.18    2009-06-05 11:45:00
        - Added support for reading ID3v2 tags from ADTS files.

0.17    2009-06-05 09:45:00
        - MPEG-4 ADTS support.
        - Fixed Makefile.PL to set local include dirs before FLAC include
          dirs. (Philippe Kehl)

0.16    2009-06-04 15:45:00
        - Fixed parsing of MPEG-4 files where mdat occurs before moov.
        - Bug 12250, Added handling for invalid field lengths in WAV LIST INFO
          chunks.
        - Bug 12242, (libid3tag) Fixed broken parsing of ID3v2.2 PIC frames.

0.15    2009-06-02 16:30:00
        - Bug 12224, (libid3tag) Added support for broken iTunes v2.4 lengths that
          are not sync-safe.
        - Bug 12212, Fixed infinite loop during MP3 bitrate calculation if tag size
          is very large compared to the audio size.

0.14    2009-05-21 14:45:00
        - MPEG-4 support.
        - Bug 12082: Fixed reading of APE files with header version <= 3.97.
        - Fixed test failure on some Linux platforms due to rounding error.

0.13    2009-04-24 16:00:00
        - Musepack support.
        - Monkey's Audio Codec (APE) support.
        - AIFF support.

0.12    2009-04-23 12:10:00
        - Fixed bug in WAV duration calculation.
        - Fixed seek-related bug caused by passing a PerlIO to libid3tag.

0.11    2009-04-22 16:20:00
        - Renamed FLAC CRC function to fix --with-flac-static build.

0.10    2009-04-22 16:10:00
        - WAV support.
        - FLAC: Support for find_frame().

0.09    2009-04-19 18:00:00
        - ASF: Disabled index parsing.  This data isn't useful and just adds
          overhead.  Also, it does not compile on Windows.
        - Fixed Win32 compile issues.

0.08    2009-04-18 16:35:00
        - MP3: Support for find_frame().
        - MP3: Added support for RVA/RVAD frame.

0.07    2009-04-17 12:35:00
        - Added find_frame_fh( $type => $fh, $offset ) method.
          See docs for details.
        - Added $info->{lossless} for WMA Lossless.

0.06    2009-04-15 23:15:00
        - Added scan_fh( $type => $fh ) method to scan a filehandle.
        - Don't build FLAC support with < libFLAC 1.1.3.
        - --with-flac-static flag for statically-linking libFLAC.

0.05    2009-04-13 11:20:00
        - ASF: Fixed bug with empty script command names.
        - ASF: Support Extended Content Encryption.

0.04    2009-04-12 16:10:00
        - ASF: Support for Content Encryption, Extended Content
          Encryption, Script Command, and Digital Signature objects.
        - ASF: Fixed handling of multiple WM/Picture tags.

0.03    2009-04-11 14:30:00
        - Fixed big-endian GUID issues with ASF.
        - (libid3tag) Updated to latest config.guess.

0.02    2009-04-10 17:15:00
        - ASF (WMA/WMV) parsing support.
        - Improved directory structure.
        - Added build instructions for Win32.
        - Skip FLAC tests if FLAC support was not built.
        - Don't try and build Universal Binary on PPC Macs.
        - Fixed #define MIN for platforms that don't have it.

0.01    2009-04-03 11:00:00
        - Initial release.

