[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