diff --git a/tests/test_wave_parsing.py b/tests/test_wave_parsing.py index 4f15ef1..d948842 100644 --- a/tests/test_wave_parsing.py +++ b/tests/test_wave_parsing.py @@ -110,6 +110,8 @@ class TestWaveInfo(TestCase): assert info.ixml is not None self.assertIsNotNone(info.ixml.steinberg) assert info.ixml.steinberg is not None + self.assertIsNotNone(info.ixml.steinberg.audio_speaker_arrangement) + self.assertEqual(info.ixml.steinberg.sample_format_size, 3) def test_metadata(self): file_with_metadata = 'tests/test_files/sound_grinder_pro/new_camera bumb 1.wav' diff --git a/wavinfo/wave_ixml_reader.py b/wavinfo/wave_ixml_reader.py index 52ee4d5..f1766f2 100644 --- a/wavinfo/wave_ixml_reader.py +++ b/wavinfo/wave_ixml_reader.py @@ -72,9 +72,9 @@ class SteinbergMetadata: """ `AudioSpeakerArrangement` property """ - val = self.parsed.find("./ATTR_LIST/ATTR[NAME/text() = 'AudioSpeakerArrangement']/VALUE/text()") - if len(val) > 0: - return type(self).AudioSpeakerArrangement(int(val[0])) + val = self.parsed.find("./ATTR_LIST/ATTR[NAME = 'AudioSpeakerArrangement']/VALUE") + if val is not None: + return type(self).AudioSpeakerArrangement(int(val.text)) else: return None @@ -83,7 +83,11 @@ class SteinbergMetadata: """ AudioSampleFormatSize """ - pass + val = self.parsed.find("./ATTR_LIST/ATTR[NAME = 'AudioSampleFormatSize']/VALUE") + if val is not None: + return int(val.text) + else: + return None @property def media_company(self) -> Optional[str]: