Skip to content

Beta 15 - September 2022

Pre-release
Pre-release
Compare
Choose a tag to compare
@ssteinbach ssteinbach released this 26 Sep 19:15
· 124 commits to main since this release
3703ac7

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:

❯ 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++:

#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:

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:
  • AAF Adapter:
    • AAF Adapter: support for reading markers by @timlehr in #1019
    • AAF adapter: added support for keyframed properties by @timlehr in #1151
  • Merge spatial_coordinates to main by @rogernelson in #1219
  • Media Multi-Reference Feature by @rogernelson in #1241
  • Schema Downgrading System by @ssteinbach in #1387
  • otiotool command line utility by @jminor in #1375

Breaking Changes

  • Fixes #1188 BREAKING CHANGE: change "effect" argument to Gap constructor to "effects" by @visajshah in #1292
  • Clip.2 schema as noted above

Other Changes

Dependency Version Bumps

New Contributors

Full Changelog: v0.14...v0.15