Join GitHub today
GitHub is home to over 28 million developers working together to host and review code, manage projects, and build software together.Sign up
FCP X XML adapter #309
This is a basic adapter for working with FCP X XMLs. While this adapter will handle basic FCP X projects, including compound clips, it does not, at present, support markers or video clips that have detached audio.
ffprobe is required to create FCP X XMLs from an otio without errors on import. If ffprobe is not available or is not in the path, then an error will be displayed in FCP X when importing the XML. However, the timeline will still look an function properly in FCP X.
@@ Coverage Diff @@ ## master #309 +/- ## ======================================== + Coverage 90.89% 91% +0.11% ======================================== Files 53 55 +2 Lines 4512 4890 +378 ======================================== + Hits 4101 4450 +349 - Misses 411 440 +29
A few small things. We're also trying to find someone with a bit more FCPX experience to take a look, sorry this has taken a while to get around to.
So we were able to track down an expert on the FCP X XML format. Here is a summary of their comments & advice:
Regarding the format information:
Thanks for the feedback!
I added the use of a SerializableCollection of Timelines to account for the possibility of having more than 1 sequence in an event. I also played around with adding another SerializableCollection of SerializableCollections since an FCP X Library can have multiple events, which can have multiple sequences. However, otioview didn't seem to like that level of nesting, so I left it out for now.
Presently the event name is being stored as the SerializableCollection's name and then the SerailizableCollection's name is used to set the event name when round tripping. But I could make it a piece of metadata if that's the preferred way of handling that. Let me know if you'd like it changed.
That's good to know about the formats. Since we still need a format for the sequence, it looks like there's still a dependency on ffprobe.
Let me know if there is anything else that needs to be adjusted before merging.