r71839 - in /branches/upstream/libaudio-scan-perl/current: Changes MANIFEST META.yml lib/Audio/Scan.pm src/aac.c src/mp3.c t/aac.t t/aac/truncated.aac

jawnsy-guest at users.alioth.debian.org jawnsy-guest at users.alioth.debian.org
Tue Mar 22 02:27:13 UTC 2011


Author: jawnsy-guest
Date: Tue Mar 22 02:27:07 2011
New Revision: 71839

URL: http://svn.debian.org/wsvn/pkg-perl/?sc=1&rev=71839
Log:
[svn-upgrade] new version libaudio-scan-perl (0.87+dfsg)

Added:
    branches/upstream/libaudio-scan-perl/current/t/aac/truncated.aac   (with props)
Modified:
    branches/upstream/libaudio-scan-perl/current/Changes
    branches/upstream/libaudio-scan-perl/current/MANIFEST
    branches/upstream/libaudio-scan-perl/current/META.yml
    branches/upstream/libaudio-scan-perl/current/lib/Audio/Scan.pm
    branches/upstream/libaudio-scan-perl/current/src/aac.c
    branches/upstream/libaudio-scan-perl/current/src/mp3.c
    branches/upstream/libaudio-scan-perl/current/t/aac.t

Modified: branches/upstream/libaudio-scan-perl/current/Changes
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libaudio-scan-perl/current/Changes?rev=71839&op=diff
==============================================================================
--- branches/upstream/libaudio-scan-perl/current/Changes (original)
+++ branches/upstream/libaudio-scan-perl/current/Changes Tue Mar 22 02:27:07 2011
@@ -1,4 +1,9 @@
 Revision history for Audio::Scan
+
+0.87    2011-03-21
+        - AAC: Bug 16874, Fixed infinite loop that could occur when reading a truncated
+          ADTS stream.
+        - Win32: Fixed MSVC compilation error in mp3.c.
 
 0.86    2011-03-18
         - MP3: Require first 3 frames to have matching samplerate and channel values.

Modified: branches/upstream/libaudio-scan-perl/current/MANIFEST
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libaudio-scan-perl/current/MANIFEST?rev=71839&op=diff
==============================================================================
--- branches/upstream/libaudio-scan-perl/current/MANIFEST (original)
+++ branches/upstream/libaudio-scan-perl/current/MANIFEST Tue Mar 22 02:27:07 2011
@@ -67,6 +67,7 @@
 t/aac/leading-junk.aac
 t/aac/mono.aac
 t/aac/stereo.aac
+t/aac/truncated.aac
 t/aiff/aiff-id3.aif
 t/aiff/aiff-id3-bad-chunksize.aif
 t/aiff/aiff32.aiff

Modified: branches/upstream/libaudio-scan-perl/current/META.yml
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libaudio-scan-perl/current/META.yml?rev=71839&op=diff
==============================================================================
--- branches/upstream/libaudio-scan-perl/current/META.yml (original)
+++ branches/upstream/libaudio-scan-perl/current/META.yml Tue Mar 22 02:27:07 2011
@@ -1,6 +1,6 @@
 --- #YAML:1.0
 name:               Audio-Scan
-version:            0.86
+version:            0.87
 abstract:           Fast C metadata and tag reader for all common audio file formats
 author:
     - Andy Grundman <andy at slimdevices.com>
@@ -16,7 +16,7 @@
     directory:
         - t
         - inc
-generated_by:       ExtUtils::MakeMaker version 6.54
+generated_by:       ExtUtils::MakeMaker version 6.56
 meta-spec:
     url:      http://module-build.sourceforge.net/META-spec-v1.4.html
     version:  1.4

