diff --git a/wavinfo/rf64_parser.py b/wavinfo/rf64_parser.py index fd82b4e..d176695 100644 --- a/wavinfo/rf64_parser.py +++ b/wavinfo/rf64_parser.py @@ -1,6 +1,6 @@ import struct from collections import namedtuple -from . import riff_parser +from . import riff_parser RF64Context = namedtuple('RF64Context','sample_count bigchunk_table') @@ -8,33 +8,33 @@ RF64Context = namedtuple('RF64Context','sample_count bigchunk_table') def parse_rf64(stream): #print("starting parse_rf64") start = stream.tell() - assert( stream.read(4) == b'WAVE' ) + assert( stream.read(4) == b'WAVE' ) ds64_chunk = riff_parser.parse_chunk(stream) ds64_field_spec = "= ds64_fields_size ) - + #print("Read ds64 chunk: len()",len(ds64_data)) riff_size, data_size, sample_count, length_lookup_table = struct.unpack( ds64_field_spec , ds64_data[0:ds64_fields_size] ) - + bigchunk_table = {} chunksize64format = "<4sL" chunksize64size = struct.calcsize(chunksize64format) #print("Found chunks64s:", length_lookup_table) for n in range(length_lookup_table): - bigname, bigsize = struct.unpack_from( chunksize64format , ds64data, offset= ds64_fields_size ) + bigname, bigsize = struct.unpack_from( chunksize64format , ds64_data, offset= ds64_fields_size ) bigchunk_table[bigname] = bigsize bigchunk_table[b'data'] = data_size bigchunk_table[b'RF64'] = riff_size - + stream.seek(start, 0) #print("returning from parse_rf64, context: ",RF64Context( sample_count=sample_count, bigchunk_table=bigchunk_table ) ) return RF64Context( sample_count=sample_count, bigchunk_table=bigchunk_table ) - + diff --git a/wavinfo/riff_parser.py b/wavinfo/riff_parser.py index 2f44b4c..08c2e93 100644 --- a/wavinfo/riff_parser.py +++ b/wavinfo/riff_parser.py @@ -58,11 +58,11 @@ def parse_chunk(stream, rf64_context=None): if data_size == 0xFFFFFFFF: if rf64_context is None and ident == b'RF64': rf64_context = parse_rf64(stream=stream) - + data_size = rf64_context.bigchunk_table[ident] - + displacement = data_size - if displacement % 2 is not 0: + if (displacement % 2) != 0: displacement = displacement + 1 if ident in [b'RIFF', b'LIST', b'RF64']: