Big Changes:
- 309 FCP X XML adapter (thanks eric-with-a-c)
- New plugins:
- 351 HookScripts: let you run code in between steps in the OTIO execution flow
- 342 SchemaDefs: add your own proprietary schemas to OTIO (for example, for a custom metadata class specific to your studio) (peachey)
- 342 UnknownSchema: If OTIO hits a schema it doesn't recognize, it doesn't trigger a parse error, instead a blind object is constructed and carried along. (peachey)
- 312 Documentation for OTIO now lives on readthedocs: https://opentimelineio.readthedocs.io/en/latest/index.html (big thanks to boredstiff)
- Optimizations:
- 357 Tracks now maintain a set to improve 'contains' performance, resulting in (in some cases) 50x speedup for constructing tracks with lots of clips (thanks rogergodspeed)
- 358 Added `range_of_all_children` to return a dictionary of all the ranges of children of a track in the space of the parent (equivalent to `range_in_parent`). This sped up the flatten algorithm considerably.
Small Changes:
- 335, 325, 301 Improvements to the AAF reader (including support for handling muted clips)
- 299 Now commandline tools are organized into a 'console' module so that pip install correctly installs them
- 355 otioview, otioconvert and otiocat grew a commandline argument to disable the medialinker -m none
- 291 Builds now also include Python 3.6, to keep up with the VFX platform. (boredstiff)
- 359 Ensure that constructors copy values for things that shouldn't be referenced.
otioview:
- 302 otioview now has a number of keyboard shortcuts that make it easier to navigate (bonpix)
- 321 Dark mode for otioview (boredstiff)
As usual, other small fixes and improvements.