Open Source API and interchange format for editorial timeline information.

Overview

OpenTimelineIO

OpenTimelineIO

Supported VFX Platform Versions Supported Versions Build Status codecov docs

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

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

GitHub: https://github.com/PixarAnimationStudios/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/

PUBLIC BETA NOTICE

OpenTimelineIO is currently in Public Beta. That means that it may be missing some essential features and there are large changes planned. During this phase we actively encourage you to provide feedback, requests, comments, and/or contributions.

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 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.

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.

Documentation

Documentation, including quick start, architecture, use cases, API docs, and much more, is available on ReadTheDocs

Supported VFX Platforms

The current release supports:

  • VFX platform 2021, 2020, 2019, 2018
  • Python 2.7 - 3.9
  • Notice that Python 2.7 is deprecated & we plan to drop it in OTIO release 0.15

For more information on our vfxplatform support policy: Contribution Guidelines Documentation Page For more information on the vfxplatform: VFX Platform Homepage

Adapters

OpenTimelineIO supports, or plans to support, conversion adapters for many existing file formats, such as Final Cut Pro XML, AAF, CMX 3600 EDL, etc.

See: https://opentimelineio.readthedocs.io/en/latest/tutorials/adapters.html

Other Plugins

OTIO also supports several other kinds of plugins, for more information see:

  • Media Linkers - Generate media references to local media according to your local conventions.
  • HookScripts - Scripts that can run at various points during OTIO execution (ie before the media linker)
  • SchemaDefs - Define OTIO schemas.

Installing / Quick-Start

The python-wrapped version of OpenTimelineIO is publicly available via pypy. You can install OpenTimelineIO via:

python -m pip install opentimelineio

For detailed installation instructions and notes on how to run the included viewer program, see: https://opentimelineio.readthedocs.io/en/latest/tutorials/quickstart.html

Example Usage

import opentimelineio as otio

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

There are more code examples here: https://github.com/PixarAnimationStudios/OpenTimelineIO/tree/main/examples

Also, looking through the unit tests is a great way to see what OTIO can do: https://github.com/PixarAnimationStudios/OpenTimelineIO/tree/main/tests

OTIO includes a viewer program as well (see the quickstart section for instructions on installing it):

OTIO View Screenshot

Developing

If you want to contribute to the project, please see: https://opentimelineio.readthedocs.io/en/latest/tutorials/contributing.html

You can get the latest development version via:

git clone [email protected]:PixarAnimationStudios/OpenTimelineIO.git --recursive

You can install development dependencies with python -m pip install .[dev]

You can also install the PySide2 dependency with python -m pip install .[view]

