From: Sjoerd Mullender Date: Fri, 29 Jan 1993 12:01:00 +0000 (+0000) Subject: added kludge for buggy soundfiler from SGI; when reading 0 frames, X-Git-Tag: v0.9.9~129 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=8d733a00f00c98f5627a977150c85bfa9bed6d28;p=thirdparty%2FPython%2Fcpython.git added kludge for buggy soundfiler from SGI; when reading 0 frames, just set file pointer correctly instead of returning the complete file. --- diff --git a/Lib/aifc.py b/Lib/aifc.py index 0849bd735920..706bba824251 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'):