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

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
32 changes: 16 additions & 16 deletions .github/workflows/python-package.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ name: OpenTimelineIO
# for configuring which build will be a C++ coverage build / coverage report
env:
GH_COV_PY: "3.10"
GH_COV_OS: ubuntu-latest
GH_COV_OS: ubuntu-24.04
GH_DEPENDABOT: dependabot

on:
Expand All @@ -24,15 +24,15 @@ jobs:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest, windows-latest, macos-14, macos-latest]
os: [ubuntu-24.04, windows-2025, macos-14, macos-15]
# Unfortunately the CMake test target is OS dependent so we set it as
# a variable here.
include:
- os: ubuntu-latest
- os: ubuntu-24.04
OTIO_TEST_TARGET: test
- os: windows-latest
- os: windows-2025
OTIO_TEST_TARGET: RUN_TESTS
- os: macos-latest
- os: macos-15
OTIO_TEST_TARGET: test
- os: macos-14
OTIO_TEST_TARGET: test
Expand Down Expand Up @@ -92,16 +92,16 @@ jobs:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest, windows-latest, macos-14, macos-latest]
os: [ubuntu-24.04, windows-2025, macos-14, macos-15]
python-version: ["3.9", "3.10", "3.11", "3.12", "3.13"]
include:
- { os: ubuntu-latest, shell: bash }
- { os: macos-latest, shell: bash }
- { os: ubuntu-24.04, shell: bash }
- { os: macos-15, shell: bash }
- { os: macos-14, shell: bash }
- { os: windows-latest, shell: pwsh }
- { os: windows-latest, shell: msys2, python-version: "mingw64" }
- { os: windows-2025, shell: pwsh }
- { os: windows-2025, shell: msys2, python-version: "mingw64" }
exclude:
- { os: macos-latest, python-version: 3.9 }
- { os: macos-15, python-version: 3.9 }

defaults:
run:
Expand Down Expand Up @@ -173,16 +173,16 @@ jobs:
matrix:
os:
[
ubuntu-latest,
ubuntu-24.04,
ubuntu-24.04-arm,
windows-latest,
windows-2025,
macos-14,
macos-latest,
macos-15,
]
python-build: ["cp39", "cp310", "cp311", "cp312", "cp313"]
#exclude:
# none currently
# - { os: macos-latest, python-build: 'cp37' }
# - { os: macos-15, python-build: 'cp37' }
steps:
- uses: actions/checkout@v4

Expand All @@ -205,7 +205,7 @@ jobs:

