AcademySoftwareFoundation / AcademySoftwareFoundation/OpenTimelineIO
Kdenlive 22.12.0 export fails with `Cannot find mob ID for clip`
- Dominant language
- C++
- Stars
- 2k
- Forks
- 351
- Avg merge
- 1d 12h
- Merged PRs (30d)
- 1
Description
## Bug Report
### Incorrect Functionality and General Questions
Kdenlive OTIO export fails with `Cannot find mob ID for clip`.
## To Reproduce
1. Operating System: EndeavourOS, up to date
2. Python version: 3.10.8
4. OpenTimelineIO release version or commit hash
```
$ otioconvert --version
OpenTimelineIO version: 0.15.0
No pkg_resource plugins installed.
```
6. Compiler information:
binary installed, not compiled locally.
## Expected Behavior
In Kdenlive 22.12.0, choose the menu option "Export OpenTimelineIO...", provide a name for the new file, click save, and get a new file successfully created.
## Screenshots
n/a
## Logs
Here's the result:
```
Traceback (most recent call last):
File "/usr/bin/otioconvert", line 33, in
sys.exit(load_entry_point('OpenTimelineIO==0.15.0', 'console_scripts', 'otioconvert')())
File "/usr/lib/python3.10/site-packages/opentimelineio/console/otioconvert.py", line 278, in main
otio.adapters.write_to_file(
File "/usr/lib/python3.10/site-packages/opentimelineio/adapters/__init__.py", line 192, in write_to_file
return adapter.write_to_file(
File "/usr/lib/python3.10/site-packages/opentimelineio/adapters/adapter.py", line 198, in write_to_file
result = self._execute_function(
File "/usr/lib/python3.10/site-packages/opentimelineio/plugins/python_plugin.py", line 153, in _execute_function
return (getattr(self.module(), func_name)(**kwargs))
File "/usr/lib/python3.10/site-packages/opentimelineio_contrib/adapters/advanced_authoring_format.py", line 1618, in write_to_file
otio2aaf = aaf_writer.AAFFileTranscriber(timeline, f, **kwargs)
File "/usr/lib/python3.10/site-packages/opentimelineio_contrib/adapters/aaf_adapter/aaf_writer.py", line 88, in __init__
self._clip_mob_ids_map = _gather_clip_mob_ids(input_otio, **kwargs)
File "/usr/lib/python3.10/site-packages/opentimelineio_contrib/adapters/aaf_adapter/aaf_writer.py", line 239, in _gather_clip_mob_ids
raise AAFAdapterError("Cannot find mob ID for clip {}".format(otio_clip))
opentimelineio_contrib.adapters.aaf_adapter.aaf_writer.AAFAdapterError: Cannot find mob ID for clip Clip("cámara entrevistando a Pedro", ExternalReference("the cell phone/phone--VID_20220820_171818.mp4"), TimeRange(RationalTime(0, 29.97), RationalTime(868, 29.97)), {})
```
## Additional Context
The clip related to the error is the only clip in the timeline. There are no transitions nor effects, just a single clip cut into three parts with no spaces in between.
Contributor guide
Research direction
Start in opentimelineio_contrib/adapters/aaf_adapter/aaf_writer.py, especially _gather_clip_mob_ids and the error at line 239, then trace the call from advanced_authoring_format.py. Reproduce the single-clip, three-part timeline with otioconvert and compare the gathered mob IDs with the clip references. Done means Kdenlive's OpenTimelineIO export creates the requested file without this error.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- tooling
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100