Bug 448318 - OpenTimelineIO adapters are listed only if they have read AND write feature exposed
Summary: OpenTimelineIO adapters are listed only if they have read AND write feature e...
Status: RESOLVED FIXED
Alias: None
Product: kdenlive
Classification: Applications
Component: User Interface & Miscellaneous (other bugs)
Version First Reported In: 21.12.1
Platform: Ubuntu Linux
: NOR minor
Target Milestone: ---
Assignee: Jean-Baptiste Mardelle
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2022-01-12 13:46 UTC by Gilou
Modified: 2022-01-17 01:12 UTC (History)
0 users

See Also:
Latest Commit:
Version Fixed/Implemented In:
Sentry Crash Report:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Gilou 2022-01-12 13:46:16 UTC
SUMMARY
OpenTimelineIO adapters are listed only if they have the read and write feature enabled. We should have a separate list for import and export, as read is only required for import, and write for export. Or maybe just allow any file extensions there, and let OTIO decide if it can import them?

STEPS TO REPRODUCE
1. Set-up a read-only adapter in OTIO, such as https://github.com/gilou/otio-drp-adapter
2. Run KDEnlive, and select import

OBSERVED RESULT
drp adapter and its suffixes are not considered as candidates.

EXPECTED RESULT
Allow importing if only read feature is exposed (and exporting if only write is exposed)

SOFTWARE/OS VERSIONS
Linux/KDE Plasma: Ubuntu 20.04
KDE Frameworks Version: KDE Frameworks 5.68.0
Qt Version: 5.12.8

ADDITIONAL INFORMATION
This will require to separate m_adapters either in two lists, or to make the read/write feature available there to filter import/export suffixes in kdenlive/src/utils/otioconvertions.cpp

I'm not familiar with KDEnlive code and my C++ is a bit rusty, but I guess one could use the python condition in getOtioConverters() to create something like m_import_adapters and m_export_adapters strings maybe?
Comment 1 Julius Künzel 2022-01-16 20:15:26 UTC
Git commit 06c14aee3191536c866040f614e7df25fc229ac3 by Julius Künzel.
Committed on 16/01/2022 at 20:14.
Pushed by jlskuz into branch 'master'.

[OTIO] Differentiate between read and write adapters

M  +4    -3    data/scripts/checkpackages.py
M  +36   -4    data/scripts/otiointerface.py
M  +10   -6    src/pythoninterfaces/otioconvertions.cpp
M  +2    -1    src/pythoninterfaces/otioconvertions.h

https://invent.kde.org/multimedia/kdenlive/commit/06c14aee3191536c866040f614e7df25fc229ac3
Comment 2 Gilou 2022-01-17 01:12:17 UTC
(In reply to Julius Künzel from comment #1)
> Git commit 06c14aee3191536c866040f614e7df25fc229ac3 by Julius Künzel.
> Committed on 16/01/2022 at 20:14.
> Pushed by jlskuz into branch 'master'.
> 
> [OTIO] Differentiate between read and write adapters
> 
> M  +4    -3    data/scripts/checkpackages.py
> M  +36   -4    data/scripts/otiointerface.py
> M  +10   -6    src/pythoninterfaces/otioconvertions.cpp
> M  +2    -1    src/pythoninterfaces/otioconvertions.h
> 
> https://invent.kde.org/multimedia/kdenlive/commit/
> 06c14aee3191536c866040f614e7df25fc229ac3

That is... impressive. And it seems, an elegant way to solve the issue. I tried it, and it works, so… well done!