Modified: branches/upstream/libaudio-scan-perl/current/lib/Audio/Scan.pm
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libaudio-scan-perl/current/lib/Audio/Scan.pm?rev=71839&op=diff
==============================================================================
--- branches/upstream/libaudio-scan-perl/current/lib/Audio/Scan.pm (original)
+++ branches/upstream/libaudio-scan-perl/current/lib/Audio/Scan.pm Tue Mar 22 02:27:07 2011
@@ -2,7 +2,7 @@
 
 use strict;
 
-our $VERSION = '0.86';
+our $VERSION = '0.87';
 
 require XSLoader;
 XSLoader::load('Audio::Scan', $VERSION);

Modified: branches/upstream/libaudio-scan-perl/current/src/aac.c
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libaudio-scan-perl/current/src/aac.c?rev=71839&op=diff
==============================================================================
--- branches/upstream/libaudio-scan-perl/current/src/aac.c (original)
+++ branches/upstream/libaudio-scan-perl/current/src/aac.c Tue Mar 22 02:27:07 2011
@@ -148,6 +148,10 @@
 
     buffer_consume(buf, frame_length);
     audio_size -= frame_length;
+    
+    // Avoid looping again if we have a partial frame header
+    if (audio_size < 6)
+      break;
   }
   
   frames_per_sec = (float)samplerate/1024.0f;

Modified: branches/upstream/libaudio-scan-perl/current/src/mp3.c
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libaudio-scan-perl/current/src/mp3.c?rev=71839&op=diff
==============================================================================
--- branches/upstream/libaudio-scan-perl/current/src/mp3.c (original)
+++ branches/upstream/libaudio-scan-perl/current/src/mp3.c Tue Mar 22 02:27:07 2011
@@ -624,7 +624,7 @@
       goto out;
     }
 