You may need to escape the [ depending on your shell, \[view\] .

Currently the code base is written against python 2.7, 3.7, 3.8 and 3.9, in keeping with the pep8 style. We ask that before developers submit pull request, they:

  • run make test -- to ensure that none of the unit tests were broken
  • run make lint -- to ensure that coding conventions conform to pep8
  • run make coverage -- to detect code which isn't covered

PEP8: https://www.python.org/dev/peps/pep-0008/

For advanced developers, arguments can be passed to CMake through the pip commandline by using the CMAKE_ARGS environment variable.

*nix Example:

env CMAKE_ARGS="-DCMAKE_VAR=VALUE1 -DCMAKE_VAR_2=VALUE2" pip install .

Additionaly, to reproduce CI failures regarding the file manifest, run: make manifest locally to run the python check-manifest program.

C++ Coverage Builds

To enable C++ code coverage reporting via gcov/lcov for builds, set the following environment variables:

  • OTIO_CXX_COVERAGE_BUILD=ON
  • OTIO_CXX_BUILD_TMP_DIR=path/to/build/dir

When building/installing through pip/setup.py, these variables must be set before running the install command (python -m pip install . for example).

License

OpenTimelineIO is open source software. Please see the LICENSE.txt for details.

Nothing in the license file or this project grants any right to use Pixar or any other contributor’s trade names, trademarks, service marks, or product names.

Contact

For more information, please visit http://opentimeline.io/ or https://github.com/PixarAnimationStudios/OpenTimelineIO or join our discussion forum: https://lists.aswf.io/g/otio-discussion

Comments
  • Create Java Bindings

    Create Java Bindings

    #694

    • Initialized java bindings.
    • Partially implemented RationalTime.

    Memory management needs some discussion. One way would be to delete the object in the finalize method of the class and the other would be to provide the method to delete the object and let the end user handle everything.

    I'm using finalize to delete, for now.

    finalize is deprecated as of Java 9. It can cause problems as mentioned here:

    One problem is that, because the JVM only controls memory and resources within the Java heap, it can’t take into account any resources allocated in the native layer when determining which Java objects it needs to garbage-collect: our Java objects will seem smaller than they effectively are. So it might not finalize our objects quickly enough to prevent memory pressure.

    A second problem is that we can’t guarantee which thread the finalize method will be called from. It’s quite important that our C++ object is deleted from the same thread that allocated it.

    and here.

    opened by KarthikRIyer 131
  • Implement OTIO to SVG Adapter

    Implement OTIO to SVG Adapter

    I'd like to try the issue #519 as my qualifying PR for GSoC 2020.

    Here's the initial code for the OTIO to SVG adapter. To make the usage easy and dependency free, I've written a simple SVG renderer in the adapter itself. I know that there's a lot of improvement to be done but I just wanted to get a simple prototype working before going ahead.

    @jminor @ssteinbach I'd like to hear your thought on this. As mentioned in the issue, I think this needs some discussion. At the moment I'm just drawing stuff from the 1st track. How do we want to show multiple tracks? In case there are gaps, should we just leave a blank space or some placeholder depicting a gap? I'm able to generate images like this at the moment. Here's the svg version: https://drive.google.com/file/d/1Tzth0D-YVrfA05xxvMD58VvvWgu4xDnS/view?usp=sharing

    test

    One more question. How can I test the contrib adapters? The __init__.py there is empty. Should I use the same __init__.py code from the otio.adpaters module? At the moment I've been adding the code to the main adapters module and moving it to the contrib module before committing.

    Also, did you get a chance to go through my message on Slack? I have some queries about the projects, that I wanted to get clarified before I can attempt to build a GSoC proposal.

    experimental 
    opened by KarthikRIyer 59
  • Windows: Import error after pip install

    Windows: Import error after pip install

    Bug Report

    -- edit: removed the checkboxes so that GitHub is no longer confused about open tasks --

    • Incorrect functionality

    Describe the bug here. If it is a build issue, please note whether the issue was encountered via cmake, pip, or tox.

    To Reproduce

    1. Operating System: Windows 10
    2. Python 3.7.9, CMake installed
    3. Example snippet that demonstrates the issue:
    ImportError: DLL load failed: The specified module could not be found.
    
    1. OpenTimelineIO 0.13.0

    Expected Behavior

    The import statement to work correctly.

    Logs

    Traceback (most recent call last):
      File "C:\Users\User\AppData\Local\Programs\Python\Python37\lib\runpy.py", line 193, in _run_module_as_main
        "__main__", mod_spec)
      File "C:\Users\User\AppData\Local\Programs\Python\Python37\lib\runpy.py", line 85, in _run_code
        exec(code, run_globals)
      File "c:\Users\User\.vscode\extensions\ms-python.python-2020.9.114305\pythonFiles\lib\python\debugpy\__main__.py", line 45, in <module>
        cli.main()
      File "c:\Users\User\.vscode\extensions\ms-python.python-2020.9.114305\pythonFiles\lib\python\debugpy/..\debugpy\server\cli.py", line 430, in main
        run()
      File "c:\Users\User\.vscode\extensions\ms-python.python-2020.9.114305\pythonFiles\lib\python\debugpy/..\debugpy\server\cli.py", line 267, in run_file
        runpy.run_path(options.target, run_name=compat.force_str("__main__"))
      File "C:\Users\User\AppData\Local\Programs\Python\Python37\lib\runpy.py", line 263, in run_path
        pkg_name=pkg_name, script_name=fname)
      File "C:\Users\User\AppData\Local\Programs\Python\Python37\lib\runpy.py", line 96, in _run_module_code
        mod_name, mod_spec, pkg_name, script_name)
      File "C:\Users\User\AppData\Local\Programs\Python\Python37\lib\runpy.py", line 85, in _run_code
        exec(code, run_globals)
      File "E:\Logiciels\Stax\Dev\stax\test_otio.py", line 4, in <module>
        import opentimelineio as otio
      File "e:\Logiciels\Stax\Dev\stax\.venv\lib\site-packages\opentimelineio\__init__.py", line 35, in <module>
        from . import (
      File "e:\Logiciels\Stax\Dev\stax\.venv\lib\site-packages\opentimelineio\opentime.py", line 1, in <module>
        from . _opentime import ( # noqa
    ImportError: DLL load failed: The specified module could not be found.
    
    build windows 
    opened by Tilix4 44
  • Can't install with pip (on windows, in blender)

    Can't install with pip (on windows, in blender)

    This is the error report(cmake is already installed):

    C:\Users\user\Documents\build_windows_x64_vc16_Release\bin\Release\2.83\python\bin>python -m pip install opentimelineio
    Collecting opentimelineio
      Using cached OpenTimelineIO-0.12.0.tar.gz (2.0 MB)
    Requirement already satisfied: pyaaf2==1.2.0 in c:\users\user\documents\build_windows_x64_vc16_release\bin\release\2.83\python\lib\site-packages (from opentimelineio) (1.2.0)
    Installing collected packages: opentimelineio
        Running setup.py install for opentimelineio ... error
        ERROR: Command errored out with exit status 1:
         command: 'C:\Users\user\Documents\build_windows_x64_vc16_Release\bin\Release\2.83\python\bin\python.exe' -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'C:\\Users\\user\\AppData\\Local\\Temp\\pip-install-w6q_74kv\\opentimelineio\\setup.py'"'"'; __file__='"'"'C:\\Users\\user\\AppData\\Local\\Temp\\pip-install-w6q_74kv\\opentimelineio\\setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record 'C:\Users\user\AppData\Local\Temp\pip-record-qe4za2pc\install-record.txt' --single-version-externally-managed --compile --install-headers 'C:\Users\user\Documents\build_windows_x64_vc16_Release\bin\Release\2.83\python\Include\opentimelineio'
             cwd: C:\Users\user\AppData\Local\Temp\pip-install-w6q_74kv\opentimelineio\
        Complete output (184 lines):
        running install
        running build
        running build_py
        creating build
        creating build\lib.win-amd64-3.7
        creating build\lib.win-amd64-3.7\opentimelineio
        copying src\py-opentimelineio\opentimelineio\exceptions.py -> build\lib.win-amd64-3.7\opentimelineio
        copying src\py-opentimelineio\opentimelineio\hooks.py -> build\lib.win-amd64-3.7\opentimelineio
        copying src\py-opentimelineio\opentimelineio\media_linker.py -> build\lib.win-amd64-3.7\opentimelineio
        copying src\py-opentimelineio\opentimelineio\opentime.py -> build\lib.win-amd64-3.7\opentimelineio
        copying src\py-opentimelineio\opentimelineio\test_utils.py -> build\lib.win-amd64-3.7\opentimelineio
        copying src\py-opentimelineio\opentimelineio\__init__.py -> build\lib.win-amd64-3.7\opentimelineio
        creating build\lib.win-amd64-3.7\opentimelineio\adapters
        copying src\py-opentimelineio\opentimelineio\adapters\adapter.py -> build\lib.win-amd64-3.7\opentimelineio\adapters
        copying src\py-opentimelineio\opentimelineio\adapters\cmx_3600.py -> build\lib.win-amd64-3.7\opentimelineio\adapters
        copying src\py-opentimelineio\opentimelineio\adapters\fcp_xml.py -> build\lib.win-amd64-3.7\opentimelineio\adapters
        copying src\py-opentimelineio\opentimelineio\adapters\otio_json.py -> build\lib.win-amd64-3.7\opentimelineio\adapters
        copying src\py-opentimelineio\opentimelineio\adapters\__init__.py -> build\lib.win-amd64-3.7\opentimelineio\adapters
        creating build\lib.win-amd64-3.7\opentimelineio\algorithms
        copying src\py-opentimelineio\opentimelineio\algorithms\filter.py -> build\lib.win-amd64-3.7\opentimelineio\algorithms
        copying src\py-opentimelineio\opentimelineio\algorithms\stack_algo.py -> build\lib.win-amd64-3.7\opentimelineio\algorithms
        copying src\py-opentimelineio\opentimelineio\algorithms\timeline_algo.py -> build\lib.win-amd64-3.7\opentimelineio\algorithms
        copying src\py-opentimelineio\opentimelineio\algorithms\track_algo.py -> build\lib.win-amd64-3.7\opentimelineio\algorithms
        copying src\py-opentimelineio\opentimelineio\algorithms\__init__.py -> build\lib.win-amd64-3.7\opentimelineio\algorithms
        creating build\lib.win-amd64-3.7\opentimelineio\console
        copying src\py-opentimelineio\opentimelineio\console\autogen_plugin_documentation.py -> build\lib.win-amd64-3.7\opentimelineio\console
        copying src\py-opentimelineio\opentimelineio\console\autogen_serialized_datamodel.py -> build\lib.win-amd64-3.7\opentimelineio\console
        copying src\py-opentimelineio\opentimelineio\console\console_utils.py -> build\lib.win-amd64-3.7\opentimelineio\console
        copying src\py-opentimelineio\opentimelineio\console\otiocat.py -> build\lib.win-amd64-3.7\opentimelineio\console
        copying src\py-opentimelineio\opentimelineio\console\otioconvert.py -> build\lib.win-amd64-3.7\opentimelineio\console
        copying src\py-opentimelineio\opentimelineio\console\otiopluginfo.py -> build\lib.win-amd64-3.7\opentimelineio\console
        copying src\py-opentimelineio\opentimelineio\console\otiostat.py -> build\lib.win-amd64-3.7\opentimelineio\console
        copying src\py-opentimelineio\opentimelineio\console\__init__.py -> build\lib.win-amd64-3.7\opentimelineio\console
        creating build\lib.win-amd64-3.7\opentimelineio\core
        copying src\py-opentimelineio\opentimelineio\core\composable.py -> build\lib.win-amd64-3.7\opentimelineio\core
        copying src\py-opentimelineio\opentimelineio\core\composition.py -> build\lib.win-amd64-3.7\opentimelineio\core
        copying src\py-opentimelineio\opentimelineio\core\item.py -> build\lib.win-amd64-3.7\opentimelineio\core
        copying src\py-opentimelineio\opentimelineio\core\mediaReference.py -> build\lib.win-amd64-3.7\opentimelineio\core
        copying src\py-opentimelineio\opentimelineio\core\_core_utils.py -> build\lib.win-amd64-3.7\opentimelineio\core
        copying src\py-opentimelineio\opentimelineio\core\__init__.py -> build\lib.win-amd64-3.7\opentimelineio\core
        creating build\lib.win-amd64-3.7\opentimelineio\plugins
        copying src\py-opentimelineio\opentimelineio\plugins\manifest.py -> build\lib.win-amd64-3.7\opentimelineio\plugins
        copying src\py-opentimelineio\opentimelineio\plugins\python_plugin.py -> build\lib.win-amd64-3.7\opentimelineio\plugins
        copying src\py-opentimelineio\opentimelineio\plugins\__init__.py -> build\lib.win-amd64-3.7\opentimelineio\plugins
        creating build\lib.win-amd64-3.7\opentimelineio\schema
        copying src\py-opentimelineio\opentimelineio\schema\clip.py -> build\lib.win-amd64-3.7\opentimelineio\schema
        copying src\py-opentimelineio\opentimelineio\schema\effect.py -> build\lib.win-amd64-3.7\opentimelineio\schema
        copying src\py-opentimelineio\opentimelineio\schema\external_reference.py -> build\lib.win-amd64-3.7\opentimelineio\schema
        copying src\py-opentimelineio\opentimelineio\schema\foo.py -> build\lib.win-amd64-3.7\opentimelineio\schema
        copying src\py-opentimelineio\opentimelineio\schema\generator_reference.py -> build\lib.win-amd64-3.7\opentimelineio\schema
        copying src\py-opentimelineio\opentimelineio\schema\marker.py -> build\lib.win-amd64-3.7\opentimelineio\schema
        copying src\py-opentimelineio\opentimelineio\schema\schemadef.py -> build\lib.win-amd64-3.7\opentimelineio\schema
        copying src\py-opentimelineio\opentimelineio\schema\serializable_collection.py -> build\lib.win-amd64-3.7\opentimelineio\schema
        copying src\py-opentimelineio\opentimelineio\schema\stack.py -> build\lib.win-amd64-3.7\opentimelineio\schema
        copying src\py-opentimelineio\opentimelineio\schema\timeline.py -> build\lib.win-amd64-3.7\opentimelineio\schema
        copying src\py-opentimelineio\opentimelineio\schema\track.py -> build\lib.win-amd64-3.7\opentimelineio\schema
        copying src\py-opentimelineio\opentimelineio\schema\transition.py -> build\lib.win-amd64-3.7\opentimelineio\schema
        copying src\py-opentimelineio\opentimelineio\schema\__init__.py -> build\lib.win-amd64-3.7\opentimelineio\schema
        creating build\lib.win-amd64-3.7\opentimelineio\schemadef
        copying src\py-opentimelineio\opentimelineio\schemadef\__init__.py -> build\lib.win-amd64-3.7\opentimelineio\schemadef
        creating build\lib.win-amd64-3.7\opentimelineview
        copying src\opentimelineview\console.py -> build\lib.win-amd64-3.7\opentimelineview
        copying src\opentimelineview\details_widget.py -> build\lib.win-amd64-3.7\opentimelineview
        copying src\opentimelineview\ruler_widget.py -> build\lib.win-amd64-3.7\opentimelineview
        copying src\opentimelineview\settings.py -> build\lib.win-amd64-3.7\opentimelineview
        copying src\opentimelineview\timeline_widget.py -> build\lib.win-amd64-3.7\opentimelineview
        copying src\opentimelineview\track_widgets.py -> build\lib.win-amd64-3.7\opentimelineview
        copying src\opentimelineview\__init__.py -> build\lib.win-amd64-3.7\opentimelineview
        creating build\lib.win-amd64-3.7\opentimelineio_contrib
        copying contrib\opentimelineio_contrib\__init__.py -> build\lib.win-amd64-3.7\opentimelineio_contrib
        creating build\lib.win-amd64-3.7\opentimelineio_contrib\adapters
        copying contrib\opentimelineio_contrib\adapters\advanced_authoring_format.py -> build\lib.win-amd64-3.7\opentimelineio_contrib\adapters
        copying contrib\opentimelineio_contrib\adapters\ale.py -> build\lib.win-amd64-3.7\opentimelineio_contrib\adapters
        copying contrib\opentimelineio_contrib\adapters\burnins.py -> build\lib.win-amd64-3.7\opentimelineio_contrib\adapters
        copying contrib\opentimelineio_contrib\adapters\extern_maya_sequencer.py -> build\lib.win-amd64-3.7\opentimelineio_contrib\adapters
        copying contrib\opentimelineio_contrib\adapters\extern_rv.py -> build\lib.win-amd64-3.7\opentimelineio_contrib\adapters
        copying contrib\opentimelineio_contrib\adapters\fcpx_xml.py -> build\lib.win-amd64-3.7\opentimelineio_contrib\adapters
        copying contrib\opentimelineio_contrib\adapters\ffmpeg_burnins.py -> build\lib.win-amd64-3.7\opentimelineio_contrib\adapters
        copying contrib\opentimelineio_contrib\adapters\hls_playlist.py -> build\lib.win-amd64-3.7\opentimelineio_contrib\adapters
        copying contrib\opentimelineio_contrib\adapters\kdenlive.py -> build\lib.win-amd64-3.7\opentimelineio_contrib\adapters
        copying contrib\opentimelineio_contrib\adapters\maya_sequencer.py -> build\lib.win-amd64-3.7\opentimelineio_contrib\adapters
        copying contrib\opentimelineio_contrib\adapters\rv.py -> build\lib.win-amd64-3.7\opentimelineio_contrib\adapters
        copying contrib\opentimelineio_contrib\adapters\xges.py -> build\lib.win-amd64-3.7\opentimelineio_contrib\adapters
        copying contrib\opentimelineio_contrib\adapters\__init__.py -> build\lib.win-amd64-3.7\opentimelineio_contrib\adapters
        creating build\lib.win-amd64-3.7\opentimelineio_contrib\adapters\aaf_adapter
        copying contrib\opentimelineio_contrib\adapters\aaf_adapter\aaf_writer.py -> build\lib.win-amd64-3.7\opentimelineio_contrib\adapters\aaf_adapter
        copying contrib\opentimelineio_contrib\adapters\aaf_adapter\__init__.py -> build\lib.win-amd64-3.7\opentimelineio_contrib\adapters\aaf_adapter
        running egg_info
        writing OpenTimelineIO.egg-info\PKG-INFO
        writing dependency_links to OpenTimelineIO.egg-info\dependency_links.txt
        writing entry points to OpenTimelineIO.egg-info\entry_points.txt
        writing requirements to OpenTimelineIO.egg-info\requires.txt
        writing top-level names to OpenTimelineIO.egg-info\top_level.txt
        reading manifest file 'OpenTimelineIO.egg-info\SOURCES.txt'
        reading manifest template 'MANIFEST.in'
        warning: no files found matching 'CHANGELOG.md'
        no previously-included directories found matching 'docs'
        warning: no previously-included files found matching '.gitmodules'
        warning: no previously-included files matching '*.git' found under directory 'src'
        warning: no previously-included files found matching '.readthedocs.yml'
        warning: no previously-included files found matching 'readthedocs-conda.yml'
        warning: no previously-included files found matching '.codecov.yml'
        warning: no previously-included files found matching '.gitlab-ci.yml'
        warning: no previously-included files found matching '.travis.yml'
        warning: no previously-included files found matching '*.pdf'
        warning: no previously-included files found matching 'CODE_OF_CONDUCT.md'
        warning: no previously-included files found matching 'CONTRIBUTING.md'
        warning: no previously-included files found matching 'contrib\opentimelineio_contrib\adapters\Makefile'
        warning: no previously-included files found matching 'Makefile'
        no previously-included directories found matching 'contrib\opentimelineio_contrib\adapters\tests'
        no previously-included directories found matching 'tests'
        no previously-included directories found matching 'src\deps\pybind11\tools\clang'
        no previously-included directories found matching 'src\deps\rapidjson\thirdparty'
        writing manifest file 'OpenTimelineIO.egg-info\SOURCES.txt'
        copying src\py-opentimelineio\opentimelineio\adapters\builtin_adapters.plugin_manifest.json -> build\lib.win-amd64-3.7\opentimelineio\adapters
        creating build\lib.win-amd64-3.7\opentimelineio_contrib\application_plugins
        creating build\lib.win-amd64-3.7\opentimelineio_contrib\application_plugins\rv
        creating build\lib.win-amd64-3.7\opentimelineio_contrib\application_plugins\rv\example_otio_reader
        copying contrib\opentimelineio_contrib\application_plugins\rv\example_otio_reader\PACKAGE -> build\lib.win-amd64-3.7\opentimelineio_contrib\application_plugins\rv\example_otio_reader
        copying contrib\opentimelineio_contrib\application_plugins\rv\example_otio_reader\example_otio_reader_plugin.py -> build\lib.win-amd64-3.7\opentimelineio_contrib\application_plugins\rv\example_otio_reader
        copying contrib\opentimelineio_contrib\application_plugins\rv\example_otio_reader\otio_reader.py -> build\lib.win-amd64-3.7\opentimelineio_contrib\application_plugins\rv\example_otio_reader
        copying contrib\opentimelineio_contrib\adapters\contrib_adapters.plugin_manifest.json -> build\lib.win-amd64-3.7\opentimelineio_contrib\adapters
        running build_ext
        -- Building for: Visual Studio 16 2019
        -- The C compiler identification is MSVC 19.23.28106.4
        -- The CXX compiler identification is MSVC 19.23.28106.4
        -- Check for working C compiler: C:/Program Files (x86)/Microsoft Visual Studio/2019/Community/VC/Tools/MSVC/14.23.28105/bin/Hostx64/x64/cl.exe
        -- Check for working C compiler: C:/Program Files (x86)/Microsoft Visual Studio/2019/Community/VC/Tools/MSVC/14.23.28105/bin/Hostx64/x64/cl.exe -- works
        -- Detecting C compiler ABI info
        -- Detecting C compiler ABI info - done
        -- Detecting C compile features
        -- Detecting C compile features - done
        -- Check for working CXX compiler: C:/Program Files (x86)/Microsoft Visual Studio/2019/Community/VC/Tools/MSVC/14.23.28105/bin/Hostx64/x64/cl.exe
        -- Check for working CXX compiler: C:/Program Files (x86)/Microsoft Visual Studio/2019/Community/VC/Tools/MSVC/14.23.28105/bin/Hostx64/x64/cl.exe -- works
        -- Detecting CXX compiler ABI info
        -- Detecting CXX compiler ABI info - done
        -- Detecting CXX compile features
        -- Detecting CXX compile features - done
        fatal: not a git repository (or any of the parent directories): .git
        -- Found PythonInterp: C:/Users/user/Documents/build_windows_x64_vc16_Release/bin/Release/2.83/python/bin/python.exe (found version "3.7.4")
        CMake Error at src/deps/pybind11/tools/FindPythonLibsNew.cmake:158 (message):
          Python libraries not found
        Call Stack (most recent call first):
          src/deps/pybind11/tools/pybind11Tools.cmake:16 (find_package)
          src/deps/pybind11/CMakeLists.txt:33 (include)
    
    
        -- Configuring incomplete, errors occurred!
        See also "C:/Users/user/AppData/Local/Temp/pip-install-w6q_74kv/opentimelineio/build/temp.win-amd64-3.7/Release/CMakeFiles/CMakeOutput.log".
        Traceback (most recent call last):
          File "<string>", line 1, in <module>
          File "C:\Users\user\AppData\Local\Temp\pip-install-w6q_74kv\opentimelineio\setup.py", line 466, in <module>
            **PROJECT_METADATA
          File "C:\Users\user\Documents\build_windows_x64_vc16_Release\bin\Release\2.83\python\lib\site-packages\setuptools\__init__.py", line 145, in setup
            return distutils.core.setup(**attrs)
          File "C:\Users\user\Documents\build_windows_x64_vc16_Release\bin\Release\2.83\python\lib\distutils\core.py", line 148, in setup
            dist.run_commands()
          File "C:\Users\user\Documents\build_windows_x64_vc16_Release\bin\Release\2.83\python\lib\distutils\dist.py", line 966, in run_commands
            self.run_command(cmd)
          File "C:\Users\user\Documents\build_windows_x64_vc16_Release\bin\Release\2.83\python\lib\distutils\dist.py", line 985, in run_command
            cmd_obj.run()
          File "C:\Users\user\AppData\Local\Temp\pip-install-w6q_74kv\opentimelineio\setup.py", line 140, in run
            install.run(self)
          File "C:\Users\user\Documents\build_windows_x64_vc16_Release\bin\Release\2.83\python\lib\site-packages\setuptools\command\install.py", line 61, in run
            return orig.install.run(self)
          File "C:\Users\user\Documents\build_windows_x64_vc16_Release\bin\Release\2.83\python\lib\distutils\command\install.py", line 545, in run
            self.run_command('build')
          File "C:\Users\user\Documents\build_windows_x64_vc16_Release\bin\Release\2.83\python\lib\distutils\cmd.py", line 313, in run_command
            self.distribution.run_command(command)
          File "C:\Users\user\Documents\build_windows_x64_vc16_Release\bin\Release\2.83\python\lib\distutils\dist.py", line 985, in run_command
            cmd_obj.run()
          File "C:\Users\user\Documents\build_windows_x64_vc16_Release\bin\Release\2.83\python\lib\distutils\command\build.py", line 135, in run
            self.run_command(cmd_name)
          File "C:\Users\user\Documents\build_windows_x64_vc16_Release\bin\Release\2.83\python\lib\distutils\cmd.py", line 313, in run_command
            self.distribution.run_command(command)
          File "C:\Users\user\Documents\build_windows_x64_vc16_Release\bin\Release\2.83\python\lib\distutils\dist.py", line 985, in run_command
            cmd_obj.run()
          File "C:\Users\user\AppData\Local\Temp\pip-install-w6q_74kv\opentimelineio\setup.py", line 185, in run
            self.build()
          File "C:\Users\user\AppData\Local\Temp\pip-install-w6q_74kv\opentimelineio\setup.py", line 216, in build
            env=env
          File "C:\Users\user\Documents\build_windows_x64_vc16_Release\bin\Release\2.83\python\lib\subprocess.py", line 347, in check_call
            raise CalledProcessError(retcode, cmd)
        subprocess.CalledProcessError: Command '['cmake', 'C:\\Users\\user\\AppData\\Local\\Temp\\pip-install-w6q_74kv\\opentimelineio', '-DPYTHON_EXECUTABLE=C:\\Users\\user\\Documents\\build_windows_x64_vc16_Release\\bin\\Release\\2.83\\python\\bin\\python.exe', '-DOTIO_PYTHON_INSTALL:BOOL=ON', '-DOTIO_PYTHON_OTIO_DIR=C:\\Users\\user\\AppData\\Local\\Temp\\pip-install-w6q_74kv\\opentimelineio\\build\\lib.win-amd64-3.7\\opentimelineio\\', '-DCMAKE_INSTALL_PREFIX=C:\\Users\\user\\Documents\\build_windows_x64_vc16_Release\\bin\\Release\\2.83\\python\\Lib\\site-packages\\opentimelineio\\cxx-libs', '-DOTIO_CXX_NOINSTALL:BOOL=ON', '-A', 'x64']' returned non-zero exit status 1.
        ----------------------------------------
    ERROR: Command errored out with exit status 1: 'C:\Users\user\Documents\build_windows_x64_vc16_Release\bin\Release\2.83\python\bin\python.exe' -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'C:\\Users\\user\\AppData\\Local\\Temp\\pip-install-w6q_74kv\\opentimelineio\\setup.py'"'"'; __file__='"'"'C:\\Users\\user\\AppData\\Local\\Temp\\pip-install-w6q_74kv\\opentimelineio\\setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record 'C:\Users\user\AppData\Local\Temp\pip-record-qe4za2pc\install-record.txt' --single-version-externally-managed --compile --install-headers 'C:\Users\user\Documents\build_windows_x64_vc16_Release\bin\Release\2.83\python\Include\opentimelineio' Check the logs for full command output.
    
    build cmake wheels 
    opened by tin2tin 38
  • Hiero import/export plugins

    Hiero import/export plugins

    Initial set of plugins for importing and exporting OTIO files in Hiero (and Nuke Studio). There's a README located under opentimelineio_contrib/application_plugins/hiero with instructions on how to install and use.

    Plugins have been developed in Hiero12, but should work in earlier versions as well. Please report if it doesn't and I'll add some version toggles etc. (I have access to Hiero11.x and 12.x.)

    There are most likely some bugs and/or questionable decisions here, so please give feedback and report issues as you go and I'll iron them out as quickly as I can.

    Features:

    • [x] Multiple tracks
    • [x] Tags
    • [x] Markers
    • [x] Fade in/out and cross dissolves
    • [x] Nested sequences are created separately and replaced with gaps in the main sequence.
    • [x] Simple re-time (reverese, constant slowdown, constant speedup)
    • [x] Add tracks to existing Sequence

    Todo:

    • [x] Implement ImageSequenceReference support
    • [x] Pass Sequence rate and Time Code to Timeline on export
    • [x] Assign rate and Time Code from Timeline's global_start_time on Import
    • [x] Confirm Simple re-time
    • [x] Look into Nuke Studio integration
    • [x] Add OTIO Import to ~~main menu~~ among other places
    • [x] Add track(s) from OTIO file in Timeline view (like the Add track form EDL/XML option)

    Future:

    • [ ] Tests. Hiero doesn't have a command line mode so not sure automated tests are possible.
    • [ ] Add Drag&Drop support

    Limitations:

    • Tags/markers are applied to both clips and track items on import if no metadata indicates source type.
    WIP 
    opened by apetrynet 36
  • Initial implementation of ImageSequenceReference

    Initial implementation of ImageSequenceReference

    This is meant to be an alternate approach to the one @apetrynet took in pr #536 as a point of discussion. This resolves #69. I wanted to try an approach that more explicitly broke out image sequence parameters and had awareness of timing associated with frames. This also avoids using format strings in urls which could become ambiguous or need complex escaping logic if a url encoding includes a % (e.x. %20 for a space).

    The image sequence is expressed with:

    • target_url_base - everything leading up to the file name in the target_url
    • name_prefix - everything in the file name leading up to the frame number
    • name_suffix - everything after the frame number in the file name
    • start_frame - first frame number used in file names
    • frame_step - step between frame numbers in file names (every other frame is a step of 2)
    • rate - double frame rate if every frame in the sequence were played back (ignoring skip frames)
    • frame_zero_padding - Number of digits to pad zeros out to (e.x. frame 10 with a pad of 4 would be 0010)
    • missing_frame_policy - enum ImageSequenceReference.MissingFramePolicy {error, hold, black} allows hinting about how a consuming app should behave if an image for which a url is returned should be handled when missing from disk

    An example for 24fps media with a sample provided each frame numbered 1-1000 with a path /show/sequence/shot/sample_image_sequence.%04d.exr might be:

    {
      "available_range": {
        "start_time": {
          "value": 0,
          "rate": 24
        },
        "duration": {
          "value": 1000,
          "rate": 24
        }
      },
      "start_frame": 1,
      "frame_step": 1,
      "rate": 24,
      "target_url_base": "file:///show/sequence/shot/",
      "name_prefix": "sample_image_sequence.",
      "name_suffix": ".exr"
      "frame_zero_padding": 4,
    }
    

    The same duration sequence but with only every 2nd frame available in the sequence would be:

    {
      "available_range": {
        "start_time": {
          "value": 0,
          "rate": 24
        },
        "duration": {
          "value": 1000,
          "rate": 24
        }
      },
      "start_frame": 1,
      "frame_step": 2,
      "rate": 24,
      "target_url_base": "file:///show/sequence/shot/",
      "name_prefix": "sample_image_sequence.",
      "name_suffix": ".exr"
      "frame_zero_padding": 4,
    }
    

    A target url is generated using the equivalent of the following python format string: f"{target_url_prefix}{(start_frame + (sample_number * frame_step)):0{value_zero_padding}}{target_url_postfix}"

    Negative start_frame is also handled. The above example with a start_frame of -1 would yield the first three target urls as:

    • file:///show/sequence/shot/sample_image_sequence.-0001.exr
    • file:///show/sequence/shot/sample_image_sequence.-0000.exr
    • file:///show/sequence/shot/sample_image_sequence.0001.exr

    Benefits of this approach include:

    • The ability to derive the times each image map to
    • Avoids having to support and potentially implement a rich format string system in otio

    Downsides:

    • A bit heavier than using format strings
    • Not as flexible/extensible as format strings

    Questions:

    • Should number_of_images_in_sequence be a property or method in python?
    • Should the negative behavior match the python format string {:04d} and make a number section of -001 rather than -0001?
    • Should I go ahead and implement image_number_for_time? This would be useful for people building time-based playback engines but it would also take the opinion a frame starts at a given time and holds until the next frame's start time.

    References:

    TODO:

    • [x] Implement frame_for_time
    • [X] Implement frame_range_for_time_range
    • [X] Implement abstract_target_url
    • [x] Validate choices of C++ data types (mostly int vs. long in a number of places)

    Co-authored by: @apetrynet

    opened by reinecke 32
  • Initialize C language bindings [WIP]

    Initialize C language bindings [WIP]

    #693

    I've made a prototype for the C bindings. This covers some portion of the timeRange.h file in opentime. I have generated these bindings using this: https://github.com/KarthikRIyer/cpp2c . This is just hacked together. I can refine it once I know how we need to proceed.

    I still haven't properly mapped enums and haven't mapped structs,copy constructors or overloaded operators to C. This just maps public methods and the main constructor.

    I have used googletest as the testing framework. The test for currently mapped functions pass so the bindings do work.

    There's more stuff to figure out. How can we make the cpp2c program more easy to use. Currently we need to specify the classes and enums in a vector to look for prior to building it. Also we need to specify the c++ standard include directories in the command line arguments. You'll see that if you take a look at the link above. I have at the moment appended the directories to the **argv according my system.

    Does anyone know any way to get all these include directories from CMake to C++.

    What I have tried till now:

    After some googling I found that CMAKE_CXX_IMPLICIT_INCLUDE_DIRECTORIES gives these directories. One way could be to pass this to C++ by doing this in CMake:

    add_definition(-DCXX_LIB_PATHS=${CMAKE_CXX_IMPLICIT_INCLUDE_DIRECTORIES})
    

    and then using the STRINGIFY macro to convert this to string and then append them to the command line arguments. The problem here is that there are multiple directories in CMAKE_CXX_IMPLICIT_INCLUDE_DIRECTORIES and using the add_definition method only the first directory is passed into the C++ code. I have verified the existence of multiple directories by printing the value of the variable in CMake itself using message(STATUS ${CMAKE_CXX_IMPLICIT_INCLUDE_DIRECTORIES})

    @jminor @ssteinbach @meshula @reinecke any thought on this and how we can proceed?

    opened by KarthikRIyer 28
  • Proposed C++ API Documentation

    Proposed C++ API Documentation

    This adds a proposal for the new C++ strategy for OTIO. Sample header files to be left on my forked branch and not put in the true PixarAnimationStudios/OpenTimelineIO repository.

    opened by davidbaraff 27
  • Support for Python 3.10?

    Support for Python 3.10?

    Feature Request

    Is this a New Feature, or a Proposed Change to existing Behavior? This is the continuity of existing feature.

    Description

    Describe the new feature, or describe the modification to existing behavior, and provide context as necessary to help with understanding how the feature relates to a workflow or functionality. I am the developer of Shot Manager, a Blender add-on that provides many features to manipulate shots in the 3D space of Blender but also to import and export edits with other software. To do so I rely on OpenTimelineIO. Thing is Blender is changing regularly (or irregularly I should say) the version of Python they support, this in order to stick to the latest version. An in March Blender 3.1 will be on Python 3.10.

    Would it be possible to have a version of OTIO for Python 3.10? That would be of a great help! Thank you

    TSC wheels 
    opened by werwack 24
  • PySide2 support

    PySide2 support

    This adds support for PySide2. It doesn't add switching support, which is what Qt.py provides.

    I saw the comment that was left on #73 and know that you're choosing to stick with PySide, so here is the update using PySide2.

    opened by boredstiff 23
  • Python build: Use CMake FindPython

    Python build: Use CMake FindPython

    Fixes #987.

    Summary

    Use CMake native FindPython to get the Python interpreter and the Python headers needed to build OTIO. pybind11 calls that the "FindPython mode", see https://pybind11.readthedocs.io/en/stable/compiling.html#findpython-mode. Note that our setup.py will force CMake to use the Python interpreter that was used to execute the script.

    The advantage over the current approach is that we now use FindPython module instead if FindPythonIterp/FindPythonLibs modules that pybind11 uses by default. FindPython was introduced in CMake to fix FindPythonInterp and FindPythonLibs modules. This basically allow us to support a lot more corner cases and scenarios now.

    Now, why not use the new FindPython mode (-DPYBIND11_FINDPYTHON=ON) of pybind11? This mode uses the new FindPython module and should technically work. But... it's not working for our use case. The thing with PYBIND11_FINDPYTHON is that it calls find_package(Python REQUIRED COMPONENTS Interpreter Development) (note the Development component that is requested). The Development component requires the libpython library to be present. The problem is that it's not always present (for example it's not present in the manylinux docker images that are used to build the Linux wheels). Also we don't link against the python library, so there is no need to require it.

    If someone wants to build with cmake directly without going through the setup.py, then Python interpreter can be specified using -DPython_EXECUTABLE or it can also be prepended to the PATH environment variable.

    I've tested these cases:

    • manylinux docker images. (Linux only)
    • Executing /path/to/python3.7 setup.py bdist_wheel, make sure it's not in PATH and also make sure a more recent version of python (for example 3.9) is present in PATH. (All platforms)
    • Executing /path/to/python3.7 -m pip install . --user, make sure it's not in PATH and also make sure a more recent version of python (for example 3.9) is present in PATH. (All platforms)
    • Executing /path/to/python3.7 -m pip wheel ., make sure it's not in PATH and also make sure a more recent version of python (for example 3.9) is present in PATH. (All platforms)
    • Execute python setup.py bdist_wheel from inside a virtualenv. (All platforms) Making the assumption that if this works, pip install ., python setup.py bdist_whell, etc will also work.
    • Try with Blender on Windows (just to confirm that my previous tests still work)
    • Test with RV's Python (tested by @rogernelson, see https://github.com/PixarAnimationStudios/OpenTimelineIO/issues/987#issuecomment-860692337)
    • Build without using the setup.py file (so calling cmake manually).

    I welcome everyone to test this PR in your setup using your preferred workflow just to make sure I'm not missing something obvious.

    Also, I hopefully added enough documentation so that we don't have to redo as much investigation as I had to do. But let me know if you feel more is needed and I'll happily add more.

    opened by JeanChristopheMorinPerso 21
  • Bump sphinx from 5.3.0 to 6.1.2

    Bump sphinx from 5.3.0 to 6.1.2

    Bumps sphinx from 5.3.0 to 6.1.2.

    Release notes

    Sourced from sphinx's releases.

    v6.1.2

    Changelog: https://www.sphinx-doc.org/en/master/changes.html

    v6.1.1

    Changelog: https://www.sphinx-doc.org/en/master/changes.html

    v6.1.0

    Changelog: https://www.sphinx-doc.org/en/master/changes.html

    v6.0.1

    Changelog: https://www.sphinx-doc.org/en/master/changes.html

    v6.0.0

    Changelog: https://www.sphinx-doc.org/en/master/changes.html

    v6.0.0b2

    Changelog: https://www.sphinx-doc.org/en/master/changes.html

    v6.0.0b1

    Changelog: https://www.sphinx-doc.org/en/master/changes.html

    Changelog

    Sourced from sphinx's changelog.

    Release 6.1.2 (released Jan 07, 2023)

    Bugs fixed

    • #11101: LaTeX: div.topic_padding key of sphinxsetup documented at 5.1.0 was implemented with name topic_padding

    • #11099: LaTeX: shadowrule key of sphinxsetup causes PDF build to crash since Sphinx 5.1.0

    • #11096: LaTeX: shadowsize key of sphinxsetup causes PDF build to crash since Sphinx 5.1.0

    • #11095: LaTeX: shadow of :dudir:topic and contents_ boxes not in page margin since Sphinx 5.1.0

      .. _contents: https://docutils.sourceforge.io/docs/ref/rst/directives.html#table-of-contents

    • #11100: Fix copying images when running under parallel mode.

    Release 6.1.1 (released Jan 05, 2023)

    Bugs fixed

    • #11091: Fix util.nodes.apply_source_workaround for literal_block nodes with no source information in the node or the node's parents.

    Release 6.1.0 (released Jan 05, 2023)

    Dependencies

    Incompatible changes

    • #10979: gettext: Removed support for pluralisation in get_translation. This was unused and complicated other changes to sphinx.locale.

    Deprecated

    • sphinx.util functions:

      • Renamed sphinx.util.typing.stringify() to sphinx.util.typing.stringify_annotation()

    ... (truncated)

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies python 
    opened by dependabot[bot] 1
  • Bump src/deps/rapidjson from `06d58b9` to `1ce516e`

    Bump src/deps/rapidjson from `06d58b9` to `1ce516e`

    Bumps src/deps/rapidjson from 06d58b9 to 1ce516e.

    Commits

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies submodules 
    opened by dependabot[bot] 1
  • Bump src/deps/pybind11 from `0694ec6` to `a34596b`

    Bump src/deps/pybind11 from `0694ec6` to `a34596b`

    Bumps src/deps/pybind11 from 0694ec6 to a34596b.

    Commits

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies submodules 
    opened by dependabot[bot] 1
  • Use duration() as a virtual function

    Use duration() as a virtual function

    Fixes #1513

    I noticed a helper function _safe_duration() that was dynamically casting a Composable just to call the function duration(). This isn't necessary since duration() is a virtual function of Composable. The function _safe_duration() could be removed and replaced with calls to duration().

    opened by darbyjohnston 1
  • Use duration() as a virtual function

    Use duration() as a virtual function

    I noticed a helper function _safe_duration() that was dynamically casting a Composable just to call the function duration(). This isn't necessary since duration() is a virtual function of Composable. The function _safe_duration() could be removed and replaced with calls to duration().

    bug 
    opened by darbyjohnston 0
  • Bump pypa/cibuildwheel from 2.11.1 to 2.11.4

    Bump pypa/cibuildwheel from 2.11.1 to 2.11.4

    Bumps pypa/cibuildwheel from 2.11.1 to 2.11.4.

    Release notes

    Sourced from pypa/cibuildwheel's releases.

    v2.11.4

    • 🐛 Fix a bug that caused missing wheels on Windows when a test was skipped using CIBW_TEST_SKIP (#1377)
    • 🛠 Updates CPython 3.11 to 3.11.1 (#1371)
    • 🛠 Updates PyPy 3.7 to 3.7.10, except on macOS which remains on 7.3.9 due to a bug. (#1371)
    • 📚 Added a reference to abi3audit to the docs (#1347)

    v2.11.3

    • ✨ Improves the 'build options' log output that's printed at the start of each run (#1352)
    • ✨ Added a friendly error message to a common misconfiguration of the CIBW_TEST_COMMAND option - not specifying path using the {project} placeholder (#1336)
    • 🛠 The GitHub Action now uses Powershell on Windows to avoid occasional incompabilities with bash (#1346)

    v2.11.2

    • 🛠 Updates CPython 3.11 to 3.11.0 - final release (#1327)
    • 🛠 Simplify the default macOS repair command (#1322)
    • 🛠 Fix the default MACOSX_DEPLOYMENT_TARGET on arm64 (#1312)
    • 🛠 Hide irrelevant pip warnings on linux (#1311)
    • 🐛 Fix a bug that caused the stdout and stderr of commands in containers to be in the wrong order Previously, stdout could appear after stderr. (#1324)
    • 📚 Added a FAQ entry describing how to perform native builds of CPython 3.8 wheels on Apple Silicon. (#1323)
    • 📚 Other docs improvements
    Changelog

    Sourced from pypa/cibuildwheel's changelog.

    v2.11.4

    24 Dec 2022

    • 🐛 Fix a bug that caused missing wheels on Windows when a test was skipped using CIBW_TEST_SKIP (#1377)
    • 🛠 Updates CPython 3.11 to 3.11.1 (#1371)
    • 🛠 Updates PyPy to 7.3.10, except on macOS which remains on 7.3.9 due to a bug on that platform. (#1371)
    • 📚 Added a reference to abi3audit to the docs (#1347)

    v2.11.3

    5 Dec 2022

    • ✨ Improves the 'build options' log output that's printed at the start of each run (#1352)
    • ✨ Added a friendly error message to a common misconfiguration of the CIBW_TEST_COMMAND option - not specifying path using the {project} placeholder (#1336)
    • 🛠 The GitHub Action now uses Powershell on Windows to avoid occasional incompabilities with bash (#1346)

    v2.11.2

    26 October 2022

    • 🛠 Updates CPython 3.11 to 3.11.0 - final release (#1327)
    • 🛠 Simplify the default macOS repair command (#1322)
    • 🛠 Fix the default MACOSX_DEPLOYMENT_TARGET on arm64 (#1312)
    • 🛠 Hide irrelevant pip warnings on linux (#1311)
    • 🐛 Fix a bug that caused the stdout and stderr of commands in containers to be in the wrong order Previously, stdout could appear after stderr. (#1324)
    • 📚 Added a FAQ entry describing how to perform native builds of CPython 3.8 wheels on Apple Silicon. (#1323)
    • 📚 Other docs improvements
    Commits
    • 27fc88e Bump version: v2.11.4
    • a7e9ece Merge pull request #1371 from pypa/update-dependencies-pr
    • b9a3ed8 Update cibuildwheel/resources/build-platforms.toml
    • 3dcc2ff fix: not skipping the tests stops the copy (Windows ARM) (#1377)
    • 1c9ec76 Merge pull request #1378 from pypa/henryiii-patch-3
    • 22b433d Merge pull request #1379 from pypa/pre-commit-ci-update-config
    • 98fdf8c [pre-commit.ci] pre-commit autoupdate
    • cefc5a5 Update dependencies
    • e53253d ci: move to ubuntu 20
    • e9ecc65 [pre-commit.ci] pre-commit autoupdate (#1374)
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies github_actions 
    opened by dependabot[bot] 1
Releases(v0.15)
  • v0.15(Sep 26, 2022)

    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:
      • 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 @markreidvfx in https://github.com/AcademySoftwareFoundation/OpenTimelineIO/pull/1353
    • Added SVG and PDF vector logos. by @jminor in https://github.com/AcademySoftwareFoundation/OpenTimelineIO/pull/1360
    • Fix lint issues by @JeanChristopheMorinPerso in https://github.com/AcademySoftwareFoundation/OpenTimelineIO/pull/1370
    • Close Temporary file handles in tests by @markreidvfx in https://github.com/AcademySoftwareFoundation/OpenTimelineIO/pull/1363
    • Python3 fixes for the shot_detect example by @ssteinbach in https://github.com/AcademySoftwareFoundation/OpenTimelineIO/pull/1374
    • Added documentation explaining contrib and outlining process around it by @reinecke in https://github.com/AcademySoftwareFoundation/OpenTimelineIO/pull/1378
    • Fixes and improvements for Kdenlive adapter by @jlskuz in https://github.com/AcademySoftwareFoundation/OpenTimelineIO/pull/1390
    • Load entrypoint plugins before builtin and contrib. by @markreidvfx in https://github.com/AcademySoftwareFoundation/OpenTimelineIO/pull/1389
    • Update pyaaf2 requirement from ~=1.4.0 to >=1.4,<1.7 by @dependabot in https://github.com/AcademySoftwareFoundation/OpenTimelineIO/pull/1355
    • Fix parsing of time_strings lacking leading zeroes by @meshula in https://github.com/AcademySoftwareFoundation/OpenTimelineIO/pull/1297
    • Add basic mingw_x86_64 build support by @markreidvfx in https://github.com/AcademySoftwareFoundation/OpenTimelineIO/pull/1354
    • Import _opentime before actually creating the bindings for _otio by @JeanChristopheMorinPerso in https://github.com/AcademySoftwareFoundation/OpenTimelineIO/pull/1396
    • Fix for SerializableCollection::children_if by @darbyjohnston in https://github.com/AcademySoftwareFoundation/OpenTimelineIO/pull/1404
    • Added OTIO_CORE 0.14.0 version_manifest. by @jminor in https://github.com/AcademySoftwareFoundation/OpenTimelineIO/pull/1415
    • Fix compiler warnings on Windows by @darbyjohnston in https://github.com/AcademySoftwareFoundation/OpenTimelineIO/pull/1414
    • Fix a few typos and cosmetics inconsistencies by @markreidvfx in https://github.com/AcademySoftwareFoundation/OpenTimelineIO/pull/1416
    • Release v0.15.0 changes by @ssteinbach in https://github.com/AcademySoftwareFoundation/OpenTimelineIO/pull/1403

    Dependency Version Bumps

    • Bump src/deps/pybind11 from 7c58058 to e7e2c79 by @dependabot in https://github.com/AcademySoftwareFoundation/OpenTimelineIO/pull/1125
    • Bump src/deps/optional-lite from 52f2b61 to 36c5b87 by @dependabot in https://github.com/AcademySoftwareFoundation/OpenTimelineIO/pull/1097
    • Bump src/deps/optional-lite from 36c5b87 to a006f22 by @dependabot in https://github.com/AcademySoftwareFoundation/OpenTimelineIO/pull/1137
    • Bump src/deps/optional-lite from a006f22 to ea502a6 by @dependabot in https://github.com/AcademySoftwareFoundation/OpenTimelineIO/pull/1319
    • Bump src/deps/optional-lite from ea502a6 to 5e4b776 by @dependabot in https://github.com/AcademySoftwareFoundation/OpenTimelineIO/pull/1383
    • Bump src/deps/rapidjson from 00dbcf2 to 4d6cb08 by @dependabot in https://github.com/AcademySoftwareFoundation/OpenTimelineIO/pull/1105
    • Bump src/deps/rapidjson from 4d6cb08 to e4bde97 by @dependabot in https://github.com/AcademySoftwareFoundation/OpenTimelineIO/pull/1217
    • Bump src/deps/rapidjson from e4bde97 to 8261c1d by @dependabot in https://github.com/AcademySoftwareFoundation/OpenTimelineIO/pull/1240
    • Bump src/deps/rapidjson from 8261c1d to 27c3a8d by @dependabot in https://github.com/AcademySoftwareFoundation/OpenTimelineIO/pull/1358
    • Bump src/deps/rapidjson from 27c3a8d to 06d58b9 by @dependabot in https://github.com/AcademySoftwareFoundation/OpenTimelineIO/pull/1388
    • Bump actions/checkout from 2.3.4 to 2.3.5 by @dependabot in https://github.com/AcademySoftwareFoundation/OpenTimelineIO/pull/1107
    • Bump actions/checkout from 2.3.5 to 3 by @dependabot in https://github.com/AcademySoftwareFoundation/OpenTimelineIO/pull/1227
    • Bump src/deps/Imath from 8b3363a to bd6f74c by @dependabot in https://github.com/AcademySoftwareFoundation/OpenTimelineIO/pull/1222
    • Bump src/deps/Imath from bd6f74c to bd254da by @dependabot in https://github.com/AcademySoftwareFoundation/OpenTimelineIO/pull/1245
    • Bump src/deps/Imath from bd254da to 3ffb078 by @dependabot in https://github.com/AcademySoftwareFoundation/OpenTimelineIO/pull/1291
    • Bump src/deps/Imath from 3ffb078 to 3ad5d4d by @dependabot in https://github.com/AcademySoftwareFoundation/OpenTimelineIO/pull/1324
    • Bump actions/setup-python from 2.2.2 to 3 by @dependabot in https://github.com/AcademySoftwareFoundation/OpenTimelineIO/pull/1226
    • Bump src/deps/any from f67bd5f to bfc77f2 by @dependabot in https://github.com/AcademySoftwareFoundation/OpenTimelineIO/pull/1357
    • Bump readthedocs-sphinx-ext from 2.1.5 to 2.1.9 by @dependabot in https://github.com/AcademySoftwareFoundation/OpenTimelineIO/pull/1397

    New Contributors

    • @ThomasWilshaw made their first contribution in https://github.com/AcademySoftwareFoundation/OpenTimelineIO/pull/1143
    • @camkerr made their first contribution in https://github.com/AcademySoftwareFoundation/OpenTimelineIO/pull/1202
    • @michdolan made their first contribution in https://github.com/AcademySoftwareFoundation/OpenTimelineIO/pull/1237
    • @andrewmoore-nz made their first contribution in https://github.com/AcademySoftwareFoundation/OpenTimelineIO/pull/1277
    • @pedrolabonia made their first contribution in https://github.com/AcademySoftwareFoundation/OpenTimelineIO/pull/1287
    • @visajshah made their first contribution in https://github.com/AcademySoftwareFoundation/OpenTimelineIO/pull/1292
    • @markreidvfx made their first contribution in https://github.com/AcademySoftwareFoundation/OpenTimelineIO/pull/1340
    • @gplsteph made their first contribution in https://github.com/AcademySoftwareFoundation/OpenTimelineIO/pull/1341
    • @jlskuz made their first contribution in https://github.com/AcademySoftwareFoundation/OpenTimelineIO/pull/1390

    Full Changelog: https://github.com/AcademySoftwareFoundation/OpenTimelineIO/compare/v0.14...v0.15

    Source code(tar.gz)
    Source code(zip)
  • v0.14.1(Dec 10, 2021)

    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
    Source code(tar.gz)
    Source code(zip)
  • v0.14(Oct 27, 2021)

    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/1069
    • Fix failing import of opentimelineio in Python 3.9 on Windows by @JeanChristopheMorinPerso in https://github.com/PixarAnimationStudios/OpenTimelineIO/pull/1070
    • Fix CMP0010 CMake warning caused by back slashes on Windows by @JeanChristopheMorinPerso in https://github.com/PixarAnimationStudios/OpenTimelineIO/pull/1076
    • replace spaces with tabs in Makefile format: target by @darbyjohnston in https://github.com/PixarAnimationStudios/OpenTimelineIO/pull/1072
    • Make target for building wheel by @smaragden in https://github.com/PixarAnimationStudios/OpenTimelineIO/pull/1031
    • Makefile "format" target tuning by @ssteinbach in https://github.com/PixarAnimationStudios/OpenTimelineIO/pull/1079
    • Unicode file names on Windows by @darbyjohnston in https://github.com/PixarAnimationStudios/OpenTimelineIO/pull/1081
    • Add information on VFX platform support to repo by @ssteinbach in https://github.com/PixarAnimationStudios/OpenTimelineIO/pull/1091
    • Add constexpr/noexcept by @darbyjohnston in https://github.com/PixarAnimationStudios/OpenTimelineIO/pull/1047
    • Add ImageSequenceReference support to EDL adapter by @apetrynet in https://github.com/PixarAnimationStudios/OpenTimelineIO/pull/804
    • Added SourceMobUsage metadata to AAF clips by @timlehr in https://github.com/PixarAnimationStudios/OpenTimelineIO/pull/1056
    • Fix missing Python coverage in Codecov reports by @JeanChristopheMorinPerso in https://github.com/PixarAnimationStudios/OpenTimelineIO/pull/1040
    • Issue1096 add source range to build simple timeline.py by @ssteinbach in https://github.com/PixarAnimationStudios/OpenTimelineIO/pull/1101
    • Updated CONTRIBUTING with names of the project committers. by @reinecke in https://github.com/PixarAnimationStudios/OpenTimelineIO/pull/1104
    • add is_error and fix error handling by @darbyjohnston in https://github.com/PixarAnimationStudios/OpenTimelineIO/pull/1061
    • allow commandline arguments to be passed through to cmake by @ssteinbach in https://github.com/PixarAnimationStudios/OpenTimelineIO/pull/1006
    • Add missing error check in flatten example/stackAlgorithm by @ssteinbach in https://github.com/PixarAnimationStudios/OpenTimelineIO/pull/1112
    • Remove vestigal python install code from CMake build system by @ssteinbach in https://github.com/PixarAnimationStudios/OpenTimelineIO/pull/1113
    • add build job that just builds c++ by @ssteinbach in https://github.com/PixarAnimationStudios/OpenTimelineIO/pull/1093
    • Remove duplicate error code NON_DROPFRAME_RATE. by @ssteinbach in https://github.com/PixarAnimationStudios/OpenTimelineIO/pull/1114
    • hide stringUtils.h by @ssteinbach in https://github.com/PixarAnimationStudios/OpenTimelineIO/pull/1115
    • Copy adapter arguments by @ssteinbach in https://github.com/PixarAnimationStudios/OpenTimelineIO/pull/1117
    • Bake OS versions in CI before release by @JeanChristopheMorinPerso in https://github.com/PixarAnimationStudios/OpenTimelineIO/pull/1116
    • overload RationalTime.from_seconds with additional rate argument by @apetrynet in https://github.com/PixarAnimationStudios/OpenTimelineIO/pull/1118
    • a few more places to lock the version by @ssteinbach in https://github.com/PixarAnimationStudios/OpenTimelineIO/pull/1120
    • publish to release Pypi by @ssteinbach in https://github.com/PixarAnimationStudios/OpenTimelineIO/pull/1124
    • Apply make format to codebase by @ssteinbach in https://github.com/PixarAnimationStudios/OpenTimelineIO/pull/1088
    • code changes for changing the name of the "master" branch to "main" by @ssteinbach in https://github.com/PixarAnimationStudios/OpenTimelineIO/pull/1122
    • Update the README and CONTRIBUTORS pre-release. by @ssteinbach in https://github.com/PixarAnimationStudios/OpenTimelineIO/pull/1126
    • strip the .dev1 suffix in setup.py by @ssteinbach in https://github.com/PixarAnimationStudios/OpenTimelineIO/pull/1127

    New Contributors

    • @Simran-B made their first contribution in https://github.com/PixarAnimationStudios/OpenTimelineIO/pull/808
    • @itsmattkc made their first contribution in https://github.com/PixarAnimationStudios/OpenTimelineIO/pull/803
    • @hisergiorojas made their first contribution in https://github.com/PixarAnimationStudios/OpenTimelineIO/pull/867
    • @splidje made their first contribution in https://github.com/PixarAnimationStudios/OpenTimelineIO/pull/869
    • @nporcino-pixar made their first contribution in https://github.com/PixarAnimationStudios/OpenTimelineIO/pull/902
    • @AWhetter made their first contribution in https://github.com/PixarAnimationStudios/OpenTimelineIO/pull/906
    • @dependabot made their first contribution in https://github.com/PixarAnimationStudios/OpenTimelineIO/pull/934
    • @Tilix4 made their first contribution in https://github.com/PixarAnimationStudios/OpenTimelineIO/pull/950
    • @Viraj-Rana008 made their first contribution in https://github.com/PixarAnimationStudios/OpenTimelineIO/pull/983
    • @JeanChristopheMorinPerso made their first contribution in https://github.com/PixarAnimationStudios/OpenTimelineIO/pull/1000
    • @smaragden made their first contribution in https://github.com/PixarAnimationStudios/OpenTimelineIO/pull/1031

    Full Changelog: https://github.com/PixarAnimationStudios/OpenTimelineIO/compare/v0.13...v0.14

    Source code(tar.gz)
    Source code(zip)
  • v0.13(Aug 24, 2020)

    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

    Source code(tar.gz)
    Source code(zip)
  • v0.12.1(Mar 27, 2020)

    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!

    Source code(tar.gz)
    Source code(zip)
  • v0.12(Mar 17, 2020)

    This is the first release with the C++ core. Please test the new build system and make sure it works for your needs. If you run into issues, pin to 0.11.0 (the last pure python release) and let us know so that we can address them.

    The adapters remain in python, but the core library and algorithms are implemented in C++. For more information you can see this pr: https://github.com/PixarAnimationStudios/OpenTimelineIO/pull/540

    Big Changes:

    • C++ Core: the core of opentimelineio is now pybind11-wrapped C++. (see above)
    • otiopluginfo command was added for printing information about plugins visible to otio: https://github.com/PixarAnimationStudios/OpenTimelineIO/pull/586
    • Kdenlive adapter included in contrib (thanks @vpinon) https://github.com/PixarAnimationStudios/OpenTimelineIO/pull/618
    • Also includes preliminary swift bindings

    Small Changes:

    • Tweaks to the repo in anticipation of the move to being hosted by the Academy Software Foundation
    • hook function arguments are passable to all commandline scripts (@mikekoetter) https://github.com/PixarAnimationStudios/OpenTimelineIO/pull/651
    • Documention for the C++ core, debugging and building
    • local manifests are loaded so that they override the internal manifests for plugins (@JoshBurnell) https://github.com/PixarAnimationStudios/OpenTimelineIO/pull/591
    • Lots of upgrades for the AAF adapter (@JoshBurnell)
    • SchemaDefs now have a repr method https://github.com/PixarAnimationStudios/OpenTimelineIO/pull/566
    • CMX EDL Adapter supports multiple locaters per clip now (@elabrosseRodeofx) https://github.com/PixarAnimationStudios/OpenTimelineIO/pull/664

    Lots of other small fixes and changes. Thank you to all of the community contributors!

    Source code(tar.gz)
    Source code(zip)
  • v0.11(Jul 22, 2019)

    This release is a final checkpoint before we land the C++ branch (cxx) into the master branch. We found there were a number of other small changes that needed to be made before the CXX and Master branches were ready to be merged, so we needed to do one more release before we did that.

    Big Changes:

    • The CXX branch is now up to date with master and will be landed shortly after we make this release. (#528)
    • In keeping with the VFX platform, we've dropped support for python 3.5 and added support for python 3.7 in our unit test and CI system. (#526)

    Small Changes:

    • AAF bugfixes by @freesonluxo (#517, #518, #512, #493)
    • Autogenerated schema documentation + unit test for detecting schema changes (#521)
    • FCP XML bugfixes by @reinecke (#494)

    Big thanks go to @andrewmoore-nz and @thecargocultnz for all the very detailed bug reports and repro cases, they are very helpful for improving OTIO robustness!

    Source code(tar.gz)
    Source code(zip)
  • v0.10(Apr 23, 2019)

    OpenTimelineIO Release v0.10

    We have a port to C++ that you can preview on the cxx branch which we will soon land into master. There are also some schema changes we'd like to make, which we'll be working on and presenting to the community after we land the C++ port. If you'd like to read about how that will work: https://opentimelineio.readthedocs.io/en/latest/tutorials/wrapping-otio.html

    Breaking Change:

    • In anticipation of the C++ port (see the cxx branch: https://github.com/PixarAnimationStudios/OpenTimelineIO/tree/cxx) a number of changes were made to make the python API behave like the C++ one
      • #372 types in Opentime are now immutable
    • This led to other enhancements that shouldn't be as noticeable to developers:
      • #477 Timeline.global_start_time had a default value of 0, 24 and was not being serialized. Now it defaults to None and is correctly serializead/deserialized
      • #377 JSON serializer adapter arguments tweaked
      • #364 Using weakref to point at parents
      • #400 the __copy__ method has been removed

    Big Changes:

    • Lots of upgrades and new features for the AAF Adapter, including:
      • #432, #460, #461, #454 Writing AAFs! (thanks @freesonluxo and @shahbazk8194!)
      • Thanks to @andrewmoore-nz and @thecargocultnz for all the great test data, we always appreciate that!
      • AAF unit tests now work on our continuous build system
      • Lots of robustness and correctness upgrades to the AAF Reader (@jchen9, @flavienliger, others)
      • #396 Adapter was ported from pyaaf1 to pyaaf2 (@freesonluxo and @shahbazk8194)
      • ...and thanks to @markreidvfx for bug fixes in upstream pyaaf2!
    • FCPX adapter:
      • #425 markers and detached audio (@eric-with-a-c)
    • OTIOView upgrades:
      • #451 playhead/ruler for inspecting frame numbers (@tdervieux)
      • #457 upgrade to the effect widget legibility (@tdervieux)
      • #467 key navigation filter menu (@tdervieux)
      • #449 frame all function (@tdervieux)
      • #378 fixing support for nested tracks (@avrata)
      • #422 Significant performance boost for large files
    • Optimization:
      • speed improvement on each_child that reduced a 691s operation on a full-film OTIO file to 0.8s.
    • #497, #488 Enhancements to Dropframe support in Opentime (@apetrynet and @reinecke)
    • #450 Hookscript plugins now have arguments passed in (@mikekoetter)

    New adapters:

    • #412 GStreamer Editing Services XML adapter (@thiblahute)

    Small Changes:

    • arguments for the commandline tools are now more consistent and richer
      • media linker arguments are now passed in
    • #434, #392 upgrades for the EDL adapter (@apetrynet, @mikekoetter)
    • #437 there was a slice membership bug that got fixed
    • #426, #363 For audio-only tracks, the rv adapter will insert a blank movieproc so only sound is loaded from a source (@avrata, @apetrynet)
    • better unicode string support
    • #462 ALE adapter ugprades (@mikekoetter)
    • #403 Fix a bug in the hook/manifest system (@timlehr)

    And more! Thanks to everyone for this big release!

    Source code(tar.gz)
    Source code(zip)
  • v0.9(Nov 6, 2018)

    OpenTimelineIO Release v0.9

    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.

    Source code(tar.gz)
    Source code(zip)
  • v0.8.1(Sep 17, 2018)

    Addresses #313, making a point release with the bug fixes and pushing this to pypi. Includes:

    • Fix location of console scripts so OpenTimelineIO commandline scripts work properly when installed from PyPI.
    • Add a guard for pkg_resources missing
    Source code(tar.gz)
    Source code(zip)
  • v0.8(Jul 24, 2018)

    OpenTimelineIO Release v0.8

    This feature includes a number of AAF and distribution related upgrades.

    Big Features:

    • #260: AAF adapter can read speed effects (+ a bunch of small bug fixes and enhancements)
    • #239: OTIO is now in PyPI. pip install opentimelineio from a shell to get the library! (thanks to @swallitsch)
    • #222: SerializableObjects are now considered reference types, which addresses a number of subtle bugs having to do with ‘instancing’ vs ‘copying’
    • #237: You can make setuptools plugins to register adapters into OTIO now (thanks to @reinecke)
    • #258: Drop frame timecode support in opentime timecode functions (thanks to @apetrynet)

    Small Features:

    • #285: __version__ field in the opentimelineio package import opentimelineio as otio; otio.__version__
    • #286: Convienence constructor for creating gaps of a duration: otio.schema.Gap(duration=otio.opentime.TimeRange(500, 24))
    • #270: better support for installing OTIO on Windows
    • #274: Code coverage badge on github page (thanks to @boredstiff )
    • #247: You can pass adapter arguments into otioview
    • #160: PySide 2.0 support for otioview (thanks to @boredstiff )
    • Lots of other small fixes and upgrades. Non-Pixar folks who contributed to this release include:
    • @apetrynet
    • @boredstiff
    • @reinecke
    • @rogergodspeed
    • @swallitsch

    Thanks to members of the community who chimed in on issues.

    Source code(tar.gz)
    Source code(zip)
  • v0.7.1(Apr 13, 2018)

  • v0.7(Feb 22, 2018)

    New Features:

    • Added AAF adapter (read only for now)
    • Added support for GeneratorReferences (solid color, etc.)
    • Added Code of Conduct
    • Added flatten function that collapses multiple tracks into one
    • Added support for writing dissolves to the EDL adapter (@mikemahony)
    • Added support for different flavors of EDL (Nucoda, Avid) to EDL adapter (@lsavidge)
    • Contrib adapters are installed by default

    Non-backwards compatible API changes:

    • Renamed media_reference.External to schema.ExternalReference
    • Moved media reference classes into schema

    API Changes:

    • Added functions for filtering OTIO hierarchies
    • Added convenience methods for getting handles of clips with adjacent transitions
    • Added convenience methods for getting video/audio tracks from a timeline
    • Adapter read/write to/from string functions default to otio_json

    Additional:

    • EDL adapter accepts a rate parameter (@tuan-huy-truong)
    • EDL adapter treats gaps and black clips as two different things (@mikemahony)
    • Fixed problems when iterating over a Track with duplicate children
    • More bug fixes from @bashesenaxis, @sobotka, @avrata, and @tuan-huy-truong
    Source code(tar.gz)
    Source code(zip)
  • v0.6(Nov 17, 2017)

    Big features:

    • Sequence renamed to Track
    • CDL support in CMX EDL adapter
    • Added otiostat validation utility
    • Added Avid Log Exchange (ALE) adapter
    • Text burn-in adapter via ffmpeg (thanks @repsac)

    Small features:

    • Adapters can take arguments
    • Improved nested track support in otioview
    • Improved API for dealing with parent/child time ranges.
    Source code(tar.gz)
    Source code(zip)
  • v0.5(Jul 28, 2017)

    This is OpenTimelineIO's first public beta release.

    Big features:

    • Updated license to make the project public.
    • Transition support in the FCP XML adapter and OTIO View (@bashesenaxis)
    • Multiple timeline support in FCP XML and OTIO View (@bashesenaxis)
    • Media Linker plugin feature

    Small features:

    • Filler renamed to Gap
    • Marker colors
    • Travis CI setup (@mikemahony)
    • Clarified available_range, duration, and inclusive/exclusive time ranges
    • Bug fixes in Transition support in EDL and RV adapters
    • Lots more bug fixes (@mikemahony, @bashesenaxis, @avrata)
    Source code(tar.gz)
    Source code(zip)
  • v0.4(Apr 27, 2017)

    Big features:

    • Transition support (reading from EDLs, writing to RV)
    • RV session file adapter (writing only) (with help from @tweakjon)
    • Maya Sequencer adapter (from @bashesenaxis)
    • HLS adapter (from @reinecke)
    • Support for saving a collection of OTIO objects in one file (e.g. a bin of timelines & clips)

    Smaller stuff:

    • API clarification for inclusive/exclusive end_time.
    • Conceptual architecture documentation.
    • Fixed non-24 fps timecode. (from @reinecke)
    • More robust EDL parsing based on production data from real studios. (from @adaro and others)
    Source code(tar.gz)
    Source code(zip)
  • v0.3(Jan 20, 2017)

    This release includes:

    • Final Cut Pro 7 XML adapter (from @bashesenaxis )
    • Adobe Premiere support via the FCP 7 XML adapter (from @bashesenaxis )
    • Cross-platform PySide viewer application and widget for visually inspecting OTIO compatible files. (from @bashesenaxis )
    • Marker support in the CMX EDL reader
    • New code documentation system
    • Coverage make target
    • Optimized the unit test run time
    Source code(tar.gz)
    Source code(zip)
  • v0.2(Nov 10, 2016)

    Includes:

    • Support for versioning schemas ( #10 ). As things change, developers can define upgrade functions so that future versions of OTIO can gracefully upgrade older versions of the schema.
    • Nesting and functionality to fetch the range of nested items/compositions ( #16 #13 )
    • Removing the unused "transform" property ( #12 )
    • Python 3 support ( #19 #24 #20, @reinecke )
    • Conversion to/from seconds for RationalTime ( #17, @reinecke )
    • Cleanup on the setup.py ( #18 @reinecke )

    Thank you!

    Source code(tar.gz)
    Source code(zip)
  • v0.1(Oct 25, 2016)

Owner
Pixar Animation Studios
Pixar Animation Studios
Your custom slash commands Discord bot!

Slashy - Your custom slash-commands bot Hey, I'm Slashy - your friendly neighborhood custom-command bot! The code for this bot exists because I'm like

Omar Zunic 8 Dec 20, 2022
Automate UCheck COVID-19 self-assessment form submission

ucheck Automate UCheck COVID-19 self-assessment form submission. Disclaimer ucheck automatically completes the University of Tornto's UCheck COVID-19

Ira Horecka 15 Nov 30, 2022
📷 An Instagram bot written in Python using Selenium on Google Chrome

📷 An Instagram bot written in Python using Selenium on Google Chrome. It will go through posts in hashtag(s) and like and comment on them.

anniedotexe 47 Dec 19, 2022
Elemeno.ai standard development kit in Python

Overview A set of glue code and utilities to make using elemeno AI platform a smooth experience Free software: Apache Software License 2.0 Installatio

Elemeno AI 3 Dec 14, 2022
A very tiny python api for the stock exchange tradegate.de

pytradegate A very tiny python api for the stock exchange tradegate.de The api provides the recent ask/bid data and all other data as found on the det

dunderstr aka seimen 7 Aug 24, 2022
Notflix - Notion / Netflix and IMDb to organise your movie dates. Happy Valentine <3 from 0x1za

Welcome to notflix 👋 This is a project to help organise shows to watch with my

Mwiza Ed' Simbeye 3 Feb 15, 2022
Detects members having unicode names. Public bot: @scarletwitchprobot

✨ Scarletwitch bot ✨ Detects unicode names members in a tg chat & provides a option to take action on that user ! Public bot: @scarletwitchprobot Supp

ÁÑÑÍHÌLÅTØR SPÄRK 18 Nov 12, 2022
Weather_besac is a French twitter bot that tweet the weather of the city of Besançon in Franche-Comté in France every day at 8am and 4pm.

Weather Bot Besac Weather_besac is a French twitter bot that tweet the weather of the city of Besançon in Franche-Comté in France every day at 8am and

Rgld_ 1 Nov 15, 2021
Simple script to ban bots at Twitch chats using a text file as a source.

AUTOBAN 🇺🇸 English version Simple script to ban bots at Twitch chats using a text file as a source. How to use Windows Go to releases for further in

And Paiva 5 Feb 06, 2022
Draw your telegram bot in draw.io and generate its code

README Contents: Draw your bot Install requirements Registering a telegram bot Draw bot Start point Message block Single choice block Functions block

DENIS TSITKO 23 Nov 09, 2022
Exporta archivos masivamente del TEC Digital.

TEC Digital Files Exporter Script que permite exportar los archivos de cursos del TEC Digital del Instituto Tecnológico de Costa Rica, debido al borra

Joseph Vargas 22 Apr 08, 2021
Super simple anti-spam Discord bot

AutoAntiRaidBot Super simple anti-spam Discord bot. Will automatically kick any member with an account made under 1 day ago, and will ban any member w

Kainoa Kanter 6 Jun 27, 2022
A Dm Bot, also knows as Mass DM bot which can send one message to All of the Users in a Specific Server!

Discord DM Bot discord.py 1.7.2 python 3.9.5 asyncio 3.4.3 Installation Cloud Host Tutorial uploaded in YouTube, watch it by clicking here. Local Host

hpriyam8 7 Mar 24, 2022
Custom bot I've made to host events on my personal Discord server.

discord_events Custom bot I've made to host events on my personal Discord server. You can try the bot out in my personal server here: https://discord.

AlexFlipnote 5 Mar 16, 2022
A simple telegram bot that resolves video urls using yt-dlp

URL to Video Telegram Bot A simple telegram bot that resolves video urls using yt-dlp Copyright (C) 2021 Vítor Vasconcellos This program is free softw

Vítor 1 Nov 18, 2021
A part of HyRiver software stack for accessing hydrology data through web services

Package Description Status PyNHD Navigate and subset NHDPlus (MR and HR) using web services Py3DEP Access topographic data through National Map's 3DEP

Taher Chegini 51 Dec 10, 2022
Create a roles overview page for all Ansible roles/playbooks in Gitlab

ansible-create-roles-overview Overview The script ./create_roles_overview.py queries a Gitlab API for Ansible roles and playbooks. It will iterate ove

2 Oct 11, 2021
🛒 Bot de lista de compras compartilhada para o Telegram

Lista de Compras Lista de compras de Cuducos e Flávia. Comandos do bot Comando Descrição /add item Adiciona item à lista de compras /remove item

Eduardo Cuducos 4 Jan 15, 2022
Linkvertise-Bypass - Bypass Linkvertise advertisement

Linkvertise-Bypass Bypass Linkvertise advertisement 📕 instructions Copy And Pas

Flex Tools 4 Jun 10, 2022
Google Translater v2

Google_Translater_V2 Features Supporting 100 More Languages You can Set Your Custom Languages Supporting in Group Configs TG_BOT_TOKEN - Get bot token

Lntechnical 31 Nov 12, 2022