Fix issue 2245. aifc now skips any chunk type it doesn't actually
process instead of throwing errors for anything not in an explicit skip list. This is per this spec: http://www.cnpbagwell.com/aiff-c.txt. Spec reference and test sound file provided by Santiago Peresón, fix based on patch by Hiroaki Kawai.
This commit is contained in:
parent
a1b91d944b
commit
25b4add5b0
|
@ -144,9 +144,6 @@ class Error(Exception):
|
|||
|
||||
_AIFC_version = 0xA2805140L # Version 1 of AIFF-C
|
||||
|
||||
_skiplist = 'COMT', 'INST', 'MIDI', 'AESD', \
|
||||
'APPL', 'NAME', 'AUTH', '(c) ', 'ANNO'
|
||||
|
||||
def _read_long(file):
|
||||
try:
|
||||
return struct.unpack('>l', file.read(4))[0]
|
||||
|
@ -314,10 +311,6 @@ class Aifc_read:
|
|||
self._version = _read_ulong(chunk)
|
||||
elif chunkname == 'MARK':
|
||||
self._readmark(chunk)
|
||||
elif chunkname in _skiplist:
|
||||
pass
|
||||
else:
|
||||
raise Error, 'unrecognized chunk type '+chunk.chunkname
|
||||
chunk.skip()
|
||||
if not self._comm_chunk_read or not self._ssnd_chunk:
|
||||
raise Error, 'COMM chunk and/or SSND chunk missing'
|
||||
|
|
Binary file not shown.
|
@ -0,0 +1,24 @@
|
|||
from test.test_support import findfile, run_unittest
|
||||
import unittest
|
||||
|
||||
import aifc
|
||||
|
||||
|
||||
class AIFCTest(unittest.TestCase):
|
||||
|
||||
def setUp(self):
|
||||
self.sndfilepath = findfile('Sine-1000Hz-300ms.aif')
|
||||
|
||||
def test_skipunknown(self):
|
||||
#Issue 2245
|
||||
#This file contains chunk types aifc doesn't recognize.
|
||||
f = aifc.open(self.sndfilepath)
|
||||
f.close()
|
||||
|
||||
|
||||
def test_main():
|
||||
run_unittest(AIFCTest)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
unittest.main()
|
|
@ -11,7 +11,6 @@ class TestUntestedModules(unittest.TestCase):
|
|||
with warnings.catch_warnings():
|
||||
warnings.simplefilter("ignore")
|
||||
import CGIHTTPServer
|
||||
import aifc
|
||||
import audiodev
|
||||
import bdb
|
||||
import cgitb
|
||||
|
|
|
@ -370,6 +370,7 @@ Tamito Kajiyama
|
|||
Peter van Kampen
|
||||
Jacob Kaplan-Moss
|
||||
Lou Kates
|
||||
Hiroaki Kawai
|
||||
Sebastien Keim
|
||||
Robert Kern
|
||||
Randall Kern
|
||||
|
@ -541,6 +542,7 @@ Randy Pausch
|
|||
Samuele Pedroni
|
||||
Marcel van der Peijl
|
||||
Steven Pemberton
|
||||
Santiago Peresón
|
||||
Mark Perrego
|
||||
Trevor Perrin
|
||||
Tim Peters
|
||||
|
|
Loading…
Reference in New Issue