From 8d733a00f00c98f5627a977150c85bfa9bed6d28 Mon Sep 17 00:00:00 2001 From: Sjoerd Mullender Date: Fri, 29 Jan 1993 12:01:00 +0000 Subject: added kludge for buggy soundfiler from SGI; when reading 0 frames, just set file pointer correctly instead of returning the complete file. --- Lib/aifc.py | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/Lib/aifc.py b/Lib/aifc.py index 0849bd7..706bba8 100644 --- a/Lib/aifc.py +++ b/Lib/aifc.py @@ -379,7 +379,16 @@ class Aifc_read(): self._comm_chunk_read = 0 while formlength > 0: self._ssnd_seek_needed = 1 - chunk = Chunk().init(self._file) + #DEBUG: SGI's soundfiler has a bug. There should + # be no need to check for EOF here. + try: + chunk = Chunk().init(self._file) + except EOFError: + if formlength == 8: + print 'Warning: FORM chunk size too large' + formlength = 0 + break + raise EOFError # different error, raise exception formlength = formlength - 8 - chunk.chunksize if chunk.chunksize & 1: formlength = formlength - 1 @@ -495,6 +504,8 @@ class Aifc_read(): if pos: self._ssnd_chunk.setpos(pos + 8) self._ssnd_seek_needed = 0 + if nframes == 0: + return '' size = nframes * self._nchannels * self._sampwidth if self._decomp: if self._comptype in ('ULAW', 'ALAW'): -- cgit v0.12