summaryrefslogtreecommitdiffstats
path: root/Lib
diff options
context:
space:
mode:
authorJesus Cea <jcea@jcea.es>2012-11-17 02:43:15 (GMT)
committerJesus Cea <jcea@jcea.es>2012-11-17 02:43:15 (GMT)
commita4e37037a2257b54c83829f67e4e381309509dc1 (patch)
tree6f454d56e546962ba20be3ede7a033d5523c40f7 /Lib
parent9d2e7e010ea4c6d045575e7f59035b59fac416b2 (diff)
parentfc1a63620eddbd08299bcb5bb96b6b29187d83e8 (diff)
downloadcpython-a4e37037a2257b54c83829f67e4e381309509dc1.zip
cpython-a4e37037a2257b54c83829f67e4e381309509dc1.tar.gz
cpython-a4e37037a2257b54c83829f67e4e381309509dc1.tar.bz2
MERGE: Closes #16461: Wave library should be able to deal with 4GB wav files, and sample rate of 44100 Hz.
Diffstat (limited to 'Lib')
-rw-r--r--Lib/wave.py12
1 files changed, 6 insertions, 6 deletions
diff --git a/Lib/wave.py b/Lib/wave.py
index 2877137..54f0302 100644
--- a/Lib/wave.py
+++ b/Lib/wave.py
@@ -261,9 +261,9 @@ class Wave_read:
#
def _read_fmt_chunk(self, chunk):
- wFormatTag, self._nchannels, self._framerate, dwAvgBytesPerSec, wBlockAlign = struct.unpack_from('<hhllh', chunk.read(14))
+ wFormatTag, self._nchannels, self._framerate, dwAvgBytesPerSec, wBlockAlign = struct.unpack_from('<HHLLH', chunk.read(14))
if wFormatTag == WAVE_FORMAT_PCM:
- sampwidth = struct.unpack_from('<h', chunk.read(2))[0]
+ sampwidth = struct.unpack_from('<H', chunk.read(2))[0]
self._sampwidth = (sampwidth + 7) // 8
else:
raise Error('unknown format: %r' % (wFormatTag,))
@@ -466,14 +466,14 @@ class Wave_write:
self._nframes = initlength // (self._nchannels * self._sampwidth)
self._datalength = self._nframes * self._nchannels * self._sampwidth
self._form_length_pos = self._file.tell()
- self._file.write(struct.pack('<l4s4slhhllhh4s',
+ self._file.write(struct.pack('<L4s4sLHHLLHH4s',
36 + self._datalength, b'WAVE', b'fmt ', 16,
WAVE_FORMAT_PCM, self._nchannels, self._framerate,
self._nchannels * self._framerate * self._sampwidth,
self._nchannels * self._sampwidth,
self._sampwidth * 8, b'data'))
self._data_length_pos = self._file.tell()
- self._file.write(struct.pack('<l', self._datalength))
+ self._file.write(struct.pack('<L', self._datalength))
self._headerwritten = True
def _patchheader(self):
@@ -482,9 +482,9 @@ class Wave_write:
return
curpos = self._file.tell()
self._file.seek(self._form_length_pos, 0)
- self._file.write(struct.pack('<l', 36 + self._datawritten))
+ self._file.write(struct.pack('<L', 36 + self._datawritten))
self._file.seek(self._data_length_pos, 0)
- self._file.write(struct.pack('<l', self._datawritten))
+ self._file.write(struct.pack('<L', self._datawritten))
self._file.seek(curpos, 0)
self._datalength = self._datawritten