diff --git a/Lib/sunau.py b/Lib/sunau.py --- a/Lib/sunau.py +++ b/Lib/sunau.py @@ -352,7 +352,7 @@ 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 @@ 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 new file mode 100644 index 0000000000000000000000000000000000000000..0bb230418a3844b81637c7b4b1ea3f18f3bfe2d6 GIT binary patch literal 19866 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