[DRAFT] Project schema proposal #683
Closed
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Hi!
As touched upon briefly in the last couple of TSC meetings, here is an initial proposal for a Project schema definition.
It's written i python at the moment so this PR is mostly for discussion and to get the ball rolling on a full fledged Project schema.
Some motivation for a Project schema:
I did a quick "survey" of the project settings of Premiere, Final Cut, Hiero and Davinci and naturally they all have some variations, but all of them share the concept of "bins" and have a notion of these settings:
In my proposal I chose to name our "bins" holder;
collectionsto refer to theSerializableCollectionobjects that it could store, and a separatetimelinesattribute which should holdTimelineobjects (duh..)I also chose to call the rate, resolution and colorspace:
viewer_rateviewer_resolutionviewer_lutas these settings usually only apply to the viewer of an applications project file.
Example in python:
Results:
otiocat project_test.otio { "OTIO_SCHEMA": "Project.1", "collections": [ { "OTIO_SCHEMA": "SerializableCollection.1", "metadata": {}, "name": "myclips", "children": [] } ], "timelines": [ { "OTIO_SCHEMA": "Timeline.1", "metadata": {}, "name": "myTimeline", "global_start_time": null, "tracks": { "OTIO_SCHEMA": "Stack.1", "metadata": {}, "name": "tracks", "source_range": null, "effects": [], "markers": [], "children": [] } } ], "viewer_lut": null, "viewer_rate": null, "viewer_resolution": [ null, null ], "metadata": { "OCIO_PATH": null }, "name": "myProject" }Again, this is an initial proposal to get the ball rolling. All comments, ideas and views are welcome :)
Thanks!