diff options
author | Serhiy Storchaka <storchaka@gmail.com> | 2013-11-10 19:02:53 (GMT) |
---|---|---|
committer | Serhiy Storchaka <storchaka@gmail.com> | 2013-11-10 19:02:53 (GMT) |
commit | 81895f8ee327474b5a07a12e957b786510227b29 (patch) | |
tree | 7b2e5049c97e2f9f2521fce809b071f0a7980bc8 | |
parent | a49ccb205fa2f25bf3d09d8f99476942ec3d66fd (diff) | |
download | cpython-81895f8ee327474b5a07a12e957b786510227b29.zip cpython-81895f8ee327474b5a07a12e957b786510227b29.tar.gz cpython-81895f8ee327474b5a07a12e957b786510227b29.tar.bz2 |
Issue #19261: Added support for writing 24-bit samples in the sunau module.
-rw-r--r-- | Doc/library/sunau.rst | 3 | ||||
-rw-r--r-- | Lib/sunau.py | 5 | ||||
-rw-r--r-- | Lib/test/audiodata/pluck-pcm24.au | bin | 0 -> 19866 bytes | |||
-rw-r--r-- | Lib/test/test_sunau.py | 28 | ||||
-rw-r--r-- | Misc/NEWS | 2 |
5 files changed, 37 insertions, 1 deletions
diff --git a/Doc/library/sunau.rst b/Doc/library/sunau.rst index eae710d..6455ed9 100644 --- a/Doc/library/sunau.rst +++ b/Doc/library/sunau.rst @@ -212,6 +212,9 @@ AU_write objects, as returned by :func:`.open` above, have the following methods Set the sample width (in bytes.) + .. versionchanged:: 3.4 + Added support for 24-bit samples. + .. method:: AU_write.setframerate(n) diff --git a/Lib/sunau.py b/Lib/sunau.py index 5761390..1880a01 100644 --- a/Lib/sunau.py +++ b/Lib/sunau.py @@ -352,7 +352,7 @@ class Au_write: def setsampwidth(self, sampwidth): if self._nframeswritten: raise Error('cannot change parameters after starting to write') - if sampwidth not in (1, 2, 4): + if sampwidth not in (1, 2, 3, 4): raise Error('bad sample width') self._sampwidth = sampwidth @@ -465,6 +465,9 @@ class Au_write: elif self._sampwidth == 2: encoding = AUDIO_FILE_ENCODING_LINEAR_16 self._framesize = 2 + elif self._sampwidth == 3: + encoding = AUDIO_FILE_ENCODING_LINEAR_24 + self._framesize = 3 elif self._sampwidth == 4: encoding = AUDIO_FILE_ENCODING_LINEAR_32 self._framesize = 4 diff --git a/Lib/test/audiodata/pluck-pcm24.au b/Lib/test/audiodata/pluck-pcm24.au Binary files differnew file mode 100644 index 0000000..0bb2304 --- /dev/null +++ b/Lib/test/audiodata/pluck-pcm24.au diff --git a/Lib/test/test_sunau.py b/Lib/test/test_sunau.py index 767314f..81acd96 100644 --- a/Lib/test/test_sunau.py +++ b/Lib/test/test_sunau.py @@ -47,6 +47,34 @@ class SunauPCM16Test(audiotests.AudioWriteTests, """) +class SunauPCM24Test(audiotests.AudioWriteTests, + audiotests.AudioTestsWithSourceFile, + unittest.TestCase): + module = sunau + sndfilename = 'pluck-pcm24.au' + sndfilenframes = 3307 + nchannels = 2 + sampwidth = 3 + framerate = 11025 + nframes = 48 + comptype = 'NONE' + compname = 'not compressed' + frames = bytes.fromhex("""\ + 022D65FFEB9D 4B5A0F00FA54 3113C304EE2B 80DCD6084303 \ + CBDEC006B261 48A99803F2F8 BFE82401B07D 036BFBFE7B5D \ + B85756FA3EC9 B4B055F3502B 299830EBCB62 1A5CA7E6D99A \ + EDFA3EE491BD C625EBE27884 0E05A9E0B6CF EF2929E02922 \ + 5758D8E27067 FB3557E83E16 1377BFEF8402 D82C5BF7272A \ + 978F16FB7745 F5F865FC1013 086635FB9C4E DF30FCFB40EE \ + 117FE0FA3438 3EE6B8FB5AC3 BC77A3FCB2F4 66D6DAFF5F32 \ + CF13B9041275 431D69097A8C C1BB600EC74E 5120B912A2BA \ + EEDF641754C0 8207001664B7 7FFFFF14453F 8000001294E6 \ + 499C1B0EB3B2 52B73E0DBCA0 EFB2B20F5FD8 CE3CDB0FBE12 \ + E4B49C0CEA2D 6344A80A5A7C 08C8FE0A1FFE 2BB9860B0A0E \ + 51486F0E44E1 8BCC64113B05 B6F4EC0EEB36 4413170A5B48 \ + """) + + class SunauPCM32Test(audiotests.AudioWriteTests, audiotests.AudioTestsWithSourceFile, unittest.TestCase): @@ -34,6 +34,8 @@ Core and Builtins Library ------- +- Issue #19261: Added support for writing 24-bit samples in the sunau module. + - Issue #1097797: Added CP273 encoding, used on IBM mainframes in Germany and Austria. Mapping provided by Michael Bierenfeld. |