-    if ( !_decode_mp3_frame( buffer_ptr(mp3->buf), &frame ) ) {
+    if ( !_decode_mp3_frame( bptr, &frame ) ) {
       struct mp3frame frame2, frame3;
       
       // Need the whole frame to consider it valid
@@ -635,7 +635,7 @@
         && (
           !_check_buf(mp3->infile, mp3->buf, frame.frame_size + 4, MP3_BLOCK_SIZE)
           || (
-               !_decode_mp3_frame( buffer_ptr(mp3->buf) + frame.frame_size, &frame2 )
+               !_decode_mp3_frame( bptr + frame.frame_size, &frame2 )
             && frame.samplerate == frame2.samplerate
             && frame.channels == frame2.channels
           )
@@ -646,7 +646,7 @@
         && (
           !_check_buf(mp3->infile, mp3->buf, frame.frame_size + frame2.frame_size + 4, MP3_BLOCK_SIZE)
           || (
-               !_decode_mp3_frame( buffer_ptr(mp3->buf) + frame.frame_size + frame2.frame_size, &frame3 )
+               !_decode_mp3_frame( bptr + frame.frame_size + frame2.frame_size, &frame3 )
             && frame.samplerate == frame3.samplerate
             && frame.channels == frame3.channels
           )

Modified: branches/upstream/libaudio-scan-perl/current/t/aac.t
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libaudio-scan-perl/current/t/aac.t?rev=71839&op=diff
==============================================================================
--- branches/upstream/libaudio-scan-perl/current/t/aac.t (original)
+++ branches/upstream/libaudio-scan-perl/current/t/aac.t Tue Mar 22 02:27:07 2011
@@ -2,7 +2,7 @@
 
 use File::Spec::Functions;
 use FindBin ();
-use Test::More tests => 31;
+use Test::More tests => 36;
 
 use Audio::Scan;
 
@@ -14,12 +14,12 @@
     
     is( $info->{audio_offset}, 0, 'Audio offset ok' );
     is( $info->{audio_size}, 2053, 'Audio size ok' );
-    is( $info->{bitrate}, 35000, 'Bitrate ok' );
+    is( $info->{bitrate}, 37000, 'Bitrate ok' );
     is( $info->{channels}, 1, 'Channels ok' );
     is( $info->{file_size}, 2053, 'File size ok' );
     is( $info->{profile}, 'LC', 'Profile ok' );
     is( $info->{samplerate}, 44100, 'Samplerate ok' );
-    is( $info->{song_length_ms}, 464, 'Duration ok' );
+    is( $info->{song_length_ms}, 441, 'Duration ok' );
 }
 
 # Stereo ADTS file
@@ -29,11 +29,11 @@
     my $info = $s->{info};
     
     is( $info->{audio_offset}, 0, 'Stereo ADTS audio offset ok' );
-    is( $info->{bitrate}, 58000, 'Stereo ADTS bitrate ok' );
+    is( $info->{bitrate}, 59000, 'Stereo ADTS bitrate ok' );
     is( $info->{channels}, 2, 'Stereo ADTS channels ok' );
     is( $info->{profile}, 'LC', 'Stereo ADTS profile ok' );
     is( $info->{samplerate}, 44100, 'Stereo ADTS samplerate ok' );
-    is( $info->{song_length_ms}, 1393, 'Stereo ADTS duration ok' );
+    is( $info->{song_length_ms}, 1369, 'Stereo ADTS duration ok' );
 }
 
 # ADTS with ID3v2 tags
@@ -46,11 +46,11 @@
     is( $info->{audio_offset}, 2182, 'ID3v2 audio offset ok' );
     is( $info->{audio_size}, 2602, 'ID3v2 audio_size ok' );
     is( $info->{audio_md5}, 'f84210edefebcd92792fd1b3d21860d5', 'ID3v2 audio_md5 ok' );
-    is( $info->{bitrate}, 128000, 'ID3v2 bitrate ok' );
+    is( $info->{bitrate}, 149000, 'ID3v2 bitrate ok' );
     is( $info->{channels}, 2, 'ID3v2 channels ok' );
     is( $info->{profile}, 'LC', 'ID3v2 profile ok' );
     is( $info->{samplerate}, 44100, 'ID3v2 samplerate ok' );
-    is( $info->{song_length_ms}, 162, 'ID3v2 duration ok' );
+    is( $info->{song_length_ms}, 139, 'ID3v2 duration ok' );
     is( $info->{id3_version}, 'ID3v2.3.0', 'ID3v2 version ok' );
     
     is( $tags->{TPE1}, 'Calibration Level', 'ID3v2 TPE1 ok' );
@@ -65,12 +65,25 @@
     my $info = $s->{info};
     
     is( $info->{audio_offset}, 638, 'Leading junk offset ok' );
-    is( $info->{bitrate}, 64000, 'Leading junk bitrate ok' );
+    is( $info->{bitrate}, 128000, 'Leading junk bitrate ok' );
     is( $info->{channels}, 2, 'Leading junk channels ok' );
     is( $info->{profile}, 'LC', 'Leading junk profile ok' );
     is( $info->{samplerate}, 44100, 'Leading junk samplerate ok' );
 }
 
+# Bug 16874, truncated with a partial header
+{
+    my $s = Audio::Scan->scan( _f('truncated.aac') );
+    
+    my $info = $s->{info};
+    
+    is( $info->{audio_offset}, 26, 'Truncated offset ok' );
+    is( $info->{bitrate}, 52000, 'Truncated bitrate ok' );
+    is( $info->{channels}, 2, 'Truncated channels ok' );
+    is( $info->{profile}, 'LC', 'Truncated profile ok' );
+    is( $info->{samplerate}, 44100, 'Truncated samplerate ok' );
+}
+
 sub _f {
     return catfile( $FindBin::Bin, 'aac', shift );
 }

Added: branches/upstream/libaudio-scan-perl/current/t/aac/truncated.aac
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libaudio-scan-perl/current/t/aac/truncated.aac?rev=71839&op=file
==============================================================================
Binary file - no diff available.

Propchange: branches/upstream/libaudio-scan-perl/current/t/aac/truncated.aac
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream




More information about the Pkg-perl-cvs-commits mailing list