From: Serhiy Storchaka Date: Sat, 12 Oct 2013 15:21:33 +0000 (+0300) Subject: Issue #19131: The aifc module now correctly reads and writes sampwidth of X-Git-Tag: v3.4.0a4~166^2 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=4b5325963bd249479cb6b1abe8ffaa75ac5bb80a;p=thirdparty%2FPython%2Fcpython.git Issue #19131: The aifc module now correctly reads and writes sampwidth of compressed streams. --- diff --git a/Lib/aifc.py b/Lib/aifc.py index 3270047b1135..86a5edc8c987 100644 --- a/Lib/aifc.py +++ b/Lib/aifc.py @@ -457,15 +457,13 @@ class Aifc_read: if self._comptype != b'NONE': if self._comptype == b'G722': self._convert = self._adpcm2lin - self._framesize = self._framesize // 4 elif self._comptype in (b'ulaw', b'ULAW'): self._convert = self._ulaw2lin - self._framesize = self._framesize // 2 elif self._comptype in (b'alaw', b'ALAW'): self._convert = self._alaw2lin - self._framesize = self._framesize // 2 else: raise Error('unsupported compression type') + self._sampwidth = 2 else: self._comptype = b'NONE' self._compname = b'not compressed' @@ -787,7 +785,10 @@ class Aifc_write: _write_short(self._file, self._nchannels) self._nframes_pos = self._file.tell() _write_ulong(self._file, self._nframes) - _write_short(self._file, self._sampwidth * 8) + if self._comptype in (b'ULAW', b'ulaw', b'ALAW', b'alaw', b'G722'): + _write_short(self._file, 8) + else: + _write_short(self._file, self._sampwidth * 8) _write_float(self._file, self._framerate) if self._aifc: self._file.write(self._comptype) diff --git a/Misc/NEWS b/Misc/NEWS index 56fd0a560fc1..08ebbbd987d0 100644 --- a/Misc/NEWS +++ b/Misc/NEWS @@ -76,6 +76,9 @@ Core and Builtins Library ------- +- Issue #19131: The aifc module now correctly reads and writes sampwidth of + compressed streams. + - Issue #19158: a rare race in BoundedSemaphore could allow .release() too often.