AcademySoftwareFoundation / OpenTimelineIO

Open Source API and interchange format for editorial timeline information.
http://opentimeline.io
Apache License 2.0
1.47k stars 293 forks source link

Build time external adaptor inclusion. #317

Closed alatdneg closed 1 year ago

alatdneg commented 6 years ago

Hi, can I request a method of adding external adaptors, currently there doesn't seem to be a nice way of doing this with out adding my code to the contrib adaptors tree and updating the manifest.

Or by using the environment variable, I'd rather not have to globally add a new env var just to support this, I suspect that overrides the contribs/adaptors anyway ?.

I was thinking of some build time flag/config that can bake in an additional path for private adaptors.

cheers

ssteinbach commented 6 years ago

@alatdneg out of curiosity, would this solution work for you? It isn't what you're asking for exactly, but depending on if your studio uses pip or not, it might work:

https://github.com/PixarAnimationStudios/OpenTimelineIO/wiki/How-to-Write-an-OpenTimelineIO-Adapter#packaging-and-sharing-custom-adapters

Just to clarify, this is a way of adding external plugins without the environment variable or directly changing the manifest. But it is not a build-time step.

jminor commented 6 years ago

There's currently three ways to add adapters:

In our internal deployments, we use all three - mostly the OTIO_PLUGIN_MANIFEST_PATH, and the pip method. However, in our main deployment, we case wrap opentimelineio in another module pixar.opentimelineio that does the required setup and then from opentimelineio import * to pull in all the symbols. That gives us the ability to add adapters, media_linker and a couple of other convenience methods to the module.

If none of those work for you, can you suggest something specific that would meet your needs? I'm not clear on the constraints you have.

reinecke commented 2 years ago

@alatdneg Did we manage to get you a suitable solution for this? Since we last checked in, this repo was created to make the pip method of making an adapter as a pip-installable plugin - that may also be helpful.

jminor commented 1 year ago

We believe this was resolved some time ago. If not, please re-open.