OpenTimelineIO
OpenTimelineIO copied to clipboard
AAF Adapter: Found more than one Source Clip (2) for sourceClipComposition case. This is unexpected
Bug Report
I am trying to use OTIO to get AAF data with python, I can open some AAF file & work with those with no problem but for some others I get an error.
WARNING:root:fat sector count missmatch difat: 363 header: 261
Found more than one Source Clip (2) for sourceClipComposition case. This is unexpected
To Reproduce
- Operating System: MacOS 12.4
- Python version: 3.9.5
- Example snippet that demonstrates the issue - if it's a build issue
import opentimelineio as otio
timeline = otio.adapters.read_from_file('my_file.aaf')
for clip in timeline.each_clip():
print(clip.name)
- OpenTimelineIO release version or commit hash OpenTimelineIO 0.14.1
- Compiler information:
Apple clang version 13.1.6 (clang-1316.0.21.2.5)
Target: x86_64-apple-darwin21.5.0
Thread model: posix
InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin
Expected Behavior
Interact with the clips, tracks, etc, just as the same with other files, this happens with a few files, nothing particular special about those files.
Screenshots

Logs
WARNING:root:fat sector count missmatch difat: 363 header: 261
Found more than one Source Clip (2) for sourceClipComposition case. This is unexpected
Traceback (most recent call last):
File "/Users/diego.dominguez01/Documents/aaf-parser-collab/test_opentimeline_errors/test_errors.py", line 4, in <module>
timeline = otio.adapters.read_from_file(my_file)
File "/Users/diego.dominguez01/Documents/aaf-parser-collab/venv/lib/python3.9/site-packages/opentimelineio/adapters/__init__.py", line 143, in read_from_file
return adapter.read_from_file(
File "/Users/diego.dominguez01/Documents/aaf-parser-collab/venv/lib/python3.9/site-packages/opentimelineio/adapters/adapter.py", line 145, in read_from_file
result = self._execute_function(
File "/Users/diego.dominguez01/Documents/aaf-parser-collab/venv/lib/python3.9/site-packages/opentimelineio/plugins/python_plugin.py", line 174, in _execute_function
return (getattr(self.module(), func_name)(**kwargs))
File "/Users/diego.dominguez01/Documents/aaf-parser-collab/venv/lib/python3.9/site-packages/opentimelineio_contrib/adapters/advanced_authoring_format.py", line 1191, in read_from_file
result = _transcribe(top, parents=list(), edit_rate=None)
File "/Users/diego.dominguez01/Documents/aaf-parser-collab/venv/lib/python3.9/site-packages/opentimelineio_contrib/adapters/advanced_authoring_format.py", line 606, in _transcribe
result.append(_transcribe(child, parents + [item], edit_rate, indent + 2))
File "/Users/diego.dominguez01/Documents/aaf-parser-collab/venv/lib/python3.9/site-packages/opentimelineio_contrib/adapters/advanced_authoring_format.py", line 277, in _transcribe
track = _transcribe(slot, parents + [item], edit_rate, indent + 2)
File "/Users/diego.dominguez01/Documents/aaf-parser-collab/venv/lib/python3.9/site-packages/opentimelineio_contrib/adapters/advanced_authoring_format.py", line 492, in _transcribe
child = _transcribe(item.segment, parents + [item], edit_rate, indent + 2)
File "/Users/diego.dominguez01/Documents/aaf-parser-collab/venv/lib/python3.9/site-packages/opentimelineio_contrib/adapters/advanced_authoring_format.py", line 469, in _transcribe
child = _transcribe(slot, parents + [item], edit_rate, indent + 2)
File "/Users/diego.dominguez01/Documents/aaf-parser-collab/venv/lib/python3.9/site-packages/opentimelineio_contrib/adapters/advanced_authoring_format.py", line 478, in _transcribe
child = _transcribe(component, parents + [item], edit_rate, indent + 2)
File "/Users/diego.dominguez01/Documents/aaf-parser-collab/venv/lib/python3.9/site-packages/opentimelineio_contrib/adapters/advanced_authoring_format.py", line 372, in _transcribe
mastermob_child = _transcribe(mastermob, list(), edit_rate, indent)
File "/Users/diego.dominguez01/Documents/aaf-parser-collab/venv/lib/python3.9/site-packages/opentimelineio_contrib/adapters/advanced_authoring_format.py", line 277, in _transcribe
track = _transcribe(slot, parents + [item], edit_rate, indent + 2)
File "/Users/diego.dominguez01/Documents/aaf-parser-collab/venv/lib/python3.9/site-packages/opentimelineio_contrib/adapters/advanced_authoring_format.py", line 492, in _transcribe
child = _transcribe(item.segment, parents + [item], edit_rate, indent + 2)
File "/Users/diego.dominguez01/Documents/aaf-parser-collab/venv/lib/python3.9/site-packages/opentimelineio_contrib/adapters/advanced_authoring_format.py", line 306, in _transcribe
mobs = _find_timecode_mobs(item)
File "/Users/diego.dominguez01/Documents/aaf-parser-collab/venv/lib/python3.9/site-packages/opentimelineio_contrib/adapters/advanced_authoring_format.py", line 134, in _find_timecode_mobs
for c in item.walk():
File "/Users/diego.dominguez01/Documents/aaf-parser-collab/venv/lib/python3.9/site-packages/aaf2/components.py", line 201, in walk
for item in clip.walk():
File "/Users/diego.dominguez01/Documents/aaf-parser-collab/venv/lib/python3.9/site-packages/aaf2/components.py", line 201, in walk
for item in clip.walk():
File "/Users/diego.dominguez01/Documents/aaf-parser-collab/venv/lib/python3.9/site-packages/aaf2/components.py", line 204, in walk
raise NotImplementedError("Sequence returned {} not "
NotImplementedError: Sequence returned <class 'aaf2.components.Sequence'> not implemented
It looks like there are two separate issues here. The warning message "Found more than one Source Clip" is not a fatal error, and may be unrelated to the actual error which is "Sequence returned <class 'aaf2.components.Sequence'> not implemented"
This is a possible duplicate of this bug: https://github.com/AcademySoftwareFoundation/OpenTimelineIO/issues/806 which includes a sample AAF which reproduces the problem.
Could you either provide a sample AAF which reproduces this problem, or verify that the sample AAF in the issue linked above shows the same problem?
I am hopeful that maybe this PR might address the issue: https://github.com/AcademySoftwareFoundation/OpenTimelineIO/pull/1063 but that PR needs a little more work (it is marked as Draft) before it can be landed.