mirror of
https://github.com/python/cpython.git
synced 2025-08-22 17:55:18 +00:00
bpo-32056: Improve exceptions in aifc, wave and sunau. (GH-5951)
This commit is contained in:
parent
bc300ce205
commit
134cb01cda
7 changed files with 150 additions and 7 deletions
14
Lib/wave.py
14
Lib/wave.py
|
@ -253,12 +253,22 @@ class Wave_read:
|
|||
#
|
||||
|
||||
def _read_fmt_chunk(self, chunk):
|
||||
wFormatTag, self._nchannels, self._framerate, dwAvgBytesPerSec, wBlockAlign = struct.unpack_from('<HHLLH', chunk.read(14))
|
||||
try:
|
||||
wFormatTag, self._nchannels, self._framerate, dwAvgBytesPerSec, wBlockAlign = struct.unpack_from('<HHLLH', chunk.read(14))
|
||||
except struct.error:
|
||||
raise EOFError from None
|
||||
if wFormatTag == WAVE_FORMAT_PCM:
|
||||
sampwidth = struct.unpack_from('<H', chunk.read(2))[0]
|
||||
try:
|
||||
sampwidth = struct.unpack_from('<H', chunk.read(2))[0]
|
||||
except struct.error:
|
||||
raise EOFError from None
|
||||
self._sampwidth = (sampwidth + 7) // 8
|
||||
if not self._sampwidth:
|
||||
raise Error('bad sample width')
|
||||
else:
|
||||
raise Error('unknown format: %r' % (wFormatTag,))
|
||||
if not self._nchannels:
|
||||
raise Error('bad # of channels')
|
||||
self._framesize = self._nchannels * self._sampwidth
|
||||
self._comptype = 'NONE'
|
||||
self._compname = 'not compressed'
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue