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