## Summary This is a preview release for extracting the "batteries included" file format adapters and moving them to their own repositories and python packages. If you still require the adapters, you should use the `opentimelineio-plugins` [python package](https://pypi.org/project/OpenTimelineIO-Plugins/) which will have a version correlating to each OpenTimelineIO core release. The release is a [Developmental release](https://peps.python.org/pep-0440/#developmental-releases) to give users a chance to try out how the new `opentimelineio` and `opentimelineio-plugins` package setups work in their environments. Because this release is an early cut, there are still [a collection of tasks to complete](https://github.com/AcademySoftwareFoundation/OpenTimelineIO/issues/1386) before the final release. There are also additional 0.16.0 changes that will be integrated with this release when it is finalized, so please treat it very much as a work-in-progress. Please provide feedback about your experience in the GitHub issue for adapter break-out - #1386. ## How To Install By default pip won't pick up developmental releases. To try this release, use one of the following: - Setting `opentimelineio==0.17.0.dev1` as a dependency - `python -m pip install opentimelineio==0.17.0.dev1` - `python -m pip install --pre opentimelineio` To opt-in to the "batteries-included" package, use any of these variants with the `opentimelineio-plugins` package. ## Important Note About Adapters Since we've removed the adapters from OpenTimelineIO core, only the OpenTimelineIO native file format adapters are present in the `opentimelineio` python package. These adapters are: - otio_json - otiod - otioz To get the full set of OTIO adapters, use the [OpenTimelineIO-Plugins ](https://pypi.org/project/OpenTimelineIO-Plugins/) python package. In addition to the OpenTimelineIO native adapters, you'll also get: - AAF - ale - burnins - cmx_3600 - fcp_xml - fcpx_xml - hls_playlist - maya_sequencer - svg - xges The following are not included in the OTIO-maintained top-level packages: - kdenlive - Now hosted and supported under the [KDE repository](https://invent.kde.org/multimedia/kdenlive-opentimelineio) - rv_session - This adapter was made obsolete by first-party support of OpenTimelineIO in [Shotgrid RV](https://www.shotgridsoftware.com/rv/) and [OpenRV](https://github.com/AcademySoftwareFoundation/OpenRV) ## What's Changed * Prepare plugin detection for removal of the cmx_3600 adapter by @apetrynet in https://github.com/AcademySoftwareFoundation/OpenTimelineIO/pull/1488 * Extracted CMX3600 adapter and related sample data and tests by @apetrynet in https://github.com/AcademySoftwareFoundation/OpenTimelineIO/pull/1487 * Extract AAF Adapter from OTIO core and establish separate git repo by @markreidvfx in https://github.com/AcademySoftwareFoundation/OpenTimelineIO/pull/1348 * Remove fcp adapter by @apetrynet in https://github.com/AcademySoftwareFoundation/OpenTimelineIO/pull/1501 * Remove svg adapter by @apetrynet in https://github.com/AcademySoftwareFoundation/OpenTimelineIO/pull/1502 * Remove maya sequencer adapter related files by @rosborne132 in https://github.com/AcademySoftwareFoundation/OpenTimelineIO/pull/1520 * Remove fcp x xml adapter related files by @rosborne132 in https://github.com/AcademySoftwareFoundation/OpenTimelineIO/pull/1529 * remove hls adapter related files by @rosborne132 in https://github.com/AcademySoftwareFoundation/OpenTimelineIO/pull/1535 * remove ale adapter related files by @rosborne132 in https://github.com/AcademySoftwareFoundation/OpenTimelineIO/pull/1536 * Remove burnins adapter related files by @rosborne132 in https://github.com/AcademySoftwareFoundation/OpenTimelineIO/pull/1537 * extract xges adapter files by @rosborne132 in https://github.com/AcademySoftwareFoundation/OpenTimelineIO/pull/1538 * Remove the remains of "contrib" by @apetrynet * fixed doc-plugins-update when custom hooks are in environment by @timlehr in https://github.com/AcademySoftwareFoundation/OpenTimelineIO/pull/1644 **Full Changelog**: https://github.com/AcademySoftwareFoundation/OpenTimelineIO/compare/v0.15...v0.17.0.dev1
## Summary This release introduces Media-multi references (by @rogernelson), spatial coordinates parameters (also by @rogernelson), `otiotool` command line utility, a schema downgrading system (for writing OTIO files that are compatible with older versions of OTIO), as well as a number of other smaller bug fixes and enhancements across the core and adapters. This is the last version of OTIO that will support python 2.7. Thank you to the many community members who contributed to this release! ## Important Note About OTIO File Backwards Compatibility This version of OTIO introduces a new version of the Clip schema, Clip.2 (with multiple media reference support). If you need to write out OTIO files that are compatible with older versions of the OTIO library, then you can use the new downgrade feature to save out OTIO files with Clip.1 schema. Example using `otioconvert` on the commandline: ```bash ❯ otioconvert -i tests/sample_data/nested_example.otio -o /var/tmp/v14_compat.otio -A target_schema_versions="{'Clip':1}" && grep "OTIO_SCHEMA.*Clip" /var/tmp/v14_compat.otio 26: "OTIO_SCHEMA": "Clip.1", 75: "OTIO_SCHEMA": "Clip.1", 105: "OTIO_SCHEMA": "Clip.1", 162: "OTIO_SCHEMA": "Clip.1", 192: "OTIO_SCHEMA": "Clip.1", 249: "OTIO_SCHEMA": "Clip.1", 280: "OTIO_SCHEMA": "Clip.1", ``` C++: ```c++ #include <iostream> #include "opentimelineio/timeline.h" namespace otio = opentimelineio::OPENTIMELINEIO_VERSION; void main() { otio::ErrorStatus err; otio::SerializableObject::Retainer<otio::Timeline> timeline( dynamic_cast<otio::Timeline*>( otio::Timeline::from_json_file( "tests/sample_data/nested_example.otio", &err ) ) ); otio::schema_version_map downgrade_manifest = { {"Clip", 1}, }; timeline->to_json_file("/var/tmp/v14_compat.otio", &err, &downgrade_manifest); } ``` python: ```python import opentimelineio as otio tl = otio.adapters.read_from_file("tests/sample_data/nested_example.otio") otio.adapters.write_to_file( tl, "/var/tmp/v14_compat.otio", target_schema_versions={"Clip": 1} ) ``` ## Big Changes * The OpenTimelineIO project was moved over to the ASWF organization, and a number of changes were made as part of the ASWF graduation process in: * Technical Steering Committee Charter, GOVERNANCE, etc. by @jminor in https://github.com/AcademySoftwareFoundation/OpenTimelineIO/pull/1057 * Prep for ASWF transfer by @jminor in https://github.com/AcademySoftwareFoundation/OpenTimelineIO/pull/932 * More ASWF transition prep by @jminor in https://github.com/AcademySoftwareFoundation/OpenTimelineIO/pull/1167 * Replaced @pixar email addresses with @aswf email addresses. by @jminor in https://github.com/AcademySoftwareFoundation/OpenTimelineIO/pull/1170 * OpenTimelineIO License & CLA Change by @jminor in https://github.com/AcademySoftwareFoundation/OpenTimelineIO/pull/1285 * Updated verify_license.py to support more languages by @jminor in https://github.com/AcademySoftwareFoundation/OpenTimelineIO/pull/1288 * Update links in readme to point to new ASWF url by @ssteinbach in https://github.com/AcademySoftwareFoundation/OpenTimelineIO/pull/1302 * Updated URLs to new AcademySofwareFoundation GitHub org. by @jminor in https://github.com/AcademySoftwareFoundation/OpenTimelineIO/pull/1303 * AAF Adapter: * AAF Adapter: support for reading markers by @timlehr in https://github.com/AcademySoftwareFoundation/OpenTimelineIO/pull/1019 * AAF adapter: added support for keyframed properties by @timlehr in https://github.com/AcademySoftwareFoundation/OpenTimelineIO/pull/1151 * Merge spatial_coordinates to main by @rogernelson in https://github.com/AcademySoftwareFoundation/OpenTimelineIO/pull/1219 * Media Multi-Reference Feature by @rogernelson in https://github.com/AcademySoftwareFoundation/OpenTimelineIO/pull/1241 * Schema Downgrading System by @ssteinbach in https://github.com/AcademySoftwareFoundation/OpenTimelineIO/pull/1387 * otiotool command line utility by @jminor in https://github.com/AcademySoftwareFoundation/OpenTimelineIO/pull/1375 ## Breaking Changes * Fixes #1188 BREAKING CHANGE: change "effect" argument to Gap constructor to "effects" by @visajshah in https://github.com/AcademySoftwareFoundation/OpenTimelineIO/pull/1292 * Clip.2 schema as noted above ## Other Changes * R0.15.set dev version by @ssteinbach in https://github.com/AcademySoftwareFoundation/OpenTimelineIO/pull/1128 * CI: switch platform versions back to -latest by @ssteinbach in https://github.com/AcademySoftwareFoundation/OpenTimelineIO/pull/1129 * Fix RV plugin test timing by @rogernelson in https://github.com/AcademySoftwareFoundation/OpenTimelineIO/pull/1147 * Fix RV plugin test for Mac by @rogernelson in https://github.com/AcademySoftwareFoundation/OpenTimelineIO/pull/1149 * Update sdist to include submodules by @JeanChristopheMorinPerso in https://github.com/AcademySoftwareFoundation/OpenTimelineIO/pull/1152 * Improve the developer quickstart documentation by @JeanChristopheMorinPerso in https://github.com/AcademySoftwareFoundation/OpenTimelineIO/pull/1144 * Use platform specific command to find path by @ThomasWilshaw in https://github.com/AcademySoftwareFoundation/OpenTimelineIO/pull/1143 * Fix code coverage report uploads by @JeanChristopheMorinPerso in https://github.com/AcademySoftwareFoundation/OpenTimelineIO/pull/1189 * Add nearest_valid_timecode_rate function by @splidje in https://github.com/AcademySoftwareFoundation/OpenTimelineIO/pull/1181 * Replace deprecated Pybind11 get_type() usages by py::type::of() by @JeanChristopheMorinPerso in https://github.com/AcademySoftwareFoundation/OpenTimelineIO/pull/1194 * SVG adapter fixes by @KarthikRIyer in https://github.com/AcademySoftwareFoundation/OpenTimelineIO/pull/1195 * Remove extra useless parameter from RationalTime.__copy__ method by @JeanChristopheMorinPerso in https://github.com/AcademySoftwareFoundation/OpenTimelineIO/pull/1198 * Update AAF Documentation Link by @camkerr in https://github.com/AcademySoftwareFoundation/OpenTimelineIO/pull/1202 * Add enabled flag to Item by @ThomasWilshaw in https://github.com/AcademySoftwareFoundation/OpenTimelineIO/pull/1175 * Add missing memo keyword argument to TimeTransform.__deepcopy__ method by @JeanChristopheMorinPerso in https://github.com/AcademySoftwareFoundation/OpenTimelineIO/pull/1203 * Kdenlive adapter: process recent project format by @vpinon in https://github.com/AcademySoftwareFoundation/OpenTimelineIO/pull/1191 * On macOS build universal arm64 and x86_64 by @jminor in https://github.com/AcademySoftwareFoundation/OpenTimelineIO/pull/1214 * Port to PySide6 by @darbyjohnston in https://github.com/AcademySoftwareFoundation/OpenTimelineIO/pull/1221 * C++ tests by @darbyjohnston in https://github.com/AcademySoftwareFoundation/OpenTimelineIO/pull/1161 * Don't skip asserts in unit test release builds by @rogernelson in https://github.com/AcademySoftwareFoundation/OpenTimelineIO/pull/1236 * Keep markers at the track if `child_at_time()` found something that does not hold markers by @jchen9 in https://github.com/AcademySoftwareFoundation/OpenTimelineIO/pull/1239 * otioview track and window fit improvements by @michdolan in https://github.com/AcademySoftwareFoundation/OpenTimelineIO/pull/1237 * Install full OTIO Python env with CMake by @michdolan in https://github.com/AcademySoftwareFoundation/OpenTimelineIO/pull/1238 * clang notices that constexpr can't be used on a mutating function by @meshula in https://github.com/AcademySoftwareFoundation/OpenTimelineIO/pull/1242 * AAF Adapter: Mob transcription heuristics by @jchen9 in https://github.com/AcademySoftwareFoundation/OpenTimelineIO/pull/1249 * Add ALE adapter argument `ale_name_column_key` by @jchen9 in https://github.com/AcademySoftwareFoundation/OpenTimelineIO/pull/1248 * Support OTIO_PLUGIN_MANIFEST_PATH being set to an empty string by @avrata in https://github.com/AcademySoftwareFoundation/OpenTimelineIO/pull/1253 * Fix missing init metadata by @JeanChristopheMorinPerso in https://github.com/AcademySoftwareFoundation/OpenTimelineIO/pull/1251 * Add Python 3.10 to CI by @JeanChristopheMorinPerso in https://github.com/AcademySoftwareFoundation/OpenTimelineIO/pull/1256 * Fix #1257 missing each_clip on Clip by @meshula in https://github.com/AcademySoftwareFoundation/OpenTimelineIO/pull/1258 * Detect & use Imath from vfxplatform CY2019-2022 by @meshula in https://github.com/AcademySoftwareFoundation/OpenTimelineIO/pull/1255 * Adapt changes between PySide2 and PySide6 by @jchen9 in https://github.com/AcademySoftwareFoundation/OpenTimelineIO/pull/1262 * Copy core sample data used by contrib tests into the contrib area to better isolate contrib tests by @avrata in https://github.com/AcademySoftwareFoundation/OpenTimelineIO/pull/1266 * Add a test case and fix for transcribing markers over a single audio AAF file by @jchen9 in https://github.com/AcademySoftwareFoundation/OpenTimelineIO/pull/1259 * Support python 3 in the "rv_session" adapter. by @avrata in https://github.com/AcademySoftwareFoundation/OpenTimelineIO/pull/1267 * Change angle include Imath to quote include, remove multiMediaReference prototype by @meshula in https://github.com/AcademySoftwareFoundation/OpenTimelineIO/pull/1276 * Update test_v2d to support multiple exception types by @avrata in https://github.com/AcademySoftwareFoundation/OpenTimelineIO/pull/1279 * Fix for external Imath, must set USE_DEPS_IMATH OFF by @meshula in https://github.com/AcademySoftwareFoundation/OpenTimelineIO/pull/1273 * AAF Clip Enabled/Muting Update by @andrewmoore-nz in https://github.com/AcademySoftwareFoundation/OpenTimelineIO/pull/1277 * fix #839 - FCP XML outputs not recognized by Resolve by @pedrolabonia in https://github.com/AcademySoftwareFoundation/OpenTimelineIO/pull/1287 * Removed a vestigial "Foo" schema by @reinecke in https://github.com/AcademySoftwareFoundation/OpenTimelineIO/pull/1306 * CII Best Practices badge by @jminor in https://github.com/AcademySoftwareFoundation/OpenTimelineIO/pull/1304 * Update Pybind11 to 2.9.2 by @JeanChristopheMorinPerso in https://github.com/AcademySoftwareFoundation/OpenTimelineIO/pull/1312 * Use py::module_local() for Imath bindings by @JeanChristopheMorinPerso in https://github.com/AcademySoftwareFoundation/OpenTimelineIO/pull/1323 * Update feature matrix to mention that the AAF adapter now supports markers by @JeanChristopheMorinPerso in https://github.com/AcademySoftwareFoundation/OpenTimelineIO/pull/1309 * Python bindings: raise proper exceptions for IO operations by @JeanChristopheMorinPerso in https://github.com/AcademySoftwareFoundation/OpenTimelineIO/pull/1313 * Improve Python reference documentation by @JeanChristopheMorinPerso in https://github.com/AcademySoftwareFoundation/OpenTimelineIO/pull/1209 * Use marker colors in otioview by @markreidvfx in https://github.com/AcademySoftwareFoundation/OpenTimelineIO/pull/1340 * Prevent divide by zero and print warning if width is zero by @markreidvfx in https://github.com/AcademySoftwareFoundation/OpenTimelineIO/pull/1346 * Cancel in-progress CI jobs for the same branch by @JeanChristopheMorinPerso in https://github.com/AcademySoftwareFoundation/OpenTimelineIO/pull/1329 * Fix setuptools deprecation warnings by @JeanChristopheMorinPerso in https://github.com/AcademySoftwareFoundation/OpenTimelineIO/pull/1317 * Revisited how transitions are handled by the cmx 3600 adapter. by @gplsteph in https://github.com/AcademySoftwareFoundation/OpenTimelineIO/pull/1341 * Add unit tests in preparation for moving the aaf adapter by @m
## Summary This release fixes an issue where installation from the sdist (source) package on PyPI would fail. This mostly impacted users with a platform for which we don't provide a prebuilt wheel. ## Changes * Update sdist to include submodules by @JeanChristopheMorinPerso in https://github.com/PixarAnimationStudios/OpenTimelineIO/pull/1156
## Summary This release has a number of features, including _many_ backend features that upgrade the CI, build, and release process. Big thanks especially to @KarthikRIyer, @darbyjohnston and @JeanChristopheMorinPerso for their contributions in this and other areas. ## Big Things * Drop 36 support for 38, following the VFX platform by @ssteinbach in https://github.com/PixarAnimationStudios/OpenTimelineIO/pull/787 * add windows and mac builds to ci by @ssteinbach in https://github.com/PixarAnimationStudios/OpenTimelineIO/pull/873 * Add filebundle (otioz and otiod) adapters by @ssteinbach in https://github.com/PixarAnimationStudios/OpenTimelineIO/pull/561 * Cxx examples by @darbyjohnston in https://github.com/PixarAnimationStudios/OpenTimelineIO/pull/918 * Add doxygen to document cpp code by @hisergiorojas in https://github.com/PixarAnimationStudios/OpenTimelineIO/pull/878 * Build wheels as a github action by @reinecke in https://github.com/PixarAnimationStudios/OpenTimelineIO/pull/957 * Implement OTIO to SVG adapter by @KarthikRIyer in https://github.com/PixarAnimationStudios/OpenTimelineIO/pull/1038 * Create wheels on Windows by @JeanChristopheMorinPerso in https://github.com/PixarAnimationStudios/OpenTimelineIO/pull/1015 * Support Python 3.9 by @JeanChristopheMorinPerso in https://github.com/PixarAnimationStudios/OpenTimelineIO/pull/1080 * PyPI publish on release by @JeanChristopheMorinPerso in https://github.com/PixarAnimationStudios/OpenTimelineIO/pull/1110 * Add .clang-format file by @KarthikRIyer in https://github.com/PixarAnimationStudios/OpenTimelineIO/pull/707 ## Other Changes * Create GitHub Actions Workflow by @KarthikRIyer in https://github.com/PixarAnimationStudios/OpenTimelineIO/pull/752 * xges: Add support for image sequences by @thiblahute in https://github.com/PixarAnimationStudios/OpenTimelineIO/pull/792 * FIxed invalid timecode frame number error message by @reinecke in https://github.com/PixarAnimationStudios/OpenTimelineIO/pull/795 * Update doc string for otio.algorithms.track_with_expanded_transitions() by @apetrynet in https://github.com/PixarAnimationStudios/OpenTimelineIO/pull/794 * Fix a link in documentation (to serialized schema tutorial) by @Simran-B in https://github.com/PixarAnimationStudios/OpenTimelineIO/pull/808 * Added a note about CLA requirement to PR template. by @jminor in https://github.com/PixarAnimationStudios/OpenTimelineIO/pull/810 * Update flatten_video_tracks.py to use deepcopy. by @jminor in https://github.com/PixarAnimationStudios/OpenTimelineIO/pull/812 * Retire Travis, in favor of GitHub Actions by @jminor in https://github.com/PixarAnimationStudios/OpenTimelineIO/pull/817 * CMake: Set "ARCHIVE DESTINATION" in install section by @itsmattkc in https://github.com/PixarAnimationStudios/OpenTimelineIO/pull/803 * Fcp 7 xml better generator support by @reinecke in https://github.com/PixarAnimationStudios/OpenTimelineIO/pull/802 * Prefix `_TypeRecord` constructor params to avoid shadow warnings by @Simran-B in https://github.com/PixarAnimationStudios/OpenTimelineIO/pull/825 * Python 3 deprecation fixes (including Preparing for Python 3.9) by @reinecke in https://github.com/PixarAnimationStudios/OpenTimelineIO/pull/820 * Fix compilation of Swift bindings by @meshula in https://github.com/PixarAnimationStudios/OpenTimelineIO/pull/834 * Cmake cleanup by @meshula in https://github.com/PixarAnimationStudios/OpenTimelineIO/pull/837 * Document Metadata structure by @jminor in https://github.com/PixarAnimationStudios/OpenTimelineIO/pull/861 * Added docstrings to python bindings for interval algebra methods in TimeRange by @reinecke in https://github.com/PixarAnimationStudios/OpenTimelineIO/pull/789 * Check rate and value are not invalid by @hisergiorojas in https://github.com/PixarAnimationStudios/OpenTimelineIO/pull/867 * Kdenlive linear timewarp by @splidje in https://github.com/PixarAnimationStudios/OpenTimelineIO/pull/869 * from_start_end_time_inclusive by @splidje in https://github.com/PixarAnimationStudios/OpenTimelineIO/pull/868 * detect cycles by @davidbaraff in https://github.com/PixarAnimationStudios/OpenTimelineIO/pull/848 * remove swift bindings and legacy macosx-build directory by @ssteinbach in https://github.com/PixarAnimationStudios/OpenTimelineIO/pull/871 * Revert the location of shared libraries by @ssteinbach in https://github.com/PixarAnimationStudios/OpenTimelineIO/pull/883 * Remove tox dependency by @ssteinbach in https://github.com/PixarAnimationStudios/OpenTimelineIO/pull/882 * Support --prefix correctly in new cmake system by @ssteinbach in https://github.com/PixarAnimationStudios/OpenTimelineIO/pull/886 * CMake: Fix message() types by @Simran-B in https://github.com/PixarAnimationStudios/OpenTimelineIO/pull/879 * FCP 7 XML: Fixed resolution of start timecode for certain NTSC rate clips by @reinecke in https://github.com/PixarAnimationStudios/OpenTimelineIO/pull/843 * Fix Issue #881 by @meshula in https://github.com/PixarAnimationStudios/OpenTimelineIO/pull/887 * Fix ImageSequenceReference implicit cast by @reinecke in https://github.com/PixarAnimationStudios/OpenTimelineIO/pull/889 * ImageSequenceReference: Added handling for empty target_url_base by @reinecke in https://github.com/PixarAnimationStudios/OpenTimelineIO/pull/891 * Enable xges unit tests on all platform/python versions by @thiblahute in https://github.com/PixarAnimationStudios/OpenTimelineIO/pull/894 * quiet the aaf adapter test to clean up test output by @ssteinbach in https://github.com/PixarAnimationStudios/OpenTimelineIO/pull/893 * Fix escaping for ORIGIN in rpath settings by @ssteinbach in https://github.com/PixarAnimationStudios/OpenTimelineIO/pull/899 * Update build status badge to use GitHub Actions instead of Travis by @jminor in https://github.com/PixarAnimationStudios/OpenTimelineIO/pull/898 * CMakeTexts fix: stop using the modname variable by @ssteinbach in https://github.com/PixarAnimationStudios/OpenTimelineIO/pull/900 * Don't override user supplied C++ preferences by @nporcino-pixar in https://github.com/PixarAnimationStudios/OpenTimelineIO/pull/902 * Create cmake alias targets for the OTIO namespace by @nporcino-pixar in https://github.com/PixarAnimationStudios/OpenTimelineIO/pull/901 * Address big integers bug by @ssteinbach in https://github.com/PixarAnimationStudios/OpenTimelineIO/pull/892 * add a --version flag to otiopluginfo + otioconvert by @ssteinbach in https://github.com/PixarAnimationStudios/OpenTimelineIO/pull/880 * Change cmx_3600 adapter to use transition duration frames (Issue #895) by @JoshBurnell in https://github.com/PixarAnimationStudios/OpenTimelineIO/pull/896 * Add include directories for OpenTimeConfig.cmake/OpenTimelineIOConfig… by @darbyjohnston in https://github.com/PixarAnimationStudios/OpenTimelineIO/pull/916 * Documentation fixes by @darbyjohnston in https://github.com/PixarAnimationStudios/OpenTimelineIO/pull/914 * Avoid exporting build tree libraries by @rogernelson in https://github.com/PixarAnimationStudios/OpenTimelineIO/pull/911 * Issue 912: cmx_3600 adapter incorrectly processing three-clip transitions by @JoshBurnell in https://github.com/PixarAnimationStudios/OpenTimelineIO/pull/919 * Add pybind11 subdirectory only if building python bindings by @KarthikRIyer in https://github.com/PixarAnimationStudios/OpenTimelineIO/pull/927 * Add an env var to disable pkg_resources by @ssteinbach in https://github.com/PixarAnimationStudios/OpenTimelineIO/pull/928 * Specify pyaaf2 requirement as a minimum version by @AWhetter in https://github.com/PixarAnimationStudios/OpenTimelineIO/pull/906 * Add dependabot by @ssteinbach in https://github.com/PixarAnimationStudios/OpenTimelineIO/pull/931 * add interval field to dependabot yaml by @ssteinbach in https://github.com/PixarAnimationStudios/OpenTimelineIO/pull/933 * Removed inadvertent unicode char by @avrata in https://github.com/PixarAnimationStudios/OpenTimelineIO/pull/939 * RV adapter fix: don't require having access to OTIO from python interpreter in rv by @ssteinbach in https://github.com/PixarAnimationStudios/OpenTimelineIO/pull/941 * Ascii doc fix by @avrata in https://github.com/PixarAnimationStudios/OpenTimelineIO/pull/947 * Add environment variable to skip doc tes by @ssteinbach in https://github.com/PixarAnimationStudios/OpenTimelineIO/pull/944 * Localize test otiod/z test data to sample_data directory by @avrata in https://github.com/PixarAnimationStudios/OpenTimelineIO/pull/942 * Use Pybind11's find python tool to correctly locate python install information by @Tilix4 in https://github.com/PixarAnimationStudios/OpenTimelineIO/pull/950 * Add Try/Except around imporlib.reload for unit test to run in python2.7 as well as 3.4+ by @avrata in https://github.com/PixarAnimationStudios/OpenTimelineIO/pull/949 * install mock on CI builds for python 2.7 by @ssteinbach in https://github.com/PixarAnimationStudios/OpenTimelineIO/pull/951 * Refactor setup.py to build and stage into temp area for setup.py to install from by @reinecke in https://github.com/PixarAnimationStudios/OpenTimelineIO/pull/956 * uncomment github actions dependabot config by @ssteinbach in https://github.com/PixarAnimationStudios/OpenTimelineIO/pull/958 * Only load a manifest if it has not been loaded by @ssteinbach in https://github.com/PixarAnimationStudios/OpenTimelineIO/pull/945 * make Timeline::set_tracks(null_ptr) create a new Stack to fix crash by @meshula in https://github.com/PixarAnimationStudios/OpenTimelineIO/pull/961 * Fix typo in setup.py that prevents conda skeleton from parsing setup.py by @vvzen in https://github.com/PixarAnimationStudios/OpenTimelineIO/pull/962 * Add support for multiple timecode objects in an AAF by @stefanschulze in https://github.com/PixarAnimationStudios/OpenTimelineIO/pull/966 * Add C++ convenience wrapper for .value on the retainer class by @darbyjohnston in https://github.com/PixarAnimationStudios/OpenTimelineIO/pull/923 * do not upload code coverage statistics if the PR is opened by dependabot by @ssteinbach in https://github.com/PixarAnimationStudios/OpenTimelineIO/pull/971 * Force pybind to use same python as otio by @rogernelson in https://github.com/PixarAnimationStudios/OpenTimelineIO/pull/986 * C++ binding Docstring Update by @Viraj-Rana008 in https://github.com/PixarAnimationStudios/OpenTimelineIO/pull/983 * Add C++ implementation of each_child()/each_clip() by @darbyjohnston in https://github.com/PixarAnimationStudios/OpenTimelineIO/pull/926 * Cxx conform example by @darbyjohnston in https://github.com/PixarAnimationStudios/OpenTimelineIO/pull/995 * add example timeline builder by @ssteinbach in https://github.com/PixarAnimationStudios/OpenTimelineIO/pull/993 * Remove CXX sdk in Python site-packages by @rogernelson in https://github.com/PixarAnimationStudios/OpenTimelineIO/pull/1004 * Python build: Use CMake FindPython by @JeanChristopheMorinPerso in https://github.com/PixarAnimationStudios/OpenTimelineIO/pull/1000 * Replace description-file setuptools metadata key with description_file in setup.cfg by @JeanChristopheMorinPerso in https://github.com/PixarAnimationStudios/OpenTimelineIO/pull/1017 * Add Makefile target "make format" by @KarthikRIyer in https://github.com/PixarAnimationStudios/OpenTimelineIO/pull/1023 * Use const references when catching exceptions by @darbyjohnston in https://github.com/PixarAnimationStudios/OpenTimelineIO/pull/1034 * Remove unused source file "main.cpp" by @darbyjohnston in https://github.com/PixarAnimationStudios/OpenTimelineIO/pull/1036 * Added linguist override to detect .otio files for JSON highlighting by @reinecke in https://github.com/PixarAnimationStudios/OpenTimelineIO/pull/1032 * update outdated python module paths in docs by @ssteinbach in https://github.com/PixarAnimationStudios/OpenTimelineIO/pull/1052 * Upgrade to C++14 by @darbyjohnston in https://github.com/PixarAnimationStudios/OpenTimelineIO/pull
This release introduces the ImageSequenceReference schema to OTIO. It adds support for media references that point at sets of files on disk, for example, the rendered EXR frames for a shot. This work was contributed by @apetrynet and @reinecke. It includes RV adapter support. Additionally, we're starting a restructure of some of the core math libraries built around a more consistent mathematical framework. The first of these changes is shifting to predicates based on Allen's Interval Algebra [https://en.wikipedia.org/wiki/Allen%27s_interval_algebra] . Big things: - ImageSequenceReference (@apetrynet and @reinecke) main: #602 #722 w/ #783 #751 - Allen Interval Algebra predicates (@KarthikRIyer) #697 - AAF Reader metadata support #739 - Post adapter write hook added (@apetrynet) #730 - RV native plugin (so that you can read OTIO files from inside RV rather than convert via an adapter to .rvsession files) @avrata and @apetrynet #637 Small things: - Reverse and dissolve fixes, Wipe transition support was added to the CMX EDL adapter #763 #757 #687 - Fixing up some bugs and algorithms in `rationalTime.cpp` #755 #721 #692 (@reinecke and @KarthikRIyer) - Tox changed and our setup.cfg was altered to conform with the new standard - otioview enhancement: double click to see full track name (@KarthikRIyer) #690 - conform.py example now prints support file suffixes (@thebigsasha) #676 - FCP7 adapter bug fixes #674 - xges adapter markers and effects support (@hwilkes-igalia) #609 - Fix bugs in the kdenlive adapter (@vpinon) #714 - bumped pin of PyAAF2 version to 1.4.0 #738 - bug fixes in Markers #740 and #592 (@elabrosseRodeofx) Project related things: - added issue templates to the github repo #768 - cleaned up developer quickstart documentation #717 - documentation was broken on read the docs, this was fixed #715
Includes PR #669, which fixes issues in the cmake build system reported on windows machines. As always, please let us know if you see any further issues and alert us! Thanks!