Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Release v0.15.0 changes #1403

Merged
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions .clang-format
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,9 @@ AlignConsecutiveDeclarations: true
AlignEscapedNewlines: Right
AlignOperands: true
AlignTrailingComments: true
# AllowAllArgumentsOnNextLine: true
AllowAllParametersOfDeclarationOnNextLine: true
# AllowAllConstructorInitializersOnNextLine: true
AllowAllArgumentsOnNextLine: false
AllowAllParametersOfDeclarationOnNextLine: false
AllowAllConstructorInitializersOnNextLine: false
AllowShortBlocksOnASingleLine: false
AllowShortCaseLabelsOnASingleLine: false
AllowShortFunctionsOnASingleLine: InlineOnly
Expand Down Expand Up @@ -39,7 +39,7 @@ BraceWrapping:
SplitEmptyFunction: false
SplitEmptyRecord: false
SplitEmptyNamespace: false
BreakBeforeBinaryOperators: None
BreakBeforeBinaryOperators: NonAssignment
BreakBeforeBraces: Custom
BreakBeforeInheritanceComma: false
BreakInheritanceList: BeforeColon
Expand Down
26 changes: 13 additions & 13 deletions .github/workflows/python-package.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ name: OpenTimelineIO
# for configuring which build will be a C++ coverage build / coverage report
env:
GH_COV_PY: 3.7
GH_COV_OS: ubuntu-latest
GH_COV_OS: ubuntu-20.04
GH_DEPENDABOT: dependabot

on:
Expand All @@ -24,15 +24,15 @@ jobs:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest, windows-latest, macos-latest]
os: [ubuntu-20.04, windows-2022, macos-11]
# Unfortunately the CMake test target is OS dependent so we set it as
# a variable here.
include:
- os: ubuntu-latest
- os: ubuntu-20.04
OTIO_TEST_TARGET: test
- os: windows-latest
- os: windows-2022
OTIO_TEST_TARGET: RUN_TESTS
- os: macos-latest
- os: macos-11
OTIO_TEST_TARGET: test

env:
Expand Down Expand Up @@ -86,13 +86,13 @@ jobs:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest, windows-latest, macos-latest]
os: [ubuntu-20.04, windows-2022, macos-11]
python-version: ['2.7', '3.7', '3.8', '3.9', '3.10']
include:
- { os: ubuntu-latest, shell: bash }
- { os: macos-latest, shell: bash }
- { os: windows-latest, shell: pwsh }
- { os: windows-latest, shell: msys2, python-version: 'mingw64' }
- { os: ubuntu-20.04, shell: bash }
- { os: macos-11, shell: bash }
- { os: windows-2022, shell: pwsh }
- { os: windows-2022, shell: msys2, python-version: 'mingw64' }

defaults:
run:
Expand Down Expand Up @@ -129,7 +129,7 @@ jobs:
sudo apt-get install lcov
- name: Install python build dependencies
run: |
python -m pip install --upgrade pip setuptools wheel flake8>=3.5 check-manifest
python -m pip install --upgrade pip setuptools wheel "flake8>=3.5" check-manifest
ssteinbach marked this conversation as resolved.
Show resolved Hide resolved
- name: install mock for python 2.7 tests only
if: matrix.python-version == 2.7
run: python -m pip install --upgrade mock
Expand Down Expand Up @@ -158,7 +158,7 @@ jobs:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest, windows-latest, macos-latest]
os: [ubuntu-20.04, windows-2022, macos-11]
python-build: ['cp27*', 'cp37*', 'cp38*', 'cp39*', 'cp310*']
steps:
- uses: actions/checkout@v3
Expand Down Expand Up @@ -206,7 +206,7 @@ jobs:

package_sdist:
needs: py_build_test
runs-on: ubuntu-latest
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v3
with:
Expand Down
2 changes: 1 addition & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ cmake_minimum_required(VERSION 3.18.2)
# TODO: read this information from a configuration file, here, and in setup.py

