diff options
author | Guido van Rossum <guido@python.org> | 1999-02-05 22:32:11 (GMT) |
---|---|---|
committer | Guido van Rossum <guido@python.org> | 1999-02-05 22:32:11 (GMT) |
commit | d42e46ead5d5f069a4fd11a24ee328d75ea31fb9 (patch) | |
tree | 178fd40ffe79b5c0dde9dcec3a93d5f9b4b4bfe7 /Lib/wave.py | |
parent | ebb9c922cb1f1b72fe929cfba223e42df7492a1c (diff) | |
download | cpython-d42e46ead5d5f069a4fd11a24ee328d75ea31fb9.zip cpython-d42e46ead5d5f069a4fd11a24ee328d75ea31fb9.tar.gz cpython-d42e46ead5d5f069a4fd11a24ee328d75ea31fb9.tar.bz2 |
Ehm, when we don't need to byteswap the data, don't go through an
array object at all.
Diffstat (limited to 'Lib/wave.py')
-rw-r--r-- | Lib/wave.py | 10 |
1 files changed, 4 insertions, 6 deletions
diff --git a/Lib/wave.py b/Lib/wave.py index c34830a..1353b51 100644 --- a/Lib/wave.py +++ b/Lib/wave.py @@ -305,7 +305,7 @@ class Wave_read: self._data_seek_needed = 0 if nframes == 0: return '' - if self._sampwidth > 1: + if self._sampwidth > 1 and big_endian: # unfortunately the fromfile() method does not take # something that only looks like a file object, so # we have to reach into the innards of the chunk object @@ -316,8 +316,7 @@ class Wave_read: nitems = (self._data_chunk.chunksize - self._data_chunk.size_read) / self._sampwidth data.fromfile(self._data_chunk.file, nitems) self._data_chunk.size_read = self._data_chunk.size_read + nitems * self._sampwidth - if big_endian: - data.byteswap() + data.byteswap() data = data.tostring() else: data = self._data_chunk.read(nframes * self._framesize) @@ -487,11 +486,10 @@ class Wave_write: nframes = len(data) / (self._sampwidth * self._nchannels) if self._convert: data = self._convert(data) - if self._sampwidth > 1: + if self._sampwidth > 1 and big_endian: import array data = array.array(_array_fmts[self._sampwidth], data) - if big_endian: - data.byteswap() + data.byteswap() data.tofile(self._file) self._datawritten = self._datawritten + len(data) * self._sampwidth else: |