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