set(OTIO_VERSION_MAJOR "0")
set(OTIO_VERSION_MINOR "14")
set(OTIO_VERSION_MINOR "15")
set(OTIO_VERSION_PATCH "0")
set(OTIO_VERSION ${OTIO_VERSION_MAJOR}.${OTIO_VERSION_MINOR}.${OTIO_VERSION_PATCH})

Expand Down
15 changes: 13 additions & 2 deletions CONTRIBUTORS.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,25 +5,29 @@ If you know of anyone missing from this list, please contact us: https://lists.a
* Aditya Rana ([Viraj-Rana008](https://github.com/Viraj-Rana008))
* Alex Schworer ([schworer](https://github.com/schworer))
* Alex Widener ([boredstiff](https://github.com/boredstiff))
* Andrew Moore ([andrewmoore-nz](https://github.com/andrewmoore-nz))
* Ashley Whetter ([AWhetter](https://github.com/AWhetter))
* Bas Hesen ([bashesenaxis](https://github.com/bashesenaxis))
* Bonnie Tai ([bonpix](https://github.com/bonpix))
* Cameron Kerr ([camkerr](https://github.com/camkerr))
* Daniel Flehner Heen ([apetrynet](https://github.com/apetrynet))
* Darby Johnston ([darbyjohnston](https://github.com/darbyjohnston))
* Darwyn Peachey ([peachey](https://github.com/peachey))
* David Baraff ([davidbaraff](https://github.com/davidbaraff))
* Ed Caspersen ([repsac](https://github.com/repsac))
* Emile Labrosse ([elabrosseRodeofx](https://github.com/elabrosseRodeofx))
* Eric ([eric-with-a-c](https://github.com/eric-with-a-c))
* Eric Desruisseaux ([desruie](https://github.com/desruie))
* Eric Reinecke ([reinecke](https://github.com/reinecke))
* Félix Bourbonnais ([BadSingleton](https://github.com/BadSingleton))
* Félix David ([Tilix4](https://github.com/Tilix4))
* Flavian Liger ([flavienliger](https://github.com/flavienliger))
* Fredrik Brännbacka ([smaragden](https://github.com/smaragden))
* Freeson Wang ([freesonluxo](https://github.com/freesonluxo))
* Félix Bourbonnais ([BadSingleton](https://github.com/BadSingleton))
* Félix David ([Tilix4](https://github.com/Tilix4))
* Henry Wilkes ([hwilkes-igalia](https://github.com/hwilkes-igalia))
* Jean-Christophe Morin ([JeanChristopheMorinPerso](https://github.com/JeanChristopheMorinPerso))
* Jeffrey Barendse ([IOjeffrey](https://github.com/IOjeffrey))
* jlskuz ([jlskuz](https://github.com/jlskuz))
* John Mertic ([jmertic](https://github.com/jmertic))
* Jon Morley ([rogergodspeed](https://github.com/rogergodspeed))
* Jonathan Hearn ([splidje](https://github.com/splidje))
Expand All @@ -32,11 +36,14 @@ If you know of anyone missing from this list, please contact us: https://lists.a
* Julian Yu-Chung Chen ([jchen9](https://github.com/jchen9))
* Karthik Ramesh Iyer ([KarthikRIyer](https://github.com/KarthikRIyer))
* Laura Savidge ([lsavidge](https://github.com/lsavidge))
* Mark Reid ([markreidvfx](https://github.com/markreidvfx))
* Matt Johnson ([mattyjams](https://github.com/mattyjams))
* Michael Dolan ([michdolan](https://github.com/michdolan))
* Michael Jefferies ([michaeljefferies](https://github.com/michaeljefferies))
* Mike Koetter ([mikekoetter](https://github.com/mikekoetter))
* Mike Mahony ([mikemahony](https://github.com/mikemahony))
* Nick Porcino ([meshula](https://github.com/meshula))
* Pedro Labonia ([pedrolabonia](https://github.com/pedrolabonia))
* Robyn Rindge ([avrata](https://github.com/avrata))
* Roger Nelson ([rogernelson](https://github.com/rogernelson))
* Sasha Aleshchenko ([TheBigSasha](https://github.com/TheBigSasha))
Expand All @@ -46,10 +53,14 @@ If you know of anyone missing from this list, please contact us: https://lists.a
* Simran Spiller ([Simran-B](https://github.com/Simran-B))
* Stefan Schulze ([stefanschulze](https://github.com/stefanschulze))
* Stephan Steinbach ([ssteinbach](https://github.com/ssteinbach))
* Stéphane Deverly ([gplsteph](https://github.com/gplsteph))
* Thibault Saunier ([thiblahute](https://github.com/thiblahute))
* Thierry Dervieux-Lecocq ([tdervieux](https://github.com/tdervieux))
* ThomasWilshaw ([ThomasWilshaw](https://github.com/ThomasWilshaw))
* Tim Lehr ([timlehr](https://github.com/timlehr))
* Troy James Sobotka ([sobotka](https://github.com/sobotka))
* Tuan Truong ([tuan-huy-truong](https://github.com/tuan-huy-truong))
* Utsab Saha ([utsab](https://github.com/utsab))
* Valerio Viperino ([vvzen](https://github.com/vvzen))
* Vincent Pinon ([vpinon](https://github.com/vpinon))
* Visaj Nirav Shah ([visajshah](https://github.com/visajshah))
89 changes: 62 additions & 27 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,23 +3,23 @@ OpenTimelineIO
[![OpenTimelineIO](docs/_static/[email protected])](http://opentimeline.io)
==============

[![Supported VFX Platform Versions](https://img.shields.io/badge/vfx%20platform-2018--2021-lightgrey.svg)](http://www.vfxplatform.com/)
[![Supported VFX Platform Versions](https://img.shields.io/badge/vfx%20platform-2019--2022-lightgrey.svg)](http://www.vfxplatform.com/)
![Supported Versions](https://img.shields.io/badge/python-2.7%2C%203.7%2C%203.8%2C%203.9%2C%203.10-blue)
[![Build Status](https://github.com/AcademySoftwareFoundation/OpenTimelineIO/actions/workflows/python-package.yml/badge.svg)](https://github.com/AcademySoftwareFoundation/OpenTimelineIO/actions/workflows/python-package.yml)
[![codecov](https://codecov.io/gh/AcademySoftwareFoundation/OpenTimelineIO/branch/main/graph/badge.svg)](https://codecov.io/gh/AcademySoftwareFoundation/OpenTimelineIO)
[![docs](https://readthedocs.org/projects/opentimelineio/badge/?version=latest)](https://opentimelineio.readthedocs.io/en/latest/index.html)
[![CII Best Practices](https://bestpractices.coreinfrastructure.org/projects/2288/badge)](https://bestpractices.coreinfrastructure.org/projects/2288)

Main web site: http://opentimeline.io/
Links
-----

Documentation: https://opentimelineio.readthedocs.io/

GitHub: https://github.com/AcademySoftwareFoundation/OpenTimelineIO

Discussion group: https://lists.aswf.io/g/otio-discussion

Slack channel: https://academysoftwarefdn.slack.com/messages/CMQ9J4BQC
To join, create an account here first: https://slack.aswf.io/
* Main web site: http://opentimeline.io/
* Documentation: https://opentimelineio.readthedocs.io/
* GitHub: https://github.com/AcademySoftwareFoundation/OpenTimelineIO
* [Discussion group](https://lists.aswf.io/g/otio-discussion)
* [Slack channel](https://academysoftwarefdn.slack.com/messages/CMQ9J4BQC)
* To join, create an account here first: https://slack.aswf.io/
* [Presentations](https://github.com/AcademySoftwareFoundation/OpenTimelineIO/wiki/Presentations)

PUBLIC BETA NOTICE
------------------
Expand All @@ -33,17 +33,19 @@ Overview
--------

OpenTimelineIO is an interchange format and API for editorial cut information.
OTIO is not a container format for media, rather it contains information about
the order and length of cuts and references to external media.
OTIO contains information about the order and length of cuts and
references to external media. It is not however, a container format for media.

OTIO includes both a file format and an API for manipulating that format. It
also includes a plugin architecture for writing adapters to convert
from/to existing editorial timeline formats. It also implements a dependency-
less library for dealing strictly with time, `opentime`.
For integration with applications, the core OTIO library is implemented in C++
and provides an in-memory data model, as well as library functions for
interpreting, manipulating, and serializing that data model. Within the core is
a dependency-less library for dealing strictly with time, `opentime`.

You can provide adapters for your video editing tool or pipeline as needed.
Each adapter allows for import/export between that proprietary tool and the
OpenTimelineIO format.
The project also supports an official python binding, which is intended to be
an idiomatic and ergonomic binding for python developers. The python binding
includes a plugin system which supports a number of different types of plugins,
most notably adapters, which can be used to read and write legacy formats into
the OTIO data model.

Documentation
--------------
Expand All @@ -52,24 +54,25 @@ Documentation, including quick start, architecture, use cases, API docs, and muc
Supported VFX Platforms
-----------------
The current release supports:
- VFX platform 2021, 2020, 2019, 2018
- VFX platform 2022, 2021, 2020, 2019
- Python 2.7 - 3.10

For more information on our vfxplatform support policy: [Contribution Guidelines Documentation Page](https://opentimelineio.readthedocs.io/en/latest/tutorials/contributing.html)
For more information on the vfxplatform: [VFX Platform Homepage](https://vfxplatform.com)

Adapters
--------
Adapter Plugins
---------------

OpenTimelineIO supports, or plans to support, conversion adapters for many
existing file formats, such as Final Cut Pro XML, AAF, CMX 3600 EDL, etc.
To provide interoperability with other file formats or applications lacking a
native integration, the opentimelineio community has built a number of python
adapter plugins. This includes Final Cut Pro XML, AAF, CMX 3600 EDL, and more.

See: https://opentimelineio.readthedocs.io/en/latest/tutorials/adapters.html
For more information about this, including supported formats, see: https://opentimelineio.readthedocs.io/en/latest/tutorials/adapters.html

Other Plugins
-------------

OTIO also supports several other kinds of plugins, for more information see:
The OTIO python bindings also support several other kinds of plugins, for more information see:

* [Media Linkers](https://opentimelineio.readthedocs.io/en/latest/tutorials/write-a-media-linker.html) - Generate media references to local media according to your local conventions.
* [HookScripts](https://opentimelineio.readthedocs.io/en/latest/tutorials/write-a-hookscript.html) - Scripts that can run at various points during OTIO execution (_ie_ before the media linker)
Expand All @@ -88,11 +91,43 @@ For detailed installation instructions and notes on how to run the included view
Example Usage
-------------

C++:

```c++
#include <iostream>

#include "opentimelineio/timeline.h"

namespace otio = opentimelineio::OPENTIMELINEIO_VERSION;

void
main()
{
otio::ErrorStatus err;
otio::SerializableObject::Retainer<otio::Timeline> tl(
dynamic_cast<otio::Timeline*>(
otio::Timeline::from_json_file("taco.otio", &err)
)
);
const std::vector<otio::SerializableObject::Retainer<otio::Clip>> clips = (
tl->clip_if()
);
for (const auto& cl : clips)
{
otio::RationalTime dur = cl->duration();
std::cout << "Name: " << cl->name() << " [";
std::cout << dur.value() << "/" << dur.rate() << "]" << std::endl;
}
}
```

Python:

```python
import opentimelineio as otio

timeline = otio.adapters.read_from_file("foo.aaf")
for clip in timeline.each_clip():
for clip in timeline.clip_if():
print(clip.name, clip.duration())
```

Expand Down
2 changes: 1 addition & 1 deletion setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -201,7 +201,7 @@ def cmake_install(self):

# Metadata that gets stamped into the __init__ files during the build phase.
PROJECT_METADATA = {
"version": "0.15.0.dev1",
"version": "0.15.0",
"author": 'Contributors to the OpenTimelineIO project',
"author_email": '[email protected]',
"license": 'Modified Apache 2.0 License',
Expand Down
Loading