r32481 - in /trunk/libogg-vorbis-header-pureperl-perl/debian: changelog patches/tracklength.patch
gregoa at users.alioth.debian.org
gregoa at users.alioth.debian.org
Wed Apr 1 15:40:23 UTC 2009
Author: gregoa
Date: Wed Apr 1 15:40:19 2009
New Revision: 32481
URL: http://svn.debian.org/wsvn/pkg-perl/?sc=1&rev=32481
Log:
try to improve patch
Modified:
trunk/libogg-vorbis-header-pureperl-perl/debian/changelog
trunk/libogg-vorbis-header-pureperl-perl/debian/patches/tracklength.patch
Modified: trunk/libogg-vorbis-header-pureperl-perl/debian/changelog
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libogg-vorbis-header-pureperl-perl/debian/changelog?rev=32481&op=diff
==============================================================================
--- trunk/libogg-vorbis-header-pureperl-perl/debian/changelog (original)
+++ trunk/libogg-vorbis-header-pureperl-perl/debian/changelog Wed Apr 1 15:40:19 2009
@@ -1,7 +1,8 @@
libogg-vorbis-header-pureperl-perl (1.0-2) UNRELEASED; urgency=low
- * Add patch tracklength.patch to deal with short ogg files
- (closes: #522075). Add debian/README.source and quilt framework.
+ * Add patch tracklength.patch to deal with short ogg files (closes: #522075)
+ and with ogg files where the magic header is further to the beginning of
+ the file. Add debian/README.source and quilt framework.
* Set Standards-Version to 3.8.1 (no changes).
* Add /me to Uploaders.
* debian/copyright: adjust years of packaging copyright.
Modified: trunk/libogg-vorbis-header-pureperl-perl/debian/patches/tracklength.patch
URL: http://svn.debian.org/wsvn/pkg-perl/trunk/libogg-vorbis-header-pureperl-perl/debian/patches/tracklength.patch?rev=32481&op=diff
==============================================================================
--- trunk/libogg-vorbis-header-pureperl-perl/debian/patches/tracklength.patch (original)
+++ trunk/libogg-vorbis-header-pureperl-perl/debian/patches/tracklength.patch Wed Apr 1 15:40:19 2009
@@ -1,10 +1,13 @@
Author: gregor herrmann <gregoa at debian.org>
-Description: if the file is shorter than blocksize_0, the seek/read returns an empty $buf later
+Description:
+ - if the file is shorter than blocksize_0, the seek/read returns an empty $buf later
+ - check for blocksize_0 is we are interested in blocksize_0
+ - seek (sic!) harder if OGGHEADERFLAG is not within $len
Bugs: #522075, CPAN RT#43693
--- a/PurePerl.pm
+++ b/PurePerl.pm
-@@ -421,6 +421,8 @@
+@@ -421,30 +421,38 @@
if (($data->{'filesize'} - $data->{'INFO'}{'offset'}) > ($data->{'INFO'}{'blocksize_0'} * 2)) {
$len = $data->{'INFO'}{'blocksize_0'} * 2;
@@ -13,3 +16,43 @@
} else {
$len = $data->{'INFO'}{'blocksize_0'};
}
+
+- if ($len == 0) {
++ if ($data->{'INFO'}{'blocksize_0'} == 0) {
+ print "Ogg::Vorbis::Header::PurePerl:\n";
+ warn "blocksize_0 is 0! Should be a power of 2! http://www.xiph.org/ogg/vorbis/doc/vorbis-spec-ref.html\n";
+ return;
+ }
+
+ seek($fh, -$len, 2);
+- read($fh, my $buf, $len);
+
++ my $buf = '';
+ my $foundHeader = 0;
++ my $c = 1;
+
+- for (my $i = 0; $i < $len; $i++) {
+-
+- last if length($buf) < 4;
+-
+- if (substr($buf, $i, 4) eq OGGHEADERFLAG) {
+- substr($buf, 0, ($i+4), '');
+- $foundHeader = 1;
+- last;
++ SEEK:
++ while ($foundHeader == 0 && read($fh, $buf, $len)) {
++ for (my $i = 0; $i < $len; $i++) {
++
++ last if length($buf) < 4;
++
++ if (substr($buf, $i, 4) eq OGGHEADERFLAG) {
++ substr($buf, 0, ($i+4), '');
++ $foundHeader = 1;
++ last SEEK;
++ }
+ }
++ $c++;
++ seek($fh, -$len*$c, 2);
+ }
+
+ unless ($foundHeader) {
More information about the Pkg-perl-cvs-commits
mailing list