package_sdist:
needs: py_build_test
runs-on: ubuntu-latest
runs-on: ubuntu-24.04
steps:
- uses: actions/checkout@v4
with:
Expand Down
8 changes: 7 additions & 1 deletion CONTRIBUTORS.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ If you know of anyone missing from this list, please contact us: https://lists.a
* Darwyn Peachey ([peachey](https://github.com/peachey))
* David Baraff ([davidbaraff](https://github.com/davidbaraff))
* dgw ([dgw](https://github.com/dgw))
* Dimitris Apostolou ([rex4539](https://github.com/rex4539))
* Doug Halley ([douglascomet](https://github.com/douglascomet))
* Ed Caspersen ([repsac](https://github.com/repsac))
* Emile Labrosse ([elabrosseRodeofx](https://github.com/elabrosseRodeofx))
Expand All @@ -24,8 +25,10 @@ If you know of anyone missing from this list, please contact us: https://lists.a
* Eric Reinecke ([reinecke](https://github.com/reinecke))
* Evan Blaudy ([EvanBldy](https://github.com/EvanBldy))
* Flavian Liger ([flavienliger](https://github.com/flavienliger))
* Florian Schleich ([fschleich](https://github.com/fschleich))
* Fredrik Brännbacka ([smaragden](https://github.com/smaragden))
* Freeson Wang ([freesonluxo](https://github.com/freesonluxo))
* furby™ ([furby-tm](https://github.com/furby-tm))
* Félix Bourbonnais ([BadSingleton](https://github.com/BadSingleton))
* Félix David ([Tilix4](https://github.com/Tilix4))
* Gonzalo Garramuño ([ggarra13](https://github.com/ggarra13))
Expand Down Expand Up @@ -63,16 +66,19 @@ If you know of anyone missing from this list, please contact us: https://lists.a
* Sergio Rojas ([hisergiorojas](https://github.com/hisergiorojas))
* Shahbaz Khan ([shahbazk8194](https://github.com/shahbazk8194))
* Simran Spiller ([Simran-B](https://github.com/Simran-B))
* Spencer Magnusson ([semagnum](https://github.com/semagnum))
* Stefan Schulze ([stefanschulze](https://github.com/stefanschulze))
* Stephan Steinbach ([ssteinbach](https://github.com/ssteinbach))
* Stéphane Deverly ([gplsteph](https://github.com/gplsteph))
* Thibault Saunier ([thiblahute](https://github.com/thiblahute))
* Thierry Dervieux-Lecocq ([tdervieux](https://github.com/tdervieux))
* ThomasWilshaw ([ThomasWilshaw](https://github.com/ThomasWilshaw))
* Tim Lehr ([timlehr](https://github.com/timlehr))
* Tom V ([tomviner](https://github.com/tomviner))
* Troy James Sobotka ([sobotka](https://github.com/sobotka))
* Tuan Truong ([tuan-huy-truong](https://github.com/tuan-huy-truong))
* Utsab Saha ([utsab](https://github.com/utsab))
* Valerio Viperino ([vvzen](https://github.com/vvzen))
* Vincent Pinon ([vpinon](https://github.com/vpinon))
* Visaj Nirav Shah ([visajshah](https://github.com/visajshah))
* Visaj Nirav Shah ([visajshah](https://github.com/visajshah))
* Yingjie Wang ([cato-o](https://github.com/cato-o))
2 changes: 1 addition & 1 deletion setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -218,7 +218,7 @@ def cmake_install(self):

# Metadata that gets stamped into the __init__ files during the build phase.
PROJECT_METADATA = {
"version": "0.18.0.dev1",
"version": "0.18.0",
"author": 'Contributors to the OpenTimelineIO project',
"author_email": '[email protected]',
"license": 'Apache 2.0 License',
Expand Down
92 changes: 47 additions & 45 deletions src/opentime/export.h
Original file line number Diff line number Diff line change
Expand Up @@ -6,61 +6,63 @@
// For an explanation of how these export defines work, see:
// https://github.com/PixarAnimationStudios/OpenUSD/blob/dev/pxr/base/arch/export.h
#if defined(_WINDOWS)
# if defined(__GNUC__) && __GNUC__ >= 4 || defined(__clang__)
# define OPENTIMELINEIO_EXPORT __attribute__((dllexport))
# define OPENTIMELINEIO_IMPORT __attribute__((dllimport))
# define OPENTIMELINEIO_HIDDEN
# define OPENTIMELINEIO_EXPORT_TYPE
# define OPENTIMELINEIO_IMPORT_TYPE
# else
# define OPENTIMELINEIO_EXPORT __declspec(dllexport)
# define OPENTIMELINEIO_IMPORT __declspec(dllimport)
# define OPENTIMELINEIO_HIDDEN
# define OPENTIMELINEIO_EXPORT_TYPE
# define OPENTIMELINEIO_IMPORT_TYPE
# endif
# if defined(__GNUC__) && __GNUC__ >= 4 || defined(__clang__)
# define OPENTIMELINEIO_EXPORT __attribute__((dllexport))
# define OPENTIMELINEIO_IMPORT __attribute__((dllimport))
# define OPENTIMELINEIO_HIDDEN
# define OPENTIMELINEIO_EXPORT_TYPE
# define OPENTIMELINEIO_IMPORT_TYPE
# else
# define OPENTIMELINEIO_EXPORT __declspec(dllexport)
# define OPENTIMELINEIO_IMPORT __declspec(dllimport)
# define OPENTIMELINEIO_HIDDEN
# define OPENTIMELINEIO_EXPORT_TYPE
# define OPENTIMELINEIO_IMPORT_TYPE
# endif
#elif defined(__GNUC__) && __GNUC__ >= 4 || defined(__clang__)
# define OPENTIMELINEIO_EXPORT __attribute__((visibility("default")))
# define OPENTIMELINEIO_IMPORT
# define OPENTIMELINEIO_HIDDEN __attribute__((visibility("hidden")))
# if defined(__clang__)
# define OPENTIMELINEIO_EXPORT_TYPE __attribute__((type_visibility("default")))
# else
# define OPENTIMELINEIO_EXPORT_TYPE __attribute__((visibility("default")))
# endif
# define OPENTIMELINEIO_IMPORT_TYPE
# define OPENTIMELINEIO_EXPORT __attribute__((visibility("default")))
# define OPENTIMELINEIO_IMPORT
# define OPENTIMELINEIO_HIDDEN __attribute__((visibility("hidden")))
# if defined(__clang__)
# define OPENTIMELINEIO_EXPORT_TYPE \
__attribute__((type_visibility("default")))
# else
# define OPENTIMELINEIO_EXPORT_TYPE \
__attribute__((visibility("default")))
# endif
# define OPENTIMELINEIO_IMPORT_TYPE
#else
# define OPENTIMELINEIO_EXPORT
# define OPENTIMELINEIO_IMPORT
# define OPENTIMELINEIO_HIDDEN
# define OPENTIMELINEIO_EXPORT_TYPE
# define OPENTIMELINEIO_IMPORT_TYPE
# define OPENTIMELINEIO_EXPORT
# define OPENTIMELINEIO_IMPORT
# define OPENTIMELINEIO_HIDDEN
# define OPENTIMELINEIO_EXPORT_TYPE
# define OPENTIMELINEIO_IMPORT_TYPE
#endif
#define OPENTIMELINEIO_EXPORT_TEMPLATE(type, ...)
#define OPENTIMELINEIO_IMPORT_TEMPLATE(type, ...) \
#define OPENTIMELINEIO_IMPORT_TEMPLATE(type, ...) \
extern template type OPENTIMELINEIO_IMPORT __VA_ARGS__

#if defined(OPENTIME_STATIC)
# define OPENTIME_API
# define OPENTIME_API_TYPE
# define OPENTIME_API_TEMPLATE_CLASS(...)
# define OPENTIME_API_TEMPLATE_STRUCT(...)
# define OPENTIME_LOCAL
# define OPENTIME_API
# define OPENTIME_API_TYPE
# define OPENTIME_API_TEMPLATE_CLASS(...)
# define OPENTIME_API_TEMPLATE_STRUCT(...)
# define OPENTIME_LOCAL
#else
# if defined(OPENTIME_EXPORTS)
# define OPENTIME_API OPENTIMELINEIO_EXPORT
# define OPENTIME_API_TYPE OPENTIMELINEIO_EXPORT_TYPE
# define OPENTIME_API_TEMPLATE_CLASS(...) \
# if defined(OPENTIME_EXPORTS)
# define OPENTIME_API OPENTIMELINEIO_EXPORT
# define OPENTIME_API_TYPE OPENTIMELINEIO_EXPORT_TYPE
# define OPENTIME_API_TEMPLATE_CLASS(...) \
OPENTIMELINEIO_EXPORT_TEMPLATE(class, __VA_ARGS__)
# define OPENTIME_API_TEMPLATE_STRUCT(...) \
# define OPENTIME_API_TEMPLATE_STRUCT(...) \
OPENTIMELINEIO_EXPORT_TEMPLATE(struct, __VA_ARGS__)
# else
# define OPENTIME_API OPENTIMELINEIO_IMPORT
# define OPENTIME_API_TYPE OPENTIMELINEIO_IMPORT_TYPE
# define OPENTIME_API_TEMPLATE_CLASS(...) \
# else
# define OPENTIME_API OPENTIMELINEIO_IMPORT
# define OPENTIME_API_TYPE OPENTIMELINEIO_IMPORT_TYPE
# define OPENTIME_API_TEMPLATE_CLASS(...) \
OPENTIMELINEIO_IMPORT_TEMPLATE(class, __VA_ARGS__)
# define OPENTIME_API_TEMPLATE_STRUCT(...) \
# define OPENTIME_API_TEMPLATE_STRUCT(...) \
OPENTIMELINEIO_IMPORT_TEMPLATE(struct, __VA_ARGS__)
# endif
# define OPENTIME_LOCAL OPENTIMELINEIO_HIDDEN
# endif
# define OPENTIME_LOCAL OPENTIMELINEIO_HIDDEN
#endif
3 changes: 1 addition & 2 deletions src/opentime/rationalTime.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -32,8 +32,7 @@ static constexpr std::array<double, 11> smpte_timecode_rates{
48.0,
50.0,
60000.0 / 1001.0,
60.0
}
60.0 }
};

// deprecated in favor of `is_smpte_timecode_rate`
Expand Down
10 changes: 5 additions & 5 deletions src/opentime/timeRange.h
Original file line number Diff line number Diff line change
Expand Up @@ -43,9 +43,7 @@ class OPENTIME_API_TYPE TimeRange
{}

/// @brief Construct a new time range with the given start time and duration.
constexpr TimeRange(
RationalTime start_time,
RationalTime duration) noexcept
constexpr TimeRange(RationalTime start_time, RationalTime duration) noexcept
: _start_time{ start_time }
, _duration{ duration }
{}
Expand All @@ -65,7 +63,8 @@ class OPENTIME_API_TYPE TimeRange
/// duration is invalid, or if the duration is less than zero.
bool is_invalid_range() const noexcept
{
return _start_time.is_invalid_time() || _duration.is_invalid_time() || _duration.value() < 0.0;
return _start_time.is_invalid_time() || _duration.is_invalid_time()
|| _duration.value() < 0.0;
}

/// @brief Returns true if the time range is valid.
Expand All @@ -75,7 +74,8 @@ class OPENTIME_API_TYPE TimeRange
/// zero.
bool is_valid_range() const noexcept
{
return _start_time.is_valid_time() && _duration.is_valid_time() && _duration.value() >= 0.0;
return _start_time.is_valid_time() && _duration.is_valid_time()
&& _duration.value() >= 0.0;
}

/// @brief Returns the start time.
Expand Down
2 changes: 1 addition & 1 deletion src/opentimelineio/CORE_VERSION_MAP.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -142,7 +142,7 @@ const label_to_schema_version_map CORE_VERSION_MAP{
{ "Transition", 1 },
{ "UnknownSchema", 1 },
} },
{ "0.18.0.dev1",
{ "0.18.0",
{
{ "Adapter", 1 },
{ "Clip", 2 },
Expand Down
9 changes: 5 additions & 4 deletions src/opentimelineio/clip.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,8 @@ Clip::Clip(
std::vector<Marker*> const& markers,
std::string const& active_media_reference_key,
std::optional<Color> const& color)
: Parent{ name, source_range, metadata, effects, markers, /*enabled*/ true, color }
: Parent{ name, source_range, metadata, effects,
markers, /*enabled*/ true, color }
, _active_media_reference_key(active_media_reference_key)
{
set_media_reference(media_reference);
Expand Down Expand Up @@ -191,12 +192,12 @@ std::optional<IMATH_NAMESPACE::Box2d>
Clip::available_image_bounds(ErrorStatus* error_status) const
{
auto active_media = media_reference();

//this code path most likely never runs since a null or empty media_reference gets
//replaced with a placeholder value when instantiated
if (!active_media)
{
if(error_status)
if (error_status)
{
*error_status = ErrorStatus(
ErrorStatus::CANNOT_COMPUTE_BOUNDS,
Expand All @@ -209,7 +210,7 @@ Clip::available_image_bounds(ErrorStatus* error_status) const

if (!active_media->available_image_bounds())
{
if(error_status)
if (error_status)
{
*error_status = ErrorStatus(
ErrorStatus::CANNOT_COMPUTE_BOUNDS,
Expand Down
8 changes: 4 additions & 4 deletions src/opentimelineio/clip.h
Original file line number Diff line number Diff line change
Expand Up @@ -44,10 +44,10 @@ class OTIO_API_TYPE Clip : public Item
MediaReference* media_reference = nullptr,
std::optional<TimeRange> const& source_range = std::nullopt,
AnyDictionary const& metadata = AnyDictionary(),
std::vector<Effect*> const& effects = std::vector<Effect*>(),
std::vector<Marker*> const& markers = std::vector<Marker*>(),
std::string const& active_media_reference_key = default_media_key,
std::optional<Color> const& color = std::nullopt);
std::vector<Effect*> const& effects = std::vector<Effect*>(),
std::vector<Marker*> const& markers = std::vector<Marker*>(),
std::string const& active_media_reference_key = default_media_key,
std::optional<Color> const& color = std::nullopt);

/// @name Media References
///@{
Expand Down
Loading
Loading