[Python-modules-commits] r18500 - in packages/mutagen/trunk/debian/patches (3 files)

mithrandi-guest at users.alioth.debian.org mithrandi-guest at users.alioth.debian.org
Sun Sep 11 16:46:58 UTC 2011


    Date: Sunday, September 11, 2011 @ 16:46:57
  Author: mithrandi-guest
Revision: 18500

Import patches from NMU.

Added:
  packages/mutagen/trunk/debian/patches/mpeg-length-remove.diff
  packages/mutagen/trunk/debian/patches/mpeg-length.diff
Modified:
  packages/mutagen/trunk/debian/patches/series

Added: packages/mutagen/trunk/debian/patches/mpeg-length-remove.diff
===================================================================
--- packages/mutagen/trunk/debian/patches/mpeg-length-remove.diff	                        (rev 0)
+++ packages/mutagen/trunk/debian/patches/mpeg-length-remove.diff	2011-09-11 16:46:57 UTC (rev 18500)
@@ -0,0 +1,29 @@
+Description: Remove the code which should have prevented the use of impossible
+ lengths by performing the 'bitrate/file size' check. This was never used
+ because the args are switched, plus the calculation is wrong as the result
+ is 1/64 of the real length.
+From: http://code.google.com/p/mutagen/issues/detail?id=93#c5
+Bug: http://code.google.com/p/mutagen/issues/detail?id=93
+Bug-Debian: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=637061
+---
+ mutagen/mp3.py |    9 ---------
+ 1 file changed, 9 deletions(-)
+
+--- mutagen-1.19.orig/mutagen/mp3.py
++++ mutagen-1.19/mutagen/mp3.py
+@@ -204,15 +204,6 @@ class MPEGInfo(object):
+                 bytes = struct.unpack('>I', data[xing + 12:xing + 16])[0]
+                 self.bitrate = int((bytes * 8) // self.length)
+ 
+-        # If the bitrate * the length is nowhere near the file
+-        # length, recalculate using the bitrate and file length.
+-        # Don't do this for very small files.
+-        fileobj.seek(2, 0)
+-        size = fileobj.tell()
+-        expected = (self.bitrate / 8) * self.length
+-        if not (size / 2 < expected < size * 2) and size > 2**16:
+-            self.length = size / float(self.bitrate * 8)
+-
+     def pprint(self):
+         s = "MPEG %s layer %d, %d bps, %s Hz, %.2f seconds" % (
+             self.version, self.layer, self.bitrate, self.sample_rate,

Added: packages/mutagen/trunk/debian/patches/mpeg-length.diff
===================================================================
--- packages/mutagen/trunk/debian/patches/mpeg-length.diff	                        (rev 0)
+++ packages/mutagen/trunk/debian/patches/mpeg-length.diff	2011-09-11 16:46:57 UTC (rev 18500)
@@ -0,0 +1,60 @@
+Description: Fix CBR length calculation, it used the rounded frame_length
+ including the current frame's padding.
+From: http://code.google.com/p/mutagen/issues/detail?id=93#c4
+Bug: http://code.google.com/p/mutagen/issues/detail?id=93
+Bug-Debian: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=637061
+---
+ mutagen/mp3.py    |   11 +++++------
+ tests/test_mp3.py |    8 ++++----
+ 2 files changed, 9 insertions(+), 10 deletions(-)
+
+--- mutagen-1.19.orig/mutagen/mp3.py
++++ mutagen-1.19/mutagen/mp3.py
+@@ -151,15 +151,16 @@ class MPEGInfo(object):
+         self.sample_rate = self.__RATES[self.version][sample_rate]
+ 
+         if self.layer == 1:
+-            frame_length = (12 * self.bitrate / self.sample_rate + padding) * 4
++            padding *= 4
+             frame_size = 384
+         elif self.version >= 2 and self.layer == 3:
+-            frame_length = 72 * self.bitrate / self.sample_rate + padding
+             frame_size = 576
+         else:
+-            frame_length = 144 * self.bitrate / self.sample_rate + padding
+             frame_size = 1152
+ 
++        frame_length = frame_size / 8 * \
++            self.bitrate / self.sample_rate + padding
++
+         if check_second:
+             possible = frame_1 + frame_length
+             if possible > len(data) + 4:
+@@ -168,9 +169,7 @@ class MPEGInfo(object):
+             if frame_data & 0xFFE0 != 0xFFE0:
+                 raise HeaderNotFoundError("can't sync to second MPEG frame")
+ 
+-        frame_count = real_size / float(frame_length)
+-        samples = frame_size * frame_count
+-        self.length = samples / self.sample_rate
++        self.length = 8 * real_size / float(self.bitrate)
+ 
+         # Try to find/parse the Xing header, which trumps the above length
+         # and bitrate calculation.
+--- mutagen-1.19.orig/tests/test_mp3.py
++++ mutagen-1.19/tests/test_mp3.py
+@@ -36,10 +36,10 @@ class TMP3(TestCase):
+         self.failUnlessEqual(self.mp3_2.tags, ID3(self.silence_nov2))
+ 
+     def test_length(self):
+-        self.failUnlessEqual(int(round(self.mp3.info.length)), 4)
+-        self.failUnlessEqual(int(round(self.mp3_2.info.length)), 4)
+-        self.failUnlessEqual(int(round(self.mp3_3.info.length)), 4)
+-        self.failUnlessEqual(int(round(self.mp3_4.info.length)), 4)
++        self.assertAlmostEquals(self.mp3.info.length, 3.77, 2)
++        self.assertAlmostEquals(self.mp3_2.info.length, 3.77, 2)
++        self.assertAlmostEquals(self.mp3_3.info.length, 3.77, 2)
++        self.assertAlmostEquals(self.mp3_4.info.length, 3.84, 2)
+     def test_version(self):
+         self.failUnlessEqual(self.mp3.info.version, 1)
+         self.failUnlessEqual(self.mp3_2.info.version, 1)

Modified: packages/mutagen/trunk/debian/patches/series
===================================================================
--- packages/mutagen/trunk/debian/patches/series	2011-09-11 15:38:44 UTC (rev 18499)
+++ packages/mutagen/trunk/debian/patches/series	2011-09-11 16:46:57 UTC (rev 18500)
@@ -1,2 +1,4 @@
 remove-hashbang.diff
 manpage-hyphens.diff
+mpeg-length.diff
+mpeg-length-remove.diff




More information about the Python-modules-commits mailing list