From 381dbdf8ef950c73c28825a6102ef480783d2c2f Mon Sep 17 00:00:00 2001 From: Joshua Minor Date: Mon, 27 Apr 2026 20:58:35 -0700 Subject: [PATCH 1/3] Added more missing folders to the `make format` rule` Signed-off-by: Joshua Minor --- Makefile | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/Makefile b/Makefile index 4c0a20621..e3007f9e7 100644 --- a/Makefile +++ b/Makefile @@ -155,11 +155,14 @@ format: ifndef CLANG_FORMAT_PROG $(error $(newline)$(ccred)clang-format is not available on $$PATH$(ccend)) endif - $(eval DIRS = src/opentime src/opentimelineio src/opentimelineio/algo) + $(eval DIRS = src/opentime) + $(eval DIRS += src/opentimelineio) + $(eval DIRS += src/opentimelineio/algo) + $(eval DIRS += tests) + $(eval DIRS += examples) $(eval DIRS += src/py-opentimelineio/opentime-bindings) $(eval DIRS += src/py-opentimelineio/opentimelineio-bindings) $(eval FILES_TO_FORMAT = $(wildcard $(addsuffix /*.h, $(DIRS)) $(addsuffix /*.cpp, $(DIRS)))) - echo "formatting..." $(FILES_TO_FORMAT) $(shell clang-format -i -style=file $(FILES_TO_FORMAT)) manifest: From e5c75727c50b3bf584fabd000016f609080e96c9 Mon Sep 17 00:00:00 2001 From: Joshua Minor Date: Mon, 27 Apr 2026 20:58:59 -0700 Subject: [PATCH 2/3] Clang format the tests Signed-off-by: Joshua Minor --- tests/test_clip.cpp | 35 +- tests/test_composition.cpp | 28 +- tests/test_editAlgorithm.cpp | 2373 ++++++++----------------- tests/test_opentime.cpp | 68 +- tests/test_serializableCollection.cpp | 33 +- tests/test_serialization.cpp | 29 +- tests/test_stack_algo.cpp | 45 +- tests/test_timeline.cpp | 21 +- tests/test_track.cpp | 31 +- tests/utils.h | 2 +- 10 files changed, 848 insertions(+), 1817 deletions(-) diff --git a/tests/test_clip.cpp b/tests/test_clip.cpp index 969aeb2a0..e7c10ed07 100644 --- a/tests/test_clip.cpp +++ b/tests/test_clip.cpp @@ -6,12 +6,12 @@ #include #include #include -#include -#include -#include #include #include #include +#include +#include +#include #include @@ -73,7 +73,6 @@ main(int argc, char** argv) }); tests.add_test("test_clip_v1_to_v2_null", [] { - OTIO_NS::ErrorStatus status; SerializableObject::Retainer<> so = SerializableObject::from_json_string( @@ -95,7 +94,6 @@ main(int argc, char** argv) }); tests.add_test("test_clip_v1_to_v2", [] { - OTIO_NS::ErrorStatus status; SerializableObject::Retainer<> so = SerializableObject::from_json_string( @@ -146,21 +144,18 @@ main(int argc, char** argv) }); tests.add_test("test_clip_media_representation", [] { - static constexpr auto time_scalar = 1.5; SerializableObject::Retainer ltw(new LinearTimeWarp( LinearTimeWarp::Schema::name, LinearTimeWarp::Schema::name, time_scalar)); - std::vector effects = { ltw }; + std::vector effects = { ltw }; static constexpr auto red = Marker::Color::red; - SerializableObject::Retainer m(new Marker( - LinearTimeWarp::Schema::name, - TimeRange(), - red)); + SerializableObject::Retainer m( + new Marker(LinearTimeWarp::Schema::name, TimeRange(), red)); std::vector markers = { m }; static constexpr auto high_quality = "high_quality"; @@ -220,7 +215,9 @@ main(int argc, char** argv) OTIO_NS::ErrorStatus error2; clip->set_media_references( - { { "cloud", ref4 } }, high_quality, &error2); + { { "cloud", ref4 } }, + high_quality, + &error2); assertTrue(is_error(error2)); assertEqual( error2.outcome, @@ -249,14 +246,13 @@ main(int argc, char** argv) // basic test for a marker assertEqual(clip->markers().size(), markers.size()); - auto marker = dynamic_cast( - clip->markers().front().value); + auto marker = + dynamic_cast(clip->markers().front().value); assertEqual(marker->color().c_str(), red); }); // test to ensure null error_status pointers are correctly handled tests.add_test("test_error_ptr_null", [] { - // tests for no image bounds on media reference on clip SerializableObject::Retainer clip(new Clip); @@ -272,14 +268,13 @@ main(int argc, char** argv) OTIO_NS::ErrorStatus* null_test = nullptr; assertEqual( - clip->available_image_bounds(null_test), std::optional() - ); + clip->available_image_bounds(null_test), + std::optional()); }); // test to ensure null error_status pointers are correctly handled // when there's no media reference tests.add_test("test_error_ptr_null_no_media", [] { - SerializableObject::Retainer clip(new Clip); // set media reference to empty @@ -300,8 +295,8 @@ main(int argc, char** argv) OTIO_NS::ErrorStatus* null_test_no_mr = nullptr; assertEqual( - clip->available_image_bounds(null_test_no_mr), std::optional() - ); + clip->available_image_bounds(null_test_no_mr), + std::optional()); }); tests.run(argc, argv); diff --git a/tests/test_composition.cpp b/tests/test_composition.cpp index 242f468fa..a0a085d68 100644 --- a/tests/test_composition.cpp +++ b/tests/test_composition.cpp @@ -3,9 +3,9 @@ #include "utils.h" +#include #include #include -#include #include #include #include @@ -20,32 +20,30 @@ main(int argc, char** argv) Tests tests; // test a basic case of find_children - tests.add_test( - "test_find_children", [] { - SerializableObject::Retainer comp = new Composition; - SerializableObject::Retainer item = new Item; + tests.add_test("test_find_children", [] { + SerializableObject::Retainer comp = new Composition; + SerializableObject::Retainer item = new Item; comp->append_child(item); OTIO_NS::ErrorStatus err; - auto result = comp->find_children<>(&err); + auto result = comp->find_children<>(&err); assertEqual(result.size(), 1); assertEqual(result[0].value, item.value); }); - + // test stack and track correctly calls find_clips from composition parent class - tests.add_test( - "test_find_clips", [] { - SerializableObject::Retainer stack = new Stack(); - SerializableObject::Retainer track = new Track; - SerializableObject::Retainer clip = new Clip; + tests.add_test("test_find_clips", [] { + SerializableObject::Retainer stack = new Stack(); + SerializableObject::Retainer track = new Track; + SerializableObject::Retainer clip = new Clip; SerializableObject::Retainer transition = new Transition; - + stack->append_child(track); track->append_child(transition); track->append_child(clip); - + OTIO_NS::ErrorStatus err; - auto items = stack->find_clips(&err); + auto items = stack->find_clips(&err); assertFalse(is_error(err)); assertEqual(items.size(), 1); assertEqual(items[0].value, clip.value); diff --git a/tests/test_editAlgorithm.cpp b/tests/test_editAlgorithm.cpp index 2b5c527c9..30b82858d 100644 --- a/tests/test_editAlgorithm.cpp +++ b/tests/test_editAlgorithm.cpp @@ -3,10 +3,10 @@ #include "utils.h" -#include -#include #include +#include #include +#include #include #include #include @@ -20,20 +20,20 @@ using OTIO_NS::algo::ReferencePoint; #ifdef DEBUG -#include +# include - -std::ostream& operator << (std::ostream& os, const RationalTime& value) +std::ostream& +operator<<(std::ostream& os, const RationalTime& value) { os << std::fixed << value.value() << "/" << value.rate(); return os; } -std::ostream& operator << (std::ostream& os, const TimeRange& value) +std::ostream& +operator<<(std::ostream& os, const TimeRange& value) { - os << std::fixed << value.start_time().value() << "/" << - value.duration().value() << "/" << - value.duration().rate(); + os << std::fixed << value.start_time().value() << "/" + << value.duration().value() << "/" << value.duration().rate(); return os; } @@ -45,8 +45,8 @@ void assert_duration(const RationalTime& new_duration, const RationalTime& duration) { #ifdef DEBUG - std::cout << "\tnew duration=" << new_duration << " old duration=" << duration - << std::endl; + std::cout << "\tnew duration=" << new_duration + << " old duration=" << duration << std::endl; #endif assertEqual(new_duration, duration); } @@ -62,23 +62,24 @@ debug_track_ranges(const std::string& title, Track* track) if (clip) { auto range = track->trimmed_range_of_child(child).value(); - std::cout << "\t\t" << clip->name() << " " << range - << std::endl; + std::cout << "\t\t" << clip->name() << " " << range << std::endl; } auto gap = dynamic_retainer_cast(child); if (gap) { - auto range = track->trimmed_range_of_child(child).value(); - std::string name = gap->name(); - if (name.empty()) name = "gap"; + auto range = track->trimmed_range_of_child(child).value(); + std::string name = gap->name(); + if (name.empty()) + name = "gap"; std::cout << "\t\t" << name << " " << range << std::endl; } auto transition = dynamic_retainer_cast(child); if (transition) { - auto range = track->trimmed_range_of_child(child).value(); - std::string name = transition->name(); - if (name.empty()) name = "transition"; + auto range = track->trimmed_range_of_child(child).value(); + std::string name = transition->name(); + if (name.empty()) + name = "transition"; std::cout << "\t\t" << name << " " << range << std::endl; } } @@ -102,9 +103,10 @@ debug_clip_ranges(const std::string& title, Track* track) auto gap = dynamic_retainer_cast(child); if (gap) { - auto range = gap->trimmed_range(); - std::string name = gap->name(); - if (name.empty()) name = "gap"; + auto range = gap->trimmed_range(); + std::string name = gap->name(); + if (name.empty()) + name = "gap"; std::cout << "\t\t" << name << " " << range << std::endl; } } @@ -113,12 +115,10 @@ debug_clip_ranges(const std::string& title, Track* track) } void -assert_clip_ranges( - Track* track, - const std::vector& expected_ranges) +assert_clip_ranges(Track* track, const std::vector& expected_ranges) { std::vector ranges; - size_t children = 0; + size_t children = 0; for (const auto& child: track->children()) { auto item = dynamic_retainer_cast(child); @@ -134,12 +134,10 @@ assert_clip_ranges( } void -assert_track_ranges( - Track* track, - const std::vector& expected_ranges) +assert_track_ranges(Track* track, const std::vector& expected_ranges) { std::vector ranges; - size_t children = 0; + size_t children = 0; for (const auto& child: track->children()) { auto item = dynamic_retainer_cast(child); @@ -164,10 +162,10 @@ test_edit_slice( SerializableObject::Retainer clip_0 = new Clip("clip_0", nullptr, clip_range); SerializableObject::Retainer track = new Track(); - track->append_child(clip_0); + track->append_child(clip_0); debug_track_ranges("START", track); - + // Slice. algo::slice(track, slice_time); @@ -175,7 +173,6 @@ test_edit_slice( assert_track_ranges(track, slice_ranges); } - void test_edit_slice_transitions( const RationalTime& slice_time, @@ -198,20 +195,18 @@ test_edit_slice_transitions( "clip_3", nullptr, TimeRange(RationalTime(0.0, 24.0), RationalTime(25.0, 24.0))); - SerializableObject::Retainer transition_0 = - new Transition( - "transition_0", - Transition::Type::SMPTE_Dissolve, - RationalTime(5.0, 24.0), - RationalTime(3.0, 24.0)); - SerializableObject::Retainer transition_1 = - new Transition( - "transition_1", - Transition::Type::SMPTE_Dissolve, - RationalTime(5.0, 24.0), - RationalTime(3.0, 24.0)); + SerializableObject::Retainer transition_0 = new Transition( + "transition_0", + Transition::Type::SMPTE_Dissolve, + RationalTime(5.0, 24.0), + RationalTime(3.0, 24.0)); + SerializableObject::Retainer transition_1 = new Transition( + "transition_1", + Transition::Type::SMPTE_Dissolve, + RationalTime(5.0, 24.0), + RationalTime(3.0, 24.0)); SerializableObject::Retainer track = new Track(); - track->append_child(clip_0); + track->append_child(clip_0); track->append_child(clip_1); track->insert_child(1, transition_0); track->append_child(clip_2); @@ -219,7 +214,7 @@ test_edit_slice_transitions( track->append_child(transition_1); debug_track_ranges("START", track); - + // Slice. algo::slice(track, slice_time); @@ -229,19 +224,17 @@ test_edit_slice_transitions( void test_edit_slip( - const TimeRange& media_range, - const TimeRange& clip_range, - const RationalTime& slip_time, - const TimeRange slip_range) + const TimeRange& media_range, + const TimeRange& clip_range, + const RationalTime& slip_time, + const TimeRange slip_range) { // Create one clip with one media. - SerializableObject::Retainer - media_0 = new MediaReference( - "media_0", - media_range); + SerializableObject::Retainer media_0 = + new MediaReference("media_0", media_range); SerializableObject::Retainer clip_0 = new Clip("clip_0", media_0, clip_range); - + // Slip. algo::slip(clip_0, slip_time); @@ -250,7 +243,6 @@ test_edit_slip( assertEqual(slip_range, range); } - void test_edit_slide( const TimeRange& media_range, @@ -258,30 +250,21 @@ test_edit_slide( const std::vector& slide_ranges) { // Create a track with three clips. - SerializableObject::Retainer - media_0 = new MediaReference( - "media_0", - media_range); + SerializableObject::Retainer media_0 = + new MediaReference("media_0", media_range); SerializableObject::Retainer clip_0 = new Clip( "clip_0", media_0, - TimeRange( - RationalTime(0.0, 24.0), - RationalTime(24.0, 24.0))); + TimeRange(RationalTime(0.0, 24.0), RationalTime(24.0, 24.0))); SerializableObject::Retainer clip_1 = new Clip( "clip_1", nullptr, - TimeRange( - RationalTime(0.0, 24.0), - RationalTime(30.0, 24.0))); + TimeRange(RationalTime(0.0, 24.0), RationalTime(30.0, 24.0))); SerializableObject::Retainer clip_2 = new Clip( "clip_2", nullptr, - TimeRange( - RationalTime(0.0, 24.0), - RationalTime(40.0, 24.0))); - SerializableObject::Retainer track = - new Track(); + TimeRange(RationalTime(0.0, 24.0), RationalTime(40.0, 24.0))); + SerializableObject::Retainer track = new Track(); track->append_child(clip_0); track->append_child(clip_1); track->append_child(clip_2); @@ -293,42 +276,32 @@ test_edit_slide( assert_track_ranges(track, slide_ranges); } -void test_edit_ripple( +void +test_edit_ripple( const RationalTime& delta_in, const RationalTime& delta_out, const std::vector& track_ranges, - const std::vector& item_ranges - ) + const std::vector& item_ranges) { // Create a track with one gap and two clips. SerializableObject::Retainer clip_0 = new Gap( - TimeRange( - RationalTime(0.0, 24.0), - RationalTime(20.0, 24.0)), + TimeRange(RationalTime(0.0, 24.0), RationalTime(20.0, 24.0)), "gap_0"); SerializableObject::Retainer clip_1 = new Clip( "clip_1", nullptr, - TimeRange( - RationalTime(5.0, 24.0), - RationalTime(25.0, 24.0))); + TimeRange(RationalTime(5.0, 24.0), RationalTime(25.0, 24.0))); SerializableObject::Retainer clip_2 = new Clip( "clip_2", nullptr, - TimeRange( - RationalTime(5.0, 24.0), - RationalTime(20.0, 24.0))); + TimeRange(RationalTime(5.0, 24.0), RationalTime(20.0, 24.0))); SerializableObject::Retainer track = new Track(); track->append_child(clip_0); track->append_child(clip_1); track->append_child(clip_2); OTIO_NS::ErrorStatus error_status; - algo::ripple( - clip_1, - delta_in, - delta_out, - &error_status); + algo::ripple(clip_1, delta_in, delta_out, &error_status); // Asserts. assert(!is_error(error_status)); @@ -336,42 +309,32 @@ void test_edit_ripple( assert_clip_ranges(track, item_ranges); } -void test_edit_roll( +void +test_edit_roll( const RationalTime& delta_in, const RationalTime& delta_out, const std::vector& track_ranges, - const std::vector& item_ranges - ) + const std::vector& item_ranges) { // Create a track with one gap and two clips. SerializableObject::Retainer clip_0 = new Gap( - TimeRange( - RationalTime(0.0, 24.0), - RationalTime(20.0, 24.0)), + TimeRange(RationalTime(0.0, 24.0), RationalTime(20.0, 24.0)), "gap_0"); SerializableObject::Retainer clip_1 = new Clip( "clip_1", nullptr, - TimeRange( - RationalTime(5.0, 24.0), - RationalTime(30.0, 24.0))); + TimeRange(RationalTime(5.0, 24.0), RationalTime(30.0, 24.0))); SerializableObject::Retainer clip_2 = new Clip( "clip_2", nullptr, - TimeRange( - RationalTime(5.0, 24.0), - RationalTime(20.0, 24.0))); + TimeRange(RationalTime(5.0, 24.0), RationalTime(20.0, 24.0))); SerializableObject::Retainer track = new Track(); track->append_child(clip_0); track->append_child(clip_1); track->append_child(clip_2); OTIO_NS::ErrorStatus error_status; - algo::roll( - clip_1, - delta_in, - delta_out, - &error_status); + algo::roll(clip_1, delta_in, delta_out, &error_status); // Asserts. assert(!is_error(error_status)); @@ -379,37 +342,29 @@ void test_edit_roll( assert_clip_ranges(track, item_ranges); } -void test_edit_fill( +void +test_edit_fill( const TimeRange& clip_range, const RationalTime& track_time, const ReferencePoint& reference_point, const std::vector& track_ranges, - const std::vector& item_ranges - ) + const std::vector& item_ranges) { // Create a track with one gap and two clips. We leave one clip for fill. SerializableObject::Retainer clip_0 = new Clip( "clip_0", nullptr, - TimeRange( - RationalTime(0.0, 24.0), - RationalTime(20.0, 24.0))); + TimeRange(RationalTime(0.0, 24.0), RationalTime(20.0, 24.0))); SerializableObject::Retainer clip_1 = new Gap( - TimeRange( - RationalTime(5.0, 24.0), - RationalTime(30.0, 24.0)), + TimeRange(RationalTime(5.0, 24.0), RationalTime(30.0, 24.0)), "gap_0"); SerializableObject::Retainer clip_2 = new Clip( "clip_2", nullptr, - TimeRange( - RationalTime(5.0, 24.0), - RationalTime(20.0, 24.0))); - - SerializableObject::Retainer clip_3 = new Clip( - "fill_0", - nullptr, - clip_range); + TimeRange(RationalTime(5.0, 24.0), RationalTime(20.0, 24.0))); + + SerializableObject::Retainer clip_3 = + new Clip("fill_0", nullptr, clip_range); SerializableObject::Retainer track = new Track(); track->append_child(clip_0); @@ -419,15 +374,10 @@ void test_edit_fill( auto duration = track->duration(); OTIO_NS::ErrorStatus error_status; - algo::fill( - clip_3, - track, - track_time, - reference_point, - &error_status); + algo::fill(clip_3, track, track_time, reference_point, &error_status); auto new_duration = track->duration(); - + // Asserts. if (reference_point == ReferencePoint::Sequence) { @@ -444,7 +394,7 @@ int main(int argc, char** argv) { Tests tests; - + tests.add_test("test_edit_slice_1", [] { // Slice in the middle. test_edit_slice( @@ -478,7 +428,6 @@ main(int argc, char** argv) TimeRange(RationalTime(0.0, 24.0), RationalTime(24.0, 24.0)), RationalTime(24.0, 24.0), { TimeRange(RationalTime(0.0, 24.0), RationalTime(24.0, 24.0)) }); - }); tests.add_test("test_edit_slice_2", [] { @@ -488,286 +437,137 @@ main(int argc, char** argv) SerializableObject::Retainer clip_0 = new Clip( "clip_0", nullptr, - TimeRange( - RationalTime(0.0, 23.98), - RationalTime(71.94, 23.98))); + TimeRange(RationalTime(0.0, 23.98), RationalTime(71.94, 23.98))); SerializableObject::Retainer clip_1 = new Clip( "clip_1", nullptr, - TimeRange( - RationalTime(0.0, 23.98), - RationalTime(71.94, 23.98))); + TimeRange(RationalTime(0.0, 23.98), RationalTime(71.94, 23.98))); SerializableObject::Retainer clip_2 = new Clip( "clip_2", nullptr, - TimeRange( - RationalTime(90.0, 30.0), - RationalTime(90.0, 30.0))); - SerializableObject::Retainer track = - new Track(); + TimeRange(RationalTime(90.0, 30.0), RationalTime(90.0, 30.0))); + SerializableObject::Retainer track = new Track(); track->append_child(clip_0); track->append_child(clip_1); track->append_child(clip_2); - + // Slice. OTIO_NS::ErrorStatus error_status; - algo::slice( - track, - RationalTime(121.0, 30.0), - true, - &error_status); + algo::slice(track, RationalTime(121.0, 30.0), true, &error_status); // Asserts. assert(!is_error(error_status)); - assert_clip_ranges(track, - { - TimeRange( - RationalTime(0.0, 23.98), - RationalTime(71.94, 23.98)), - TimeRange( - RationalTime(0.0, 30.0), - RationalTime(31.0, 30.0)), - TimeRange( - RationalTime(31.0, 30.0), - RationalTime(59, 30.0)), - TimeRange( - RationalTime(90.0, 30.0), - RationalTime(90.0, 30.0)) - }); - assert_track_ranges(track, - { - TimeRange( - RationalTime(0.0, 23.98), - RationalTime(71.94, 23.98)), - TimeRange( - RationalTime(90.0, 30.0), - RationalTime(31.0, 30.0)), - TimeRange( - RationalTime(121.0, 30.0), - RationalTime(59, 30.0)), - TimeRange( - RationalTime(180.0, 30.0), - RationalTime(90.0, 30.0)) - }); - - algo::slice( - track, - RationalTime(122.0, 30.0), - true, - &error_status); + assert_clip_ranges( + track, + { TimeRange(RationalTime(0.0, 23.98), RationalTime(71.94, 23.98)), + TimeRange(RationalTime(0.0, 30.0), RationalTime(31.0, 30.0)), + TimeRange(RationalTime(31.0, 30.0), RationalTime(59, 30.0)), + TimeRange(RationalTime(90.0, 30.0), RationalTime(90.0, 30.0)) }); + assert_track_ranges( + track, + { TimeRange(RationalTime(0.0, 23.98), RationalTime(71.94, 23.98)), + TimeRange(RationalTime(90.0, 30.0), RationalTime(31.0, 30.0)), + TimeRange(RationalTime(121.0, 30.0), RationalTime(59, 30.0)), + TimeRange(RationalTime(180.0, 30.0), RationalTime(90.0, 30.0)) }); + + algo::slice(track, RationalTime(122.0, 30.0), true, &error_status); // Asserts. assert(!is_error(error_status)); - assert_clip_ranges(track, - { - TimeRange( - RationalTime(0.0, 23.98), - RationalTime(71.94, 23.98)), - TimeRange( - RationalTime(0.0, 30.0), - RationalTime(31.0, 30.0)), - TimeRange( - RationalTime(31.0, 30.0), - RationalTime(1, 30.0)), - TimeRange( - RationalTime(32.0, 30.0), - RationalTime(58, 30.0)), - TimeRange( - RationalTime(90.0, 30.0), - RationalTime(90.0, 30.0)) - }); - assert_track_ranges(track, - { - TimeRange( - RationalTime(0.0, 23.98), - RationalTime(71.94, 23.98)), - TimeRange( - RationalTime(90.0, 30.0), - RationalTime(31.0, 30.0)), - TimeRange( - RationalTime(121.0, 30.0), - RationalTime(1.0, 30.0)), - TimeRange( - RationalTime(122.0, 30.0), - RationalTime(58, 30.0)), - TimeRange( - RationalTime(180.0, 30.0), - RationalTime(90.0, 30.0)) - }); + assert_clip_ranges( + track, + { TimeRange(RationalTime(0.0, 23.98), RationalTime(71.94, 23.98)), + TimeRange(RationalTime(0.0, 30.0), RationalTime(31.0, 30.0)), + TimeRange(RationalTime(31.0, 30.0), RationalTime(1, 30.0)), + TimeRange(RationalTime(32.0, 30.0), RationalTime(58, 30.0)), + TimeRange(RationalTime(90.0, 30.0), RationalTime(90.0, 30.0)) }); + assert_track_ranges( + track, + { TimeRange(RationalTime(0.0, 23.98), RationalTime(71.94, 23.98)), + TimeRange(RationalTime(90.0, 30.0), RationalTime(31.0, 30.0)), + TimeRange(RationalTime(121.0, 30.0), RationalTime(1.0, 30.0)), + TimeRange(RationalTime(122.0, 30.0), RationalTime(58, 30.0)), + TimeRange(RationalTime(180.0, 30.0), RationalTime(90.0, 30.0)) }); track->remove_child(2); // Delete the 1 frame item - + // Asserts. - assert_clip_ranges(track, - { - TimeRange( - RationalTime(0.0, 23.98), - RationalTime(71.94, 23.98)), - TimeRange( - RationalTime(0.0, 30.0), - RationalTime(31.0, 30.0)), - TimeRange( - RationalTime(32.0, 30.0), - RationalTime(58, 30.0)), - TimeRange( - RationalTime(90.0, 30.0), - RationalTime(90.0, 30.0)) - }); - - assert_track_ranges(track, - { - TimeRange( - RationalTime(0.0, 23.98), - RationalTime(71.94, 23.98)), - TimeRange( - RationalTime(90.0, 30.0), - RationalTime(31.0, 30.0)), - TimeRange( - RationalTime(121.0, 30.0), - RationalTime(58, 30.0)), - TimeRange( - RationalTime(179.0, 30.0), - RationalTime(90.0, 30.0)) - }); + assert_clip_ranges( + track, + { TimeRange(RationalTime(0.0, 23.98), RationalTime(71.94, 23.98)), + TimeRange(RationalTime(0.0, 30.0), RationalTime(31.0, 30.0)), + TimeRange(RationalTime(32.0, 30.0), RationalTime(58, 30.0)), + TimeRange(RationalTime(90.0, 30.0), RationalTime(90.0, 30.0)) }); + + assert_track_ranges( + track, + { TimeRange(RationalTime(0.0, 23.98), RationalTime(71.94, 23.98)), + TimeRange(RationalTime(90.0, 30.0), RationalTime(31.0, 30.0)), + TimeRange(RationalTime(121.0, 30.0), RationalTime(58, 30.0)), + TimeRange(RationalTime(179.0, 30.0), RationalTime(90.0, 30.0)) }); // Slice again at the same points (this slice does nothing at it is at // start point). - algo::slice( - track, - RationalTime(121.0, 30.0), - true, - &error_status); + algo::slice(track, RationalTime(121.0, 30.0), true, &error_status); // Asserts. assert(!is_error(error_status)); - assert_clip_ranges(track, - { - TimeRange( - RationalTime(0.0, 23.98), - RationalTime(71.94, 23.98)), - TimeRange( - RationalTime(0.0, 30.0), - RationalTime(31.0, 30.0)), - TimeRange( - RationalTime(32.0, 30.0), - RationalTime(58, 30.0)), - TimeRange( - RationalTime(90.0, 30.0), - RationalTime(90.0, 30.0)) - }); - - assert_track_ranges(track, - { - TimeRange( - RationalTime(0.0, 23.98), - RationalTime(71.94, 23.98)), - TimeRange( - RationalTime(90.0, 30.0), - RationalTime(31.0, 30.0)), - TimeRange( - RationalTime(121.0, 30.0), - RationalTime(58, 30.0)), - TimeRange( - RationalTime(179.0, 30.0), - RationalTime(90.0, 30.0)) - }); + assert_clip_ranges( + track, + { TimeRange(RationalTime(0.0, 23.98), RationalTime(71.94, 23.98)), + TimeRange(RationalTime(0.0, 30.0), RationalTime(31.0, 30.0)), + TimeRange(RationalTime(32.0, 30.0), RationalTime(58, 30.0)), + TimeRange(RationalTime(90.0, 30.0), RationalTime(90.0, 30.0)) }); - // Slice again for one frame - algo::slice( + assert_track_ranges( track, - RationalTime(122.0, 30.0), - true, - &error_status); + { TimeRange(RationalTime(0.0, 23.98), RationalTime(71.94, 23.98)), + TimeRange(RationalTime(90.0, 30.0), RationalTime(31.0, 30.0)), + TimeRange(RationalTime(121.0, 30.0), RationalTime(58, 30.0)), + TimeRange(RationalTime(179.0, 30.0), RationalTime(90.0, 30.0)) }); + + // Slice again for one frame + algo::slice(track, RationalTime(122.0, 30.0), true, &error_status); // Asserts. assert(!is_error(error_status)); - assert_clip_ranges(track, - { - TimeRange( - RationalTime(0.0, 23.98), - RationalTime(71.94, 23.98)), - TimeRange( - RationalTime(0.0, 30.0), - RationalTime(31.0, 30.0)), - TimeRange( - RationalTime(32.0, 30.0), - RationalTime(1, 30.0)), - TimeRange( - RationalTime(33.0, 30.0), - RationalTime(57, 30.0)), - TimeRange( - RationalTime(90.0, 30.0), - RationalTime(90.0, 30.0)) - }); - assert_track_ranges(track, - { - TimeRange( - RationalTime(0.0, 23.98), - RationalTime(71.94, 23.98)), - TimeRange( - RationalTime(90.0, 30.0), - RationalTime(31.0, 30.0)), - TimeRange( - RationalTime(121.0, 30.0), - RationalTime(1.0, 30.0)), - TimeRange( - RationalTime(122.0, 30.0), - RationalTime(57, 30.0)), - TimeRange( - RationalTime(179.0, 30.0), - RationalTime(90.0, 30.0)) - }); - - // Slice again for one frame - algo::slice( + assert_clip_ranges( track, - RationalTime(179.0, 30.0), - true, - &error_status); + { TimeRange(RationalTime(0.0, 23.98), RationalTime(71.94, 23.98)), + TimeRange(RationalTime(0.0, 30.0), RationalTime(31.0, 30.0)), + TimeRange(RationalTime(32.0, 30.0), RationalTime(1, 30.0)), + TimeRange(RationalTime(33.0, 30.0), RationalTime(57, 30.0)), + TimeRange(RationalTime(90.0, 30.0), RationalTime(90.0, 30.0)) }); + assert_track_ranges( + track, + { TimeRange(RationalTime(0.0, 23.98), RationalTime(71.94, 23.98)), + TimeRange(RationalTime(90.0, 30.0), RationalTime(31.0, 30.0)), + TimeRange(RationalTime(121.0, 30.0), RationalTime(1.0, 30.0)), + TimeRange(RationalTime(122.0, 30.0), RationalTime(57, 30.0)), + TimeRange(RationalTime(179.0, 30.0), RationalTime(90.0, 30.0)) }); + + // Slice again for one frame + algo::slice(track, RationalTime(179.0, 30.0), true, &error_status); // Asserts. assert(!is_error(error_status)); - assert_clip_ranges(track, - { - TimeRange( - RationalTime(0.0, 23.98), - RationalTime(71.94, 23.98)), - TimeRange( - RationalTime(0.0, 30.0), - RationalTime(31.0, 30.0)), - TimeRange( - RationalTime(32.0, 30.0), - RationalTime(1, 30.0)), - TimeRange( - RationalTime(33.0, 30.0), - RationalTime(57, 30.0)), - TimeRange( - RationalTime(90.0, 30.0), - RationalTime(90.0, 30.0)) - }); - assert_track_ranges(track, - { - TimeRange( - RationalTime(0.0, 23.98), - RationalTime(71.94, 23.98)), - TimeRange( - RationalTime(90.0, 30.0), - RationalTime(31.0, 30.0)), - TimeRange( - RationalTime(121.0, 30.0), - RationalTime(1.0, 30.0)), - TimeRange( - RationalTime(122.0, 30.0), - RationalTime(57, 30.0)), - TimeRange( - RationalTime(179.0, 30.0), - RationalTime(90.0, 30.0)) - }); + assert_clip_ranges( + track, + { TimeRange(RationalTime(0.0, 23.98), RationalTime(71.94, 23.98)), + TimeRange(RationalTime(0.0, 30.0), RationalTime(31.0, 30.0)), + TimeRange(RationalTime(32.0, 30.0), RationalTime(1, 30.0)), + TimeRange(RationalTime(33.0, 30.0), RationalTime(57, 30.0)), + TimeRange(RationalTime(90.0, 30.0), RationalTime(90.0, 30.0)) }); + assert_track_ranges( + track, + { TimeRange(RationalTime(0.0, 23.98), RationalTime(71.94, 23.98)), + TimeRange(RationalTime(90.0, 30.0), RationalTime(31.0, 30.0)), + TimeRange(RationalTime(121.0, 30.0), RationalTime(1.0, 30.0)), + TimeRange(RationalTime(122.0, 30.0), RationalTime(57, 30.0)), + TimeRange(RationalTime(179.0, 30.0), RationalTime(90.0, 30.0)) }); }); - tests.add_test("test_edit_slice_transitions_1", [] { - // Four clips with two transitions. test_edit_slice_transitions( RationalTime(24.0, 24.0), @@ -775,36 +575,30 @@ main(int argc, char** argv) TimeRange(RationalTime(24.0, 24.0), RationalTime(50.0, 24.0)), TimeRange(RationalTime(74.0, 24.0), RationalTime(30.0, 24.0)), TimeRange(RationalTime(104.0, 24.0), RationalTime(25.0, 24.0)) }); - - test_edit_slice_transitions( + + test_edit_slice_transitions( RationalTime(23.0, 24.0), { TimeRange(RationalTime(0.0, 24.0), RationalTime(23.0, 24.0)), TimeRange(RationalTime(23.0, 24.0), RationalTime(1.0, 24.0)), TimeRange(RationalTime(24.0, 24.0), RationalTime(50.0, 24.0)), TimeRange(RationalTime(74.0, 24.0), RationalTime(30.0, 24.0)), TimeRange(RationalTime(104.0, 24.0), RationalTime(25.0, 24.0)) }); - }); - + tests.add_test("test_edit_overwrite_0", [] { // Create a track with one clip. SerializableObject::Retainer clip_0 = new Clip( "clip_0", nullptr, - TimeRange( - RationalTime(0.0, 24.0), - RationalTime(24.0, 24.0))); - SerializableObject::Retainer track = - new Track(); + TimeRange(RationalTime(0.0, 24.0), RationalTime(24.0, 24.0))); + SerializableObject::Retainer track = new Track(); track->append_child(clip_0); // Overwrite past the clip. SerializableObject::Retainer clip_1 = new Clip( "clip_1", nullptr, - TimeRange( - RationalTime(0.0, 24.0), - RationalTime(24.0, 24.0))); + TimeRange(RationalTime(0.0, 24.0), RationalTime(24.0, 24.0))); OTIO_NS::ErrorStatus error_status; algo::overwrite( clip_1, @@ -823,9 +617,7 @@ main(int argc, char** argv) auto range = clip_1->trimmed_range_in_parent().value(); assertEqual( range, - TimeRange( - RationalTime(48.0, 24.0), - RationalTime(24.0, 24.0))); + TimeRange(RationalTime(48.0, 24.0), RationalTime(24.0, 24.0))); }); tests.add_test("test_edit_overwrite_1", [] { @@ -833,20 +625,15 @@ main(int argc, char** argv) SerializableObject::Retainer clip_0 = new Clip( "clip_0", nullptr, - TimeRange( - RationalTime(0.0, 24.0), - RationalTime(24.0, 24.0))); - SerializableObject::Retainer track = - new Track(); + TimeRange(RationalTime(0.0, 24.0), RationalTime(24.0, 24.0))); + SerializableObject::Retainer track = new Track(); track->append_child(clip_0); // Overwrite past the clip. SerializableObject::Retainer clip_1 = new Clip( "clip_1", nullptr, - TimeRange( - RationalTime(0.0, 24.0), - RationalTime(24.0, 24.0))); + TimeRange(RationalTime(0.0, 24.0), RationalTime(24.0, 24.0))); OTIO_NS::ErrorStatus error_status; algo::overwrite( clip_1, @@ -865,9 +652,7 @@ main(int argc, char** argv) auto range = clip_1->trimmed_range_in_parent().value(); assertEqual( range, - TimeRange( - RationalTime(48.0, 24.0), - RationalTime(24.0, 24.0))); + TimeRange(RationalTime(48.0, 24.0), RationalTime(24.0, 24.0))); }); tests.add_test("test_edit_overwrite_2", [] { @@ -875,20 +660,15 @@ main(int argc, char** argv) SerializableObject::Retainer clip_0 = new Clip( "clip_0", nullptr, - TimeRange( - RationalTime(1.0, 24.0), - RationalTime(100.0, 24.0))); - SerializableObject::Retainer track = - new Track(); + TimeRange(RationalTime(1.0, 24.0), RationalTime(100.0, 24.0))); + SerializableObject::Retainer track = new Track(); track->append_child(clip_0); // Overwrite a single frame inside the clip. SerializableObject::Retainer clip_1 = new Clip( "clip_1", nullptr, - TimeRange( - RationalTime(1.0, 24.0), - RationalTime(1.0, 24.0))); + TimeRange(RationalTime(1.0, 24.0), RationalTime(1.0, 24.0))); OTIO_NS::ErrorStatus error_status; algo::overwrite( clip_1, @@ -902,30 +682,16 @@ main(int argc, char** argv) assert(!is_error(error_status)); const RationalTime duration = track->duration(); assert(duration == RationalTime(100.0, 24.0)); - assert_clip_ranges(track, - { - TimeRange( - RationalTime(1.0, 24.0), - RationalTime(42.0, 24.0)), - TimeRange( - RationalTime(1.0, 24.0), - RationalTime(1.0, 24.0)), - TimeRange( - RationalTime(44.0, 24.0), - RationalTime(57.0, 24.0)) - }); - assert_track_ranges(track, - { - TimeRange( - RationalTime(0.0, 24.0), - RationalTime(42.0, 24.0)), - TimeRange( - RationalTime(42.0, 24.0), - RationalTime(1.0, 24.0)), - TimeRange( - RationalTime(43.0, 24.0), - RationalTime(57.0, 24.0)) - }); + assert_clip_ranges( + track, + { TimeRange(RationalTime(1.0, 24.0), RationalTime(42.0, 24.0)), + TimeRange(RationalTime(1.0, 24.0), RationalTime(1.0, 24.0)), + TimeRange(RationalTime(44.0, 24.0), RationalTime(57.0, 24.0)) }); + assert_track_ranges( + track, + { TimeRange(RationalTime(0.0, 24.0), RationalTime(42.0, 24.0)), + TimeRange(RationalTime(42.0, 24.0), RationalTime(1.0, 24.0)), + TimeRange(RationalTime(43.0, 24.0), RationalTime(57.0, 24.0)) }); }); tests.add_test("test_edit_overwrite_3", [] { @@ -933,17 +699,12 @@ main(int argc, char** argv) SerializableObject::Retainer clip_0 = new Clip( "clip_0", nullptr, - TimeRange( - RationalTime(0.0, 24.0), - RationalTime(24.0, 24.0))); + TimeRange(RationalTime(0.0, 24.0), RationalTime(24.0, 24.0))); SerializableObject::Retainer clip_1 = new Clip( "clip_1", nullptr, - TimeRange( - RationalTime(0.0, 24.0), - RationalTime(24.0, 24.0))); - SerializableObject::Retainer track = - new Track(); + TimeRange(RationalTime(0.0, 24.0), RationalTime(24.0, 24.0))); + SerializableObject::Retainer track = new Track(); track->append_child(clip_0); track->append_child(clip_1); @@ -951,10 +712,8 @@ main(int argc, char** argv) SerializableObject::Retainer clip_2 = new Clip( "clip_2", nullptr, - TimeRange( - RationalTime(0.0, 24.0), - RationalTime(24.0, 24.0))); - const RationalTime duration = track->duration(); + TimeRange(RationalTime(0.0, 24.0), RationalTime(24.0, 24.0))); + const RationalTime duration = track->duration(); OTIO_NS::ErrorStatus error_status; algo::overwrite( clip_2, @@ -968,41 +727,28 @@ main(int argc, char** argv) assert(!is_error(error_status)); const RationalTime new_duration = track->duration(); assert_duration(new_duration, duration); - assert_track_ranges(track, - { - TimeRange( - RationalTime(0.0, 24.0), - RationalTime(12.0, 24.0)), - TimeRange( - RationalTime(12.0, 24.0), - RationalTime(24.0, 24.0)), - TimeRange( - RationalTime(36.0, 24.0), - RationalTime(12.0, 24.0)) - }); + assert_track_ranges( + track, + { TimeRange(RationalTime(0.0, 24.0), RationalTime(12.0, 24.0)), + TimeRange(RationalTime(12.0, 24.0), RationalTime(24.0, 24.0)), + TimeRange(RationalTime(36.0, 24.0), RationalTime(12.0, 24.0)) }); }); - tests.add_test("test_edit_overwrite_4", [] { // Create a track with one long clip. SerializableObject::Retainer clip_0 = new Clip( "clip_0", nullptr, - TimeRange( - RationalTime(0.0, 24.0), - RationalTime(704.0, 24.0))); - SerializableObject::Retainer track = - new Track(); + TimeRange(RationalTime(0.0, 24.0), RationalTime(704.0, 24.0))); + SerializableObject::Retainer track = new Track(); track->append_child(clip_0); // Overwrite one portion of the clip. SerializableObject::Retainer over_1 = new Clip( "over_1", nullptr, - TimeRange( - RationalTime(0.0, 24.0), - RationalTime(1.0, 24.0))); - const RationalTime duration = track->duration(); + TimeRange(RationalTime(0.0, 24.0), RationalTime(1.0, 24.0))); + const RationalTime duration = track->duration(); OTIO_NS::ErrorStatus error_status; algo::overwrite( over_1, @@ -1016,30 +762,20 @@ main(int argc, char** argv) assert(!is_error(error_status)); const RationalTime new_duration = track->duration(); assert_duration(new_duration, duration); - assert_track_ranges(track, - { - TimeRange( - RationalTime(0.0, 24.0), - RationalTime(272.0, 24.0)), - TimeRange( - RationalTime(272.0, 24.0), - RationalTime(1.0, 24.0)), - TimeRange( - RationalTime(273.0, 24.0), - RationalTime(431.0, 24.0)) - }); - assert_clip_ranges(track, - { - TimeRange( - RationalTime(0.0, 24.0), - RationalTime(272.0, 24.0)), - TimeRange( - RationalTime(0.0, 24.0), - RationalTime(1.0, 24.0)), - TimeRange( - RationalTime(273.0, 24.0), - RationalTime(431.0, 24.0)) - }); + assert_track_ranges( + track, + { TimeRange(RationalTime(0.0, 24.0), RationalTime(272.0, 24.0)), + TimeRange(RationalTime(272.0, 24.0), RationalTime(1.0, 24.0)), + TimeRange( + RationalTime(273.0, 24.0), + RationalTime(431.0, 24.0)) }); + assert_clip_ranges( + track, + { TimeRange(RationalTime(0.0, 24.0), RationalTime(272.0, 24.0)), + TimeRange(RationalTime(0.0, 24.0), RationalTime(1.0, 24.0)), + TimeRange( + RationalTime(273.0, 24.0), + RationalTime(431.0, 24.0)) }); }); tests.add_test("test_edit_overwrite_5", [] { @@ -1047,21 +783,16 @@ main(int argc, char** argv) SerializableObject::Retainer clip_0 = new Clip( "clip_0", nullptr, - TimeRange( - RationalTime(0.0, 30.0), - RationalTime(704.0, 30.0))); - SerializableObject::Retainer track = - new Track(); + TimeRange(RationalTime(0.0, 30.0), RationalTime(704.0, 30.0))); + SerializableObject::Retainer track = new Track(); track->append_child(clip_0); // Overwrite one portion of the clip. SerializableObject::Retainer over_1 = new Clip( "over_1", nullptr, - TimeRange( - RationalTime(0.0, 30.0), - RationalTime(1.0, 30.0))); - const RationalTime duration = track->duration(); + TimeRange(RationalTime(0.0, 30.0), RationalTime(1.0, 30.0))); + const RationalTime duration = track->duration(); OTIO_NS::ErrorStatus error_status; algo::overwrite( over_1, @@ -1075,39 +806,27 @@ main(int argc, char** argv) const RationalTime new_duration = track->duration(); assert_duration(new_duration, duration); } - assert_track_ranges(track, - { - TimeRange( - RationalTime(0.0, 30.0), - RationalTime(272.0, 30.0)), - TimeRange( - RationalTime(272.0, 30.0), - RationalTime(1.0, 30.0)), - TimeRange( - RationalTime(273.0, 30.0), - RationalTime(431.0, 30.0)) - }); - assert_clip_ranges(track, - { - TimeRange( - RationalTime(0.0, 30.0), - RationalTime(272.0, 30.0)), - TimeRange( - RationalTime(0.0, 30.0), - RationalTime(1.0, 30.0)), - TimeRange( - RationalTime(273.0, 30.0), - RationalTime(431.0, 30.0)) - }); + assert_track_ranges( + track, + { TimeRange(RationalTime(0.0, 30.0), RationalTime(272.0, 30.0)), + TimeRange(RationalTime(272.0, 30.0), RationalTime(1.0, 30.0)), + TimeRange( + RationalTime(273.0, 30.0), + RationalTime(431.0, 30.0)) }); + assert_clip_ranges( + track, + { TimeRange(RationalTime(0.0, 30.0), RationalTime(272.0, 30.0)), + TimeRange(RationalTime(0.0, 30.0), RationalTime(1.0, 30.0)), + TimeRange( + RationalTime(273.0, 30.0), + RationalTime(431.0, 30.0)) }); // Overwrite another portion of the clip. SerializableObject::Retainer over_2 = new Clip( "over_2", nullptr, - TimeRange( - RationalTime(0.0, 30.0), - RationalTime(1.0, 30.0))); - + TimeRange(RationalTime(0.0, 30.0), RationalTime(1.0, 30.0))); + algo::overwrite( over_2, track, @@ -1115,58 +834,38 @@ main(int argc, char** argv) true, nullptr, &error_status); - + // Asserts. assert(!is_error(error_status)); { const RationalTime new_duration = track->duration(); assert_duration(new_duration, duration); } - assert_track_ranges(track, - { - TimeRange( - RationalTime(0.0, 30.0), - RationalTime(272.0, 30.0)), - TimeRange( - RationalTime(272.0, 30.0), - RationalTime(1.0, 30.0)), - TimeRange( - RationalTime(273.0, 30.0), - RationalTime(87.0, 30.0)), - TimeRange( - RationalTime(360.0, 30.0), - RationalTime(1.0, 30.0)), - TimeRange( - RationalTime(361.0, 30.0), - RationalTime(343.0, 30.0)) - }); - assert_clip_ranges(track, - { - TimeRange( - RationalTime(0.0, 30.0), - RationalTime(272.0, 30.0)), - TimeRange( - RationalTime(0.0, 30.0), - RationalTime(1.0, 30.0)), - TimeRange( - RationalTime(273.0, 30.0), - RationalTime(87.0, 30.0)), - TimeRange( - RationalTime(0.0, 30.0), - RationalTime(1.0, 30.0)), - TimeRange( - RationalTime(361.0, 30.0), - RationalTime(343.0, 30.0)) - }); + assert_track_ranges( + track, + { TimeRange(RationalTime(0.0, 30.0), RationalTime(272.0, 30.0)), + TimeRange(RationalTime(272.0, 30.0), RationalTime(1.0, 30.0)), + TimeRange(RationalTime(273.0, 30.0), RationalTime(87.0, 30.0)), + TimeRange(RationalTime(360.0, 30.0), RationalTime(1.0, 30.0)), + TimeRange( + RationalTime(361.0, 30.0), + RationalTime(343.0, 30.0)) }); + assert_clip_ranges( + track, + { TimeRange(RationalTime(0.0, 30.0), RationalTime(272.0, 30.0)), + TimeRange(RationalTime(0.0, 30.0), RationalTime(1.0, 30.0)), + TimeRange(RationalTime(273.0, 30.0), RationalTime(87.0, 30.0)), + TimeRange(RationalTime(0.0, 30.0), RationalTime(1.0, 30.0)), + TimeRange( + RationalTime(361.0, 30.0), + RationalTime(343.0, 30.0)) }); // Overwrite the same portion of the clip. SerializableObject::Retainer over_3 = new Clip( "over_3", nullptr, - TimeRange( - RationalTime(0.0, 30.0), - RationalTime(1.0, 30.0))); - + TimeRange(RationalTime(0.0, 30.0), RationalTime(1.0, 30.0))); + algo::overwrite( over_3, track, @@ -1174,49 +873,31 @@ main(int argc, char** argv) true, nullptr, &error_status); - + // Asserts. assert(!is_error(error_status)); { const RationalTime new_duration = track->duration(); assert_duration(new_duration, duration); } - assert_track_ranges(track, - { - TimeRange( - RationalTime(0.0, 30.0), - RationalTime(272.0, 30.0)), - TimeRange( - RationalTime(272.0, 30.0), - RationalTime(1.0, 30.0)), - TimeRange( - RationalTime(273.0, 30.0), - RationalTime(87.0, 30.0)), - TimeRange( - RationalTime(360.0, 30.0), - RationalTime(1.0, 30.0)), - TimeRange( - RationalTime(361.0, 30.0), - RationalTime(343.0, 30.0)) - }); - assert_clip_ranges(track, - { - TimeRange( - RationalTime(0.0, 30.0), - RationalTime(272.0, 30.0)), - TimeRange( - RationalTime(0.0, 30.0), - RationalTime(1.0, 30.0)), - TimeRange( - RationalTime(273.0, 30.0), - RationalTime(87.0, 30.0)), - TimeRange( - RationalTime(0.0, 30.0), - RationalTime(1.0, 30.0)), - TimeRange( - RationalTime(361.0, 30.0), - RationalTime(343.0, 30.0)) - }); + assert_track_ranges( + track, + { TimeRange(RationalTime(0.0, 30.0), RationalTime(272.0, 30.0)), + TimeRange(RationalTime(272.0, 30.0), RationalTime(1.0, 30.0)), + TimeRange(RationalTime(273.0, 30.0), RationalTime(87.0, 30.0)), + TimeRange(RationalTime(360.0, 30.0), RationalTime(1.0, 30.0)), + TimeRange( + RationalTime(361.0, 30.0), + RationalTime(343.0, 30.0)) }); + assert_clip_ranges( + track, + { TimeRange(RationalTime(0.0, 30.0), RationalTime(272.0, 30.0)), + TimeRange(RationalTime(0.0, 30.0), RationalTime(1.0, 30.0)), + TimeRange(RationalTime(273.0, 30.0), RationalTime(87.0, 30.0)), + TimeRange(RationalTime(0.0, 30.0), RationalTime(1.0, 30.0)), + TimeRange( + RationalTime(361.0, 30.0), + RationalTime(343.0, 30.0)) }); }); tests.add_test("test_edit_overwrite_6", [] { @@ -1224,23 +905,16 @@ main(int argc, char** argv) SerializableObject::Retainer clip_0 = new Clip( "clip_0", nullptr, - TimeRange( - RationalTime(0.0, 23.98), - RationalTime(71.94, 23.98))); + TimeRange(RationalTime(0.0, 23.98), RationalTime(71.94, 23.98))); SerializableObject::Retainer clip_1 = new Clip( "clip_1", nullptr, - TimeRange( - RationalTime(0.0, 23.98), - RationalTime(71.94, 23.98))); + TimeRange(RationalTime(0.0, 23.98), RationalTime(71.94, 23.98))); SerializableObject::Retainer clip_2 = new Clip( "clip_2", nullptr, - TimeRange( - RationalTime(90.0, 30), - RationalTime(90.0, 30))); - SerializableObject::Retainer track = - new Track(); + TimeRange(RationalTime(90.0, 30), RationalTime(90.0, 30))); + SerializableObject::Retainer track = new Track(); track->append_child(clip_0); track->append_child(clip_1); track->append_child(clip_2); @@ -1249,11 +923,9 @@ main(int argc, char** argv) SerializableObject::Retainer over_1 = new Clip( "over_1", nullptr, - TimeRange( - RationalTime(0.0, 30.0), - RationalTime(1.0, 30.0))); - - const RationalTime duration = track->duration(); + TimeRange(RationalTime(0.0, 30.0), RationalTime(1.0, 30.0))); + + const RationalTime duration = track->duration(); OTIO_NS::ErrorStatus error_status; algo::overwrite( over_1, @@ -1266,65 +938,37 @@ main(int argc, char** argv) assert(!is_error(error_status)); const RationalTime new_duration = track->duration(); assert_duration(new_duration, duration); - assert_track_ranges(track, - { - TimeRange( - RationalTime(0.0, 23.98), - RationalTime(71.94, 23.98)), - TimeRange( - RationalTime(90, 30.0), - RationalTime(47.0, 30.0)), - TimeRange( - RationalTime(137.0, 30.0), - RationalTime(1.0, 30.0)), - TimeRange( - RationalTime(138.0, 30.0), - RationalTime(42.0, 30.0)), - TimeRange( - RationalTime(180.0, 30.0), - RationalTime(90.0, 30.0)) - }); - assert_clip_ranges(track, - { - TimeRange( - RationalTime(0.0, 23.98), - RationalTime(71.94, 23.98)), - TimeRange( - RationalTime(0.0, 30.0), - RationalTime(47.0, 30.0)), - TimeRange( - RationalTime(0.0, 30.0), - RationalTime(1.0, 30.0)), - TimeRange( - RationalTime(48.0, 30.0), - RationalTime(42.0, 30.0)), - TimeRange( - RationalTime(90.0, 30.0), - RationalTime(90.0, 30.0)) - }); + assert_track_ranges( + track, + { TimeRange(RationalTime(0.0, 23.98), RationalTime(71.94, 23.98)), + TimeRange(RationalTime(90, 30.0), RationalTime(47.0, 30.0)), + TimeRange(RationalTime(137.0, 30.0), RationalTime(1.0, 30.0)), + TimeRange(RationalTime(138.0, 30.0), RationalTime(42.0, 30.0)), + TimeRange(RationalTime(180.0, 30.0), RationalTime(90.0, 30.0)) }); + assert_clip_ranges( + track, + { TimeRange(RationalTime(0.0, 23.98), RationalTime(71.94, 23.98)), + TimeRange(RationalTime(0.0, 30.0), RationalTime(47.0, 30.0)), + TimeRange(RationalTime(0.0, 30.0), RationalTime(1.0, 30.0)), + TimeRange(RationalTime(48.0, 30.0), RationalTime(42.0, 30.0)), + TimeRange(RationalTime(90.0, 30.0), RationalTime(90.0, 30.0)) }); }); - tests.add_test("test_edit_overwrite_7", [] { // Create a track with one long clip. SerializableObject::Retainer clip_0 = new Clip( "clip_0", nullptr, - TimeRange( - RationalTime(0.0, 24.0), - RationalTime(704.0, 24.0))); - SerializableObject::Retainer track = - new Track(); + TimeRange(RationalTime(0.0, 24.0), RationalTime(704.0, 24.0))); + SerializableObject::Retainer track = new Track(); track->append_child(clip_0); // Overwrite past the clip, creating a gap. SerializableObject::Retainer over_1 = new Clip( "over_1", nullptr, - TimeRange( - RationalTime(0.0, 24.0), - RationalTime(1.0, 24.0))); - const RationalTime duration = track->duration(); + TimeRange(RationalTime(0.0, 24.0), RationalTime(1.0, 24.0))); + const RationalTime duration = track->duration(); OTIO_NS::ErrorStatus error_status; algo::overwrite( over_1, @@ -1338,53 +982,33 @@ main(int argc, char** argv) assert(!is_error(error_status)); const RationalTime new_duration = track->duration(); assert_duration(new_duration, RationalTime(801.0, 24.0)); - assert_track_ranges(track, - { - TimeRange( - RationalTime(0.0, 24.0), - RationalTime(704.0, 24.0)), - TimeRange( - RationalTime(704.0, 24.0), - RationalTime(96.0, 24.0)), - TimeRange( - RationalTime(800.0, 24.0), - RationalTime(1.0, 24.0)) - }); - assert_clip_ranges(track, - { - TimeRange( - RationalTime(0.0, 24.0), - RationalTime(704.0, 24.0)), - TimeRange( - RationalTime(0.0, 24.0), - RationalTime(96.0, 24.0)), - TimeRange( - RationalTime(0.0, 24.0), - RationalTime(1.0, 24.0)) - }); + assert_track_ranges( + track, + { TimeRange(RationalTime(0.0, 24.0), RationalTime(704.0, 24.0)), + TimeRange(RationalTime(704.0, 24.0), RationalTime(96.0, 24.0)), + TimeRange(RationalTime(800.0, 24.0), RationalTime(1.0, 24.0)) }); + assert_clip_ranges( + track, + { TimeRange(RationalTime(0.0, 24.0), RationalTime(704.0, 24.0)), + TimeRange(RationalTime(0.0, 24.0), RationalTime(96.0, 24.0)), + TimeRange(RationalTime(0.0, 24.0), RationalTime(1.0, 24.0)) }); }); - tests.add_test("test_edit_overwrite_8", [] { // Create a track with one long clip. SerializableObject::Retainer clip_0 = new Clip( "clip_0", nullptr, - TimeRange( - RationalTime(0.0, 24.0), - RationalTime(704.0, 24.0))); - SerializableObject::Retainer track = - new Track(); + TimeRange(RationalTime(0.0, 24.0), RationalTime(704.0, 24.0))); + SerializableObject::Retainer track = new Track(); track->append_child(clip_0); // Overwrite before the clip, creating a gap. SerializableObject::Retainer over_1 = new Clip( "over_1", nullptr, - TimeRange( - RationalTime(0.0, 24.0), - RationalTime(1.0, 24.0))); - const RationalTime duration = track->duration(); + TimeRange(RationalTime(0.0, 24.0), RationalTime(1.0, 24.0))); + const RationalTime duration = track->duration(); OTIO_NS::ErrorStatus error_status; algo::overwrite( over_1, @@ -1398,54 +1022,33 @@ main(int argc, char** argv) assert(!is_error(error_status)); const RationalTime new_duration = track->duration(); assert_duration(new_duration, RationalTime(734.0, 24.0)); - assert_track_ranges(track, - { - TimeRange( - RationalTime(0.0, 24.0), - RationalTime(1.0, 24.0)), - TimeRange( - RationalTime(1.0, 24.0), - RationalTime(29.0, 24.0)), - TimeRange( - RationalTime(30.0, 24.0), - RationalTime(704.0, 24.0)) - }); - assert_clip_ranges(track, - { - TimeRange( - RationalTime(0.0, 24.0), - RationalTime(1.0, 24.0)), - TimeRange( - RationalTime(0.0, 24.0), - RationalTime(29.0, 24.0)), - TimeRange( - RationalTime(0.0, 24.0), - RationalTime(704.0, 24.0)) - }); + assert_track_ranges( + track, + { TimeRange(RationalTime(0.0, 24.0), RationalTime(1.0, 24.0)), + TimeRange(RationalTime(1.0, 24.0), RationalTime(29.0, 24.0)), + TimeRange(RationalTime(30.0, 24.0), RationalTime(704.0, 24.0)) }); + assert_clip_ranges( + track, + { TimeRange(RationalTime(0.0, 24.0), RationalTime(1.0, 24.0)), + TimeRange(RationalTime(0.0, 24.0), RationalTime(29.0, 24.0)), + TimeRange(RationalTime(0.0, 24.0), RationalTime(704.0, 24.0)) }); }); - - tests.add_test("test_edit_overwrite_9", [] { // Create a track with one long clip. SerializableObject::Retainer clip_0 = new Clip( "clip_0", nullptr, - TimeRange( - RationalTime(0.0, 24.0), - RationalTime(704.0, 24.0))); - SerializableObject::Retainer track = - new Track(); + TimeRange(RationalTime(0.0, 24.0), RationalTime(704.0, 24.0))); + SerializableObject::Retainer track = new Track(); track->append_child(clip_0); // Overwrite before the clip, creating a gap. SerializableObject::Retainer over_1 = new Clip( "over_1", nullptr, - TimeRange( - RationalTime(0.0, 24.0), - RationalTime(100.0, 24.0))); - const RationalTime duration = track->duration(); + TimeRange(RationalTime(0.0, 24.0), RationalTime(100.0, 24.0))); + const RationalTime duration = track->duration(); OTIO_NS::ErrorStatus error_status; algo::overwrite( over_1, @@ -1459,46 +1062,31 @@ main(int argc, char** argv) assert(!is_error(error_status)); const RationalTime new_duration = track->duration(); assert_duration(new_duration, duration); - assert_track_ranges(track, - { - TimeRange( - RationalTime(0.0, 24.0), - RationalTime(70.0, 24.0)), - TimeRange( - RationalTime(70.0, 24.0), - RationalTime(634.0, 24.0)) - }); - assert_clip_ranges(track, - { - TimeRange( - RationalTime(0.0, 24.0), - RationalTime(70.0, 24.0)), - TimeRange( - RationalTime(70.0, 24.0), - RationalTime(634.0, 24.0)) - }); + assert_track_ranges( + track, + { TimeRange(RationalTime(0.0, 24.0), RationalTime(70.0, 24.0)), + TimeRange(RationalTime(70.0, 24.0), RationalTime(634.0, 24.0)) }); + assert_clip_ranges( + track, + { TimeRange(RationalTime(0.0, 24.0), RationalTime(70.0, 24.0)), + TimeRange(RationalTime(70.0, 24.0), RationalTime(634.0, 24.0)) }); }); - + tests.add_test("test_edit_overwrite_10", [] { // Create a track with one long clip. SerializableObject::Retainer clip_0 = new Clip( "clip_0", nullptr, - TimeRange( - RationalTime(0.0, 24.0), - RationalTime(704.0, 24.0))); - SerializableObject::Retainer track = - new Track(); + TimeRange(RationalTime(0.0, 24.0), RationalTime(704.0, 24.0))); + SerializableObject::Retainer track = new Track(); track->append_child(clip_0); // Overwrite before the clip, creating a gap. SerializableObject::Retainer over_1 = new Clip( "over_1", nullptr, - TimeRange( - RationalTime(0.0, 24.0), - RationalTime(100.0, 24.0))); - const RationalTime duration = track->duration(); + TimeRange(RationalTime(0.0, 24.0), RationalTime(100.0, 24.0))); + const RationalTime duration = track->duration(); OTIO_NS::ErrorStatus error_status; algo::overwrite( over_1, @@ -1512,50 +1100,30 @@ main(int argc, char** argv) assert(!is_error(error_status)); const RationalTime new_duration = track->duration(); //assert_duration(new_duration, duration); - assert_track_ranges(track, - { - TimeRange( - RationalTime(0.0, 24.0), - RationalTime(20.0, 24.0)), - TimeRange( - RationalTime(20.0, 24.0), - RationalTime(70.0, 24.0)), - TimeRange( - RationalTime(90.0, 24.0), - RationalTime(614.0, 24.0)) - }); - assert_clip_ranges(track, - { - TimeRange( - RationalTime(0.0, 24.0), - RationalTime(20.0, 24.0)), - TimeRange( - RationalTime(0.0, 24.0), - RationalTime(70.0, 24.0)), - TimeRange( - RationalTime(90.0, 24.0), - RationalTime(614.0, 24.0)) - }); + assert_track_ranges( + track, + { TimeRange(RationalTime(0.0, 24.0), RationalTime(20.0, 24.0)), + TimeRange(RationalTime(20.0, 24.0), RationalTime(70.0, 24.0)), + TimeRange(RationalTime(90.0, 24.0), RationalTime(614.0, 24.0)) }); + assert_clip_ranges( + track, + { TimeRange(RationalTime(0.0, 24.0), RationalTime(20.0, 24.0)), + TimeRange(RationalTime(0.0, 24.0), RationalTime(70.0, 24.0)), + TimeRange(RationalTime(90.0, 24.0), RationalTime(614.0, 24.0)) }); }); - // Insert at middle of clip_0 tests.add_test("test_edit_insert_1", [] { // Create a track with two clips. SerializableObject::Retainer clip_0 = new Clip( "clip_0", nullptr, - TimeRange( - RationalTime(0.0, 24.0), - RationalTime(24.0, 24.0))); + TimeRange(RationalTime(0.0, 24.0), RationalTime(24.0, 24.0))); SerializableObject::Retainer clip_1 = new Clip( "clip_1", nullptr, - TimeRange( - RationalTime(0.0, 24.0), - RationalTime(24.0, 24.0))); - SerializableObject::Retainer track = - new Track(); + TimeRange(RationalTime(0.0, 24.0), RationalTime(24.0, 24.0))); + SerializableObject::Retainer track = new Track(); track->append_child(clip_0); track->append_child(clip_1); @@ -1563,9 +1131,7 @@ main(int argc, char** argv) SerializableObject::Retainer insert_1 = new Clip( "insert_1", nullptr, - TimeRange( - RationalTime(0.0, 24.0), - RationalTime(12.0, 24.0))); + TimeRange(RationalTime(0.0, 24.0), RationalTime(12.0, 24.0))); OTIO_NS::ErrorStatus error_status; algo::insert( insert_1, @@ -1579,22 +1145,13 @@ main(int argc, char** argv) assert(!is_error(error_status)); assertEqual(track->children().size(), 4); const RationalTime duration = track->duration(); - assert_duration(duration, RationalTime(60.0,24.0)); - assert_track_ranges(track, - { - TimeRange( - RationalTime(0.0, 24.0), - RationalTime(12.0, 24.0)), - TimeRange( - RationalTime(12.0, 24.0), - RationalTime(12.0, 24.0)), - TimeRange( - RationalTime(24.0, 24.0), - RationalTime(12.0, 24.0)), - TimeRange( - RationalTime(36.0, 24.0), - RationalTime(24.0, 24.0)) - }); + assert_duration(duration, RationalTime(60.0, 24.0)); + assert_track_ranges( + track, + { TimeRange(RationalTime(0.0, 24.0), RationalTime(12.0, 24.0)), + TimeRange(RationalTime(12.0, 24.0), RationalTime(12.0, 24.0)), + TimeRange(RationalTime(24.0, 24.0), RationalTime(12.0, 24.0)), + TimeRange(RationalTime(36.0, 24.0), RationalTime(24.0, 24.0)) }); }); // Insert at start of clip_0. @@ -1603,17 +1160,12 @@ main(int argc, char** argv) SerializableObject::Retainer clip_0 = new Clip( "clip_0", nullptr, - TimeRange( - RationalTime(0.0, 24.0), - RationalTime(24.0, 24.0))); + TimeRange(RationalTime(0.0, 24.0), RationalTime(24.0, 24.0))); SerializableObject::Retainer clip_1 = new Clip( "clip_1", nullptr, - TimeRange( - RationalTime(0.0, 24.0), - RationalTime(24.0, 24.0))); - SerializableObject::Retainer track = - new Track(); + TimeRange(RationalTime(0.0, 24.0), RationalTime(24.0, 24.0))); + SerializableObject::Retainer track = new Track(); track->append_child(clip_0); track->append_child(clip_1); @@ -1621,9 +1173,7 @@ main(int argc, char** argv) SerializableObject::Retainer insert_1 = new Clip( "insert_1", nullptr, - TimeRange( - RationalTime(0.0, 24.0), - RationalTime(12.0, 24.0))); + TimeRange(RationalTime(0.0, 24.0), RationalTime(12.0, 24.0))); OTIO_NS::ErrorStatus error_status; algo::insert( insert_1, @@ -1636,40 +1186,28 @@ main(int argc, char** argv) // Asserts. assert(!is_error(error_status)); assertEqual(track->children().size(), 3); - + const RationalTime duration = track->duration(); - assert_duration(duration, RationalTime(60.0,24.0)); - assert_track_ranges(track, - { - TimeRange( - RationalTime(0.0, 24.0), - RationalTime(12.0, 24.0)), - TimeRange( - RationalTime(12.0, 24.0), - RationalTime(24.0, 24.0)), - TimeRange( - RationalTime(36.0, 24.0), - RationalTime(24.0, 24.0)) - }); + assert_duration(duration, RationalTime(60.0, 24.0)); + assert_track_ranges( + track, + { TimeRange(RationalTime(0.0, 24.0), RationalTime(12.0, 24.0)), + TimeRange(RationalTime(12.0, 24.0), RationalTime(24.0, 24.0)), + TimeRange(RationalTime(36.0, 24.0), RationalTime(24.0, 24.0)) }); }); - + // Insert at start of clip_1 (insert at 0 index). tests.add_test("test_edit_insert_3", [] { // Create a track with two clips. SerializableObject::Retainer clip_0 = new Clip( "clip_0", nullptr, - TimeRange( - RationalTime(0.0, 24.0), - RationalTime(24.0, 24.0))); + TimeRange(RationalTime(0.0, 24.0), RationalTime(24.0, 24.0))); SerializableObject::Retainer clip_1 = new Clip( "clip_1", nullptr, - TimeRange( - RationalTime(0.0, 24.0), - RationalTime(24.0, 24.0))); - SerializableObject::Retainer track = - new Track(); + TimeRange(RationalTime(0.0, 24.0), RationalTime(24.0, 24.0))); + SerializableObject::Retainer track = new Track(); track->append_child(clip_0); track->append_child(clip_1); @@ -1677,9 +1215,7 @@ main(int argc, char** argv) SerializableObject::Retainer insert_1 = new Clip( "insert_1", nullptr, - TimeRange( - RationalTime(0.0, 24.0), - RationalTime(12.0, 24.0))); + TimeRange(RationalTime(0.0, 24.0), RationalTime(12.0, 24.0))); OTIO_NS::ErrorStatus error_status; algo::insert( insert_1, @@ -1692,46 +1228,35 @@ main(int argc, char** argv) // Asserts. assert(!is_error(error_status)); assertEqual(track->children().size(), 3); - + const RationalTime duration = track->duration(); - assertEqual(duration, RationalTime(60.0,24.0)); + assertEqual(duration, RationalTime(60.0, 24.0)); auto range = clip_0->trimmed_range_in_parent().value(); assertEqual( range, - TimeRange( - RationalTime(12.0, 24.0), - RationalTime(24.0, 24.0))); + TimeRange(RationalTime(12.0, 24.0), RationalTime(24.0, 24.0))); range = clip_1->trimmed_range_in_parent().value(); assertEqual( range, - TimeRange( - RationalTime(36.0, 24.0), - RationalTime(24.0, 24.0))); + TimeRange(RationalTime(36.0, 24.0), RationalTime(24.0, 24.0))); range = insert_1->trimmed_range_in_parent().value(); assertEqual( range, - TimeRange( - RationalTime(0.0, 24.0), - RationalTime(12.0, 24.0))); + TimeRange(RationalTime(0.0, 24.0), RationalTime(12.0, 24.0))); }); - + // Insert at start of clip_1. tests.add_test("test_edit_insert_4", [] { // Create a track with two clips. SerializableObject::Retainer clip_0 = new Clip( "clip_0", nullptr, - TimeRange( - RationalTime(0.0, 24.0), - RationalTime(24.0, 24.0))); + TimeRange(RationalTime(0.0, 24.0), RationalTime(24.0, 24.0))); SerializableObject::Retainer clip_1 = new Clip( "clip_1", nullptr, - TimeRange( - RationalTime(0.0, 24.0), - RationalTime(24.0, 24.0))); - SerializableObject::Retainer track = - new Track(); + TimeRange(RationalTime(0.0, 24.0), RationalTime(24.0, 24.0))); + SerializableObject::Retainer track = new Track(); track->append_child(clip_0); track->append_child(clip_1); @@ -1739,9 +1264,7 @@ main(int argc, char** argv) SerializableObject::Retainer insert_1 = new Clip( "insert_1", nullptr, - TimeRange( - RationalTime(0.0, 24.0), - RationalTime(12.0, 24.0))); + TimeRange(RationalTime(0.0, 24.0), RationalTime(12.0, 24.0))); OTIO_NS::ErrorStatus error_status; algo::insert( insert_1, @@ -1754,38 +1277,26 @@ main(int argc, char** argv) // Asserts. assert(!is_error(error_status)); const RationalTime duration = track->duration(); - assert_duration(duration, RationalTime(60.0,24.0)); - assert_track_ranges(track, - { - TimeRange( - RationalTime(0.0, 24.0), - RationalTime(24.0, 24.0)), - TimeRange( - RationalTime(24.0, 24.0), - RationalTime(12.0, 24.0)), - TimeRange( - RationalTime(36.0, 24.0), - RationalTime(24.0, 24.0)) - }); + assert_duration(duration, RationalTime(60.0, 24.0)); + assert_track_ranges( + track, + { TimeRange(RationalTime(0.0, 24.0), RationalTime(24.0, 24.0)), + TimeRange(RationalTime(24.0, 24.0), RationalTime(12.0, 24.0)), + TimeRange(RationalTime(36.0, 24.0), RationalTime(24.0, 24.0)) }); }); - + // Insert at end of clip_1 (append at end). tests.add_test("test_edit_insert_4", [] { // Create a track with two clips. SerializableObject::Retainer clip_0 = new Clip( "clip_0", nullptr, - TimeRange( - RationalTime(0.0, 24.0), - RationalTime(24.0, 24.0))); + TimeRange(RationalTime(0.0, 24.0), RationalTime(24.0, 24.0))); SerializableObject::Retainer clip_1 = new Clip( "clip_1", nullptr, - TimeRange( - RationalTime(0.0, 24.0), - RationalTime(24.0, 24.0))); - SerializableObject::Retainer track = - new Track(); + TimeRange(RationalTime(0.0, 24.0), RationalTime(24.0, 24.0))); + SerializableObject::Retainer track = new Track(); track->append_child(clip_0); track->append_child(clip_1); @@ -1793,9 +1304,7 @@ main(int argc, char** argv) SerializableObject::Retainer insert_1 = new Clip( "insert_1", nullptr, - TimeRange( - RationalTime(0.0, 24.0), - RationalTime(12.0, 24.0))); + TimeRange(RationalTime(0.0, 24.0), RationalTime(12.0, 24.0))); OTIO_NS::ErrorStatus error_status; algo::insert( insert_1, @@ -1808,38 +1317,26 @@ main(int argc, char** argv) // Asserts. assert(!is_error(error_status)); const RationalTime duration = track->duration(); - assert_duration(duration, RationalTime(60.0,24.0)); - assert_track_ranges(track, - { - TimeRange( - RationalTime(0.0, 24.0), - RationalTime(24.0, 24.0)), - TimeRange( - RationalTime(24.0, 24.0), - RationalTime(24.0, 24.0)), - TimeRange( - RationalTime(48.0, 24.0), - RationalTime(12.0, 24.0)) - }); + assert_duration(duration, RationalTime(60.0, 24.0)); + assert_track_ranges( + track, + { TimeRange(RationalTime(0.0, 24.0), RationalTime(24.0, 24.0)), + TimeRange(RationalTime(24.0, 24.0), RationalTime(24.0, 24.0)), + TimeRange(RationalTime(48.0, 24.0), RationalTime(12.0, 24.0)) }); }); - + // Insert near the beginning of clip_0. tests.add_test("test_edit_insert_5", [] { // Create a track with two clips. SerializableObject::Retainer clip_0 = new Clip( "clip_0", nullptr, - TimeRange( - RationalTime(0.0, 24.0), - RationalTime(24.0, 24.0))); + TimeRange(RationalTime(0.0, 24.0), RationalTime(24.0, 24.0))); SerializableObject::Retainer clip_1 = new Clip( "clip_1", nullptr, - TimeRange( - RationalTime(0.0, 24.0), - RationalTime(24.0, 24.0))); - SerializableObject::Retainer track = - new Track(); + TimeRange(RationalTime(0.0, 24.0), RationalTime(24.0, 24.0))); + SerializableObject::Retainer track = new Track(); track->append_child(clip_0); track->append_child(clip_1); @@ -1847,9 +1344,7 @@ main(int argc, char** argv) SerializableObject::Retainer insert_1 = new Clip( "insert_1", nullptr, - TimeRange( - RationalTime(0.0, 24.0), - RationalTime(12.0, 24.0))); + TimeRange(RationalTime(0.0, 24.0), RationalTime(12.0, 24.0))); OTIO_NS::ErrorStatus error_status; algo::insert( insert_1, @@ -1862,41 +1357,27 @@ main(int argc, char** argv) // Asserts. assert(!is_error(error_status)); const RationalTime duration = track->duration(); - assert_duration(duration, RationalTime(60.0,24.0)); - assert_track_ranges(track, - { - TimeRange( - RationalTime(0.0, 24.0), - RationalTime(1.0, 24.0)), - TimeRange( - RationalTime(1.0, 24.0), - RationalTime(12.0, 24.0)), - TimeRange( - RationalTime(13.0, 24.0), - RationalTime(23.0, 24.0)), - TimeRange( - RationalTime(36.0, 24.0), - RationalTime(24.0, 24.0)) - }); + assert_duration(duration, RationalTime(60.0, 24.0)); + assert_track_ranges( + track, + { TimeRange(RationalTime(0.0, 24.0), RationalTime(1.0, 24.0)), + TimeRange(RationalTime(1.0, 24.0), RationalTime(12.0, 24.0)), + TimeRange(RationalTime(13.0, 24.0), RationalTime(23.0, 24.0)), + TimeRange(RationalTime(36.0, 24.0), RationalTime(24.0, 24.0)) }); }); - + // Insert near the end of clip_1. tests.add_test("test_edit_insert_6", [] { // Create a track with two clips. SerializableObject::Retainer clip_0 = new Clip( "clip_0", nullptr, - TimeRange( - RationalTime(0.0, 24.0), - RationalTime(24.0, 24.0))); + TimeRange(RationalTime(0.0, 24.0), RationalTime(24.0, 24.0))); SerializableObject::Retainer clip_1 = new Clip( "clip_1", nullptr, - TimeRange( - RationalTime(0.0, 24.0), - RationalTime(24.0, 24.0))); - SerializableObject::Retainer track = - new Track(); + TimeRange(RationalTime(0.0, 24.0), RationalTime(24.0, 24.0))); + SerializableObject::Retainer track = new Track(); track->append_child(clip_0); track->append_child(clip_1); @@ -1904,9 +1385,7 @@ main(int argc, char** argv) SerializableObject::Retainer insert_1 = new Clip( "insert_1", nullptr, - TimeRange( - RationalTime(0.0, 24.0), - RationalTime(12.0, 24.0))); + TimeRange(RationalTime(0.0, 24.0), RationalTime(12.0, 24.0))); OTIO_NS::ErrorStatus error_status; algo::insert( insert_1, @@ -1919,71 +1398,52 @@ main(int argc, char** argv) // Asserts. assert(!is_error(error_status)); const RationalTime duration = track->duration(); - assert_duration(duration, RationalTime(60.0,24.0)); - assert_track_ranges(track, - { - TimeRange( - RationalTime(0.0, 24.0), - RationalTime(24.0, 24.0)), - TimeRange( - RationalTime(24.0, 24.0), - RationalTime(23.0, 24.0)), - TimeRange( - RationalTime(47.0, 24.0), - RationalTime(12.0, 24.0)), - TimeRange( - RationalTime(59.0, 24.0), - RationalTime(1.0, 24.0)), - }); + assert_duration(duration, RationalTime(60.0, 24.0)); + assert_track_ranges( + track, + { + TimeRange(RationalTime(0.0, 24.0), RationalTime(24.0, 24.0)), + TimeRange(RationalTime(24.0, 24.0), RationalTime(23.0, 24.0)), + TimeRange(RationalTime(47.0, 24.0), RationalTime(12.0, 24.0)), + TimeRange(RationalTime(59.0, 24.0), RationalTime(1.0, 24.0)), + }); }); - + // Insert at the end of clip_1. tests.add_test("test_edit_insert_7", [] { OTIO_NS::ErrorStatus error_status; - + // Create a track with three clips. SerializableObject::Retainer clip_0 = new Clip( "PSR63_2012-06-02", nullptr, - TimeRange( - RationalTime(0.0, 23.98), - RationalTime(71.94, 23.98))); + TimeRange(RationalTime(0.0, 23.98), RationalTime(71.94, 23.98))); SerializableObject::Retainer clip_1 = new Clip( "Dinky_2015-06-11", nullptr, - TimeRange( - RationalTime(0.0, 23.98), - RationalTime(71.94, 23.98))); + TimeRange(RationalTime(0.0, 23.98), RationalTime(71.94, 23.98))); SerializableObject::Retainer clip_2 = new Clip( "BART_2021-02-07", nullptr, - TimeRange( - RationalTime(90.0, 30.0), - RationalTime(90.0, 30.0))); - SerializableObject::Retainer track = - new Track(); + TimeRange(RationalTime(90.0, 30.0), RationalTime(90.0, 30.0))); + SerializableObject::Retainer track = new Track(); track->append_child(clip_0); track->append_child(clip_1); track->append_child(clip_2); const RationalTime duration = track->duration(); - + track->remove_child(1); - + const RationalTime new_duration = track->duration(); assert_duration(new_duration, RationalTime(180.0, 30.0)); - - assert_clip_ranges(track, - { - TimeRange( - RationalTime(0.0, 23.98), - RationalTime(71.94, 23.98)), - TimeRange( - RationalTime(90.0, 30.0), - RationalTime(90.0, 30.0)), - }); - - - + + assert_clip_ranges( + track, + { + TimeRange(RationalTime(0.0, 23.98), RationalTime(71.94, 23.98)), + TimeRange(RationalTime(90.0, 30.0), RationalTime(90.0, 30.0)), + }); + // Insert at end of clip 2. algo::insert( clip_1, @@ -1999,18 +1459,13 @@ main(int argc, char** argv) const RationalTime new_duration = track->duration(); assert_duration(new_duration, duration); } - assert_clip_ranges(track, - { - TimeRange( - RationalTime(0.0, 23.98), - RationalTime(71.94, 23.98)), - TimeRange( - RationalTime(90.0, 30.0), - RationalTime(90.0, 30.0)), - TimeRange( - RationalTime(0.0, 23.98), - RationalTime(71.94, 23.98)), - }); + assert_clip_ranges( + track, + { + TimeRange(RationalTime(0.0, 23.98), RationalTime(71.94, 23.98)), + TimeRange(RationalTime(90.0, 30.0), RationalTime(90.0, 30.0)), + TimeRange(RationalTime(0.0, 23.98), RationalTime(71.94, 23.98)), + }); track->remove_child(2); @@ -2018,17 +1473,14 @@ main(int argc, char** argv) const RationalTime new_duration = track->duration(); assert_duration(new_duration, RationalTime(180.0, 30.0)); } - - assert_clip_ranges(track, - { - TimeRange( - RationalTime(0.0, 23.98), - RationalTime(71.94, 23.98)), - TimeRange( - RationalTime(90.0, 30.0), - RationalTime(90.0, 30.0)), - }); - + + assert_clip_ranges( + track, + { + TimeRange(RationalTime(0.0, 23.98), RationalTime(71.94, 23.98)), + TimeRange(RationalTime(90.0, 30.0), RationalTime(90.0, 30.0)), + }); + // Insert at end of clip 1. algo::insert( clip_1, @@ -2042,25 +1494,19 @@ main(int argc, char** argv) const RationalTime new_duration = track->duration(); assert_duration(new_duration, duration); } - assert_clip_ranges(track, - { - TimeRange( - RationalTime(0.0, 23.98), - RationalTime(71.94, 23.98)), - TimeRange( - RationalTime(0.0, 23.98), - RationalTime(71.94, 23.98)), - TimeRange( - RationalTime(90.0, 30.0), - RationalTime(90.0, 30.0)), - }); - + assert_clip_ranges( + track, + { + TimeRange(RationalTime(0.0, 23.98), RationalTime(71.94, 23.98)), + TimeRange(RationalTime(0.0, 23.98), RationalTime(71.94, 23.98)), + TimeRange(RationalTime(90.0, 30.0), RationalTime(90.0, 30.0)), + }); }); - + // Insert at the middle of clip 0 tests.add_test("test_edit_insert_8", [] { OTIO_NS::ErrorStatus error_status; - + // Create a track with three clips. SerializableObject::Retainer clip_0 = new Clip( "spiderman", @@ -2074,12 +1520,11 @@ main(int argc, char** argv) TimeRange( RationalTime(1575360, 23.976024), RationalTime(1.0, 23.976024))); - SerializableObject::Retainer track = - new Track(); + SerializableObject::Retainer track = new Track(); track->append_child(clip_0); - + debug_track_ranges("START", track); - + // Insert at end of clip 2. algo::insert( clip_1, @@ -2095,35 +1540,35 @@ main(int argc, char** argv) // const RationalTime new_duration = track->duration(); // assert_duration(new_duration, duration); // } - assert_clip_ranges(track, - { - TimeRange( - RationalTime(1575360.0, 23.976024), - RationalTime(141.0, 23.976024)), - TimeRange( - RationalTime(1575360, 23.976024), - RationalTime(1.0, 23.976024)), - TimeRange( - RationalTime(1575502.0, 23.976024), - RationalTime(3668.0, 23.976024)), - }); - - assert_track_ranges(track, - { - TimeRange( - RationalTime(0.0, 23.976024), - RationalTime(141.0, 23.976024)), - TimeRange( - RationalTime(141.0, 23.976024), - RationalTime(1, 23.976024)), - TimeRange( - RationalTime(142.0, 23.976024), - RationalTime(3668.0, 23.976024)), - }); - + assert_clip_ranges( + track, + { + TimeRange( + RationalTime(1575360.0, 23.976024), + RationalTime(141.0, 23.976024)), + TimeRange( + RationalTime(1575360, 23.976024), + RationalTime(1.0, 23.976024)), + TimeRange( + RationalTime(1575502.0, 23.976024), + RationalTime(3668.0, 23.976024)), + }); + + assert_track_ranges( + track, + { + TimeRange( + RationalTime(0.0, 23.976024), + RationalTime(141.0, 23.976024)), + TimeRange( + RationalTime(141.0, 23.976024), + RationalTime(1, 23.976024)), + TimeRange( + RationalTime(142.0, 23.976024), + RationalTime(3668.0, 23.976024)), + }); }); - tests.add_test("test_edit_slip", [] { const TimeRange media_range( RationalTime(-15.0, 24.0), @@ -2138,14 +1583,14 @@ main(int argc, char** argv) clip_range, RationalTime(5.0, 24.0), TimeRange(RationalTime(5.0, 24.0), RationalTime(36.0, 24.0))); - + // Slip +12 frames. test_edit_slip( media_range, clip_range, RationalTime(12.0, 24.0), TimeRange(RationalTime(12.0, 24.0), RationalTime(36.0, 24.0))); - + // Slip +20 frames. test_edit_slip( media_range, @@ -2159,14 +1604,14 @@ main(int argc, char** argv) clip_range, RationalTime(-5.0, 24.0), TimeRange(RationalTime(-5.0, 24.0), RationalTime(36.0, 24.0))); - + // Slip -15 frames test_edit_slip( media_range, clip_range, RationalTime(-15.0, 24.0), TimeRange(RationalTime(-15.0, 24.0), RationalTime(36.0, 24.0))); - + // Slip -30 frames test_edit_slip( media_range, @@ -2174,12 +1619,12 @@ main(int argc, char** argv) RationalTime(-30.0, 24.0), TimeRange(RationalTime(-15.0, 24.0), RationalTime(36.0, 24.0))); }); - + tests.add_test("test_edit_slide", [] { TimeRange media_range( RationalTime(0.0, 24.0), RationalTime(48.0, 24.0)); - + // Slide 0. No change. test_edit_slide( media_range, @@ -2187,7 +1632,7 @@ main(int argc, char** argv) { TimeRange(RationalTime(0.0, 24.0), RationalTime(24.0, 24.0)), TimeRange(RationalTime(24.0, 24.0), RationalTime(30.0, 24.0)), TimeRange(RationalTime(54.0, 24.0), RationalTime(40.0, 24.0)) }); - + // Slide right +12. test_edit_slide( media_range, @@ -2195,7 +1640,7 @@ main(int argc, char** argv) { TimeRange(RationalTime(0.0, 24.0), RationalTime(36.0, 24.0)), TimeRange(RationalTime(36.0, 24.0), RationalTime(30.0, 24.0)), TimeRange(RationalTime(66.0, 24.0), RationalTime(40.0, 24.0)) }); - + // Slide right +48, which will clamp. test_edit_slide( media_range, @@ -2203,7 +1648,7 @@ main(int argc, char** argv) { TimeRange(RationalTime(0.0, 24.0), RationalTime(48.0, 24.0)), TimeRange(RationalTime(48.0, 24.0), RationalTime(30.0, 24.0)), TimeRange(RationalTime(78.0, 24.0), RationalTime(40.0, 24.0)) }); - + // Slide left -10. test_edit_slide( media_range, @@ -2211,7 +1656,7 @@ main(int argc, char** argv) { TimeRange(RationalTime(0.0, 24.0), RationalTime(14.0, 24.0)), TimeRange(RationalTime(14.0, 24.0), RationalTime(30.0, 24.0)), TimeRange(RationalTime(44.0, 24.0), RationalTime(40.0, 24.0)) }); - + // Slide left -24, which is invalid. No change. test_edit_slide( media_range, @@ -2219,31 +1664,22 @@ main(int argc, char** argv) { TimeRange(RationalTime(0.0, 24.0), RationalTime(24.0, 24.0)), TimeRange(RationalTime(24.0, 24.0), RationalTime(30.0, 24.0)), TimeRange(RationalTime(54.0, 24.0), RationalTime(40.0, 24.0)) }); - }); tests.add_test("test_edit_trim_1", [] { - // Create a track with one gap and two clips. SerializableObject::Retainer clip_0 = new Gap( - TimeRange( - RationalTime(0.0, 24.0), - RationalTime(20.0, 24.0)), + TimeRange(RationalTime(0.0, 24.0), RationalTime(20.0, 24.0)), "gap_0"); SerializableObject::Retainer clip_1 = new Clip( "clip_1", nullptr, - TimeRange( - RationalTime(5.0, 24.0), - RationalTime(50.0, 24.0))); + TimeRange(RationalTime(5.0, 24.0), RationalTime(50.0, 24.0))); SerializableObject::Retainer clip_2 = new Clip( "clip_1", nullptr, - TimeRange( - RationalTime(0.0, 24.0), - RationalTime(10.0, 24.0))); - SerializableObject::Retainer track = - new Track(); + TimeRange(RationalTime(0.0, 24.0), RationalTime(10.0, 24.0))); + SerializableObject::Retainer track = new Track(); track->append_child(clip_0); track->append_child(clip_1); track->append_child(clip_2); @@ -2261,46 +1697,32 @@ main(int argc, char** argv) assert(!is_error(error_status)); const RationalTime new_duration = track->duration(); assert_duration(new_duration, duration); - assert_track_ranges(track, - { - TimeRange( - RationalTime(0.0, 24.0), - RationalTime(25.0, 24.0)), - TimeRange( - RationalTime(25.0, 24.0), - RationalTime(45.0, 24.0)), - TimeRange( - RationalTime(70.0, 24.0), - RationalTime(10.0, 24.0)) - }); + assert_track_ranges( + track, + { TimeRange(RationalTime(0.0, 24.0), RationalTime(25.0, 24.0)), + TimeRange(RationalTime(25.0, 24.0), RationalTime(45.0, 24.0)), + TimeRange(RationalTime(70.0, 24.0), RationalTime(10.0, 24.0)) }); }); - + // Test trim delta_out right (no change due to clip). tests.add_test("test_edit_trim_2", [] { // Create a track with one gap and two clips. SerializableObject::Retainer clip_0 = new Gap( - TimeRange( - RationalTime(0.0, 24.0), - RationalTime(20.0, 24.0)), + TimeRange(RationalTime(0.0, 24.0), RationalTime(20.0, 24.0)), "gap_0"); SerializableObject::Retainer clip_1 = new Clip( "clip_1", nullptr, - TimeRange( - RationalTime(5.0, 24.0), - RationalTime(50.0, 24.0))); + TimeRange(RationalTime(5.0, 24.0), RationalTime(50.0, 24.0))); SerializableObject::Retainer clip_2 = new Clip( "clip_1", nullptr, - TimeRange( - RationalTime(0.0, 24.0), - RationalTime(10.0, 24.0))); - SerializableObject::Retainer track = - new Track(); + TimeRange(RationalTime(0.0, 24.0), RationalTime(10.0, 24.0))); + SerializableObject::Retainer track = new Track(); track->append_child(clip_0); track->append_child(clip_1); track->append_child(clip_2); - + const RationalTime duration = track->duration(); OTIO_NS::ErrorStatus error_status; @@ -2315,58 +1737,37 @@ main(int argc, char** argv) assert(!is_error(error_status)); const RationalTime new_duration = track->duration(); assert_duration(new_duration, duration); - assert_track_ranges(track, - { - TimeRange( - RationalTime(0.0, 24.0), - RationalTime(20.0, 24.0)), - TimeRange( - RationalTime(20.0, 24.0), - RationalTime(50.0, 24.0)), - TimeRange( - RationalTime(70.0, 24.0), - RationalTime(10.0, 24.0)) - }); - assert_clip_ranges(track, - { - TimeRange( - RationalTime(0.0, 24.0), - RationalTime(20.0, 24.0)), - TimeRange( - RationalTime(5.0, 24.0), - RationalTime(50.0, 24.0)), - TimeRange( - RationalTime(0.0, 24.0), - RationalTime(10.0, 24.0)) - }); + assert_track_ranges( + track, + { TimeRange(RationalTime(0.0, 24.0), RationalTime(20.0, 24.0)), + TimeRange(RationalTime(20.0, 24.0), RationalTime(50.0, 24.0)), + TimeRange(RationalTime(70.0, 24.0), RationalTime(10.0, 24.0)) }); + assert_clip_ranges( + track, + { TimeRange(RationalTime(0.0, 24.0), RationalTime(20.0, 24.0)), + TimeRange(RationalTime(5.0, 24.0), RationalTime(50.0, 24.0)), + TimeRange(RationalTime(0.0, 24.0), RationalTime(10.0, 24.0)) }); }); - + // Test trim delta_out left (create a gap) tests.add_test("test_edit_trim_3", [] { // Create a track with one gap and two clips. SerializableObject::Retainer clip_0 = new Gap( - TimeRange( - RationalTime(0.0, 24.0), - RationalTime(20.0, 24.0)), + TimeRange(RationalTime(0.0, 24.0), RationalTime(20.0, 24.0)), "gap_0"); SerializableObject::Retainer clip_1 = new Clip( "clip_1", nullptr, - TimeRange( - RationalTime(5.0, 24.0), - RationalTime(50.0, 24.0))); + TimeRange(RationalTime(5.0, 24.0), RationalTime(50.0, 24.0))); SerializableObject::Retainer clip_2 = new Clip( "clip_1", nullptr, - TimeRange( - RationalTime(0.0, 24.0), - RationalTime(10.0, 24.0))); - SerializableObject::Retainer track = - new Track(); + TimeRange(RationalTime(0.0, 24.0), RationalTime(10.0, 24.0))); + SerializableObject::Retainer track = new Track(); track->append_child(clip_0); track->append_child(clip_1); track->append_child(clip_2); - + const RationalTime duration = track->duration(); OTIO_NS::ErrorStatus error_status; @@ -2381,188 +1782,88 @@ main(int argc, char** argv) assert(!is_error(error_status)); const RationalTime new_duration = track->duration(); assert_duration(new_duration, duration); - assert_track_ranges(track, - { - TimeRange( - RationalTime(0.0, 24.0), - RationalTime(20.0, 24.0)), - TimeRange( - RationalTime(20.0, 24.0), - RationalTime(45.0, 24.0)), - TimeRange( - RationalTime(65.0, 24.0), - RationalTime(5.0, 24.0)), - TimeRange( - RationalTime(70.0, 24.0), - RationalTime(10.0, 24.0)) - }); - assert_clip_ranges(track, - { - TimeRange( - RationalTime(0.0, 24.0), - RationalTime(20.0, 24.0)), - TimeRange( - RationalTime(5.0, 24.0), - RationalTime(45.0, 24.0)), - TimeRange( - RationalTime(0.0, 24.0), - RationalTime(5.0, 24.0)), - TimeRange( - RationalTime(0.0, 24.0), - RationalTime(10.0, 24.0)) - }); + assert_track_ranges( + track, + { TimeRange(RationalTime(0.0, 24.0), RationalTime(20.0, 24.0)), + TimeRange(RationalTime(20.0, 24.0), RationalTime(45.0, 24.0)), + TimeRange(RationalTime(65.0, 24.0), RationalTime(5.0, 24.0)), + TimeRange(RationalTime(70.0, 24.0), RationalTime(10.0, 24.0)) }); + assert_clip_ranges( + track, + { TimeRange(RationalTime(0.0, 24.0), RationalTime(20.0, 24.0)), + TimeRange(RationalTime(5.0, 24.0), RationalTime(45.0, 24.0)), + TimeRange(RationalTime(0.0, 24.0), RationalTime(5.0, 24.0)), + TimeRange(RationalTime(0.0, 24.0), RationalTime(10.0, 24.0)) }); }); - + // Test ripple tests.add_test("test_edit_ripple_1", [] { test_edit_ripple( RationalTime(10.0, 24.0), RationalTime(0.0, 24.0), // Clip in Track Ranges - { - TimeRange( - RationalTime(0.0, 24.0), - RationalTime(20.0, 24.0)), - TimeRange( - RationalTime(20.0, 24.0), - RationalTime(15.0, 24.0)), - TimeRange( - RationalTime(35.0, 24.0), - RationalTime(20.0, 24.0)) - }, - { - TimeRange( - RationalTime(0.0, 24.0), - RationalTime(20.0, 24.0)), - TimeRange( - RationalTime(15.0, 24.0), - RationalTime(15.0, 24.0)), - TimeRange( - RationalTime(5.0, 24.0), - RationalTime(20.0, 24.0)) - }); + { TimeRange(RationalTime(0.0, 24.0), RationalTime(20.0, 24.0)), + TimeRange(RationalTime(20.0, 24.0), RationalTime(15.0, 24.0)), + TimeRange(RationalTime(35.0, 24.0), RationalTime(20.0, 24.0)) }, + { TimeRange(RationalTime(0.0, 24.0), RationalTime(20.0, 24.0)), + TimeRange(RationalTime(15.0, 24.0), RationalTime(15.0, 24.0)), + TimeRange(RationalTime(5.0, 24.0), RationalTime(20.0, 24.0)) }); }); - + tests.add_test("test_edit_ripple_2", [] { test_edit_ripple( RationalTime(-10.0, 24.0), RationalTime(0.0, 24.0), // Clip in Track Ranges - { - TimeRange( - RationalTime(0.0, 24.0), - RationalTime(20.0, 24.0)), - TimeRange( - RationalTime(20.0, 24.0), - RationalTime(30.0, 24.0)), - TimeRange( - RationalTime(50.0, 24.0), - RationalTime(20.0, 24.0)) - }, + { TimeRange(RationalTime(0.0, 24.0), RationalTime(20.0, 24.0)), + TimeRange(RationalTime(20.0, 24.0), RationalTime(30.0, 24.0)), + TimeRange(RationalTime(50.0, 24.0), RationalTime(20.0, 24.0)) }, // Clip Ranges - { - TimeRange( - RationalTime(0.0, 24.0), - RationalTime(20.0, 24.0)), - TimeRange( - RationalTime(0.0, 24.0), - RationalTime(30.0, 24.0)), - TimeRange( - RationalTime(5.0, 24.0), - RationalTime(20.0, 24.0)) - }); + { TimeRange(RationalTime(0.0, 24.0), RationalTime(20.0, 24.0)), + TimeRange(RationalTime(0.0, 24.0), RationalTime(30.0, 24.0)), + TimeRange(RationalTime(5.0, 24.0), RationalTime(20.0, 24.0)) }); }); - tests.add_test("test_edit_ripple_3", [] { test_edit_ripple( RationalTime(0.0, 24.0), RationalTime(10.0, 24.0), // Clip in Track Ranges - { - TimeRange( - RationalTime(0.0, 24.0), - RationalTime(20.0, 24.0)), - TimeRange( - RationalTime(20.0, 24.0), - RationalTime(35.0, 24.0)), - TimeRange( - RationalTime(55.0, 24.0), - RationalTime(20.0, 24.0)) - }, + { TimeRange(RationalTime(0.0, 24.0), RationalTime(20.0, 24.0)), + TimeRange(RationalTime(20.0, 24.0), RationalTime(35.0, 24.0)), + TimeRange(RationalTime(55.0, 24.0), RationalTime(20.0, 24.0)) }, // Clip Ranges - { - TimeRange( - RationalTime(0.0, 24.0), - RationalTime(20.0, 24.0)), - TimeRange( - RationalTime(5.0, 24.0), - RationalTime(35.0, 24.0)), - TimeRange( - RationalTime(5.0, 24.0), - RationalTime(20.0, 24.0)) - }); + { TimeRange(RationalTime(0.0, 24.0), RationalTime(20.0, 24.0)), + TimeRange(RationalTime(5.0, 24.0), RationalTime(35.0, 24.0)), + TimeRange(RationalTime(5.0, 24.0), RationalTime(20.0, 24.0)) }); }); - tests.add_test("test_edit_ripple_4", [] { test_edit_ripple( RationalTime(0.0, 24.0), RationalTime(-10.0, 24.0), // Clip in Track Ranges - { - TimeRange( - RationalTime(0.0, 24.0), - RationalTime(20.0, 24.0)), - TimeRange( - RationalTime(20.0, 24.0), - RationalTime(15.0, 24.0)), - TimeRange( - RationalTime(35.0, 24.0), - RationalTime(20.0, 24.0)) - }, + { TimeRange(RationalTime(0.0, 24.0), RationalTime(20.0, 24.0)), + TimeRange(RationalTime(20.0, 24.0), RationalTime(15.0, 24.0)), + TimeRange(RationalTime(35.0, 24.0), RationalTime(20.0, 24.0)) }, // Clip Ranges - { - TimeRange( - RationalTime(0.0, 24.0), - RationalTime(20.0, 24.0)), - TimeRange( - RationalTime(5.0, 24.0), - RationalTime(15.0, 24.0)), - TimeRange( - RationalTime(5.0, 24.0), - RationalTime(20.0, 24.0)) - }); + { TimeRange(RationalTime(0.0, 24.0), RationalTime(20.0, 24.0)), + TimeRange(RationalTime(5.0, 24.0), RationalTime(15.0, 24.0)), + TimeRange(RationalTime(5.0, 24.0), RationalTime(20.0, 24.0)) }); }); - + tests.add_test("test_edit_roll_1", [] { test_edit_roll( RationalTime(10.0, 24.0), RationalTime(0.0, 24.0), // Clip in Track Ranges - { - TimeRange( - RationalTime(0.0, 24.0), - RationalTime(30.0, 24.0)), - TimeRange( - RationalTime(30.0, 24.0), - RationalTime(20.0, 24.0)), - TimeRange( - RationalTime(50.0, 24.0), - RationalTime(20.0, 24.0)) - }, + { TimeRange(RationalTime(0.0, 24.0), RationalTime(30.0, 24.0)), + TimeRange(RationalTime(30.0, 24.0), RationalTime(20.0, 24.0)), + TimeRange(RationalTime(50.0, 24.0), RationalTime(20.0, 24.0)) }, // Clip Ranges - { - TimeRange( - RationalTime(0.0, 24.0), - RationalTime(30.0, 24.0)), - TimeRange( - RationalTime(15.0, 24.0), - RationalTime(20.0, 24.0)), - TimeRange( - RationalTime(5.0, 24.0), - RationalTime(20.0, 24.0)) - }); + { TimeRange(RationalTime(0.0, 24.0), RationalTime(30.0, 24.0)), + TimeRange(RationalTime(15.0, 24.0), RationalTime(20.0, 24.0)), + TimeRange(RationalTime(5.0, 24.0), RationalTime(20.0, 24.0)) }); }); tests.add_test("test_edit_roll_2", [] { @@ -2570,29 +1871,13 @@ main(int argc, char** argv) RationalTime(-10.0, 24.0), RationalTime(0.0, 24.0), // Clip in Track Ranges - { - TimeRange( - RationalTime(0.0, 24.0), - RationalTime(15.0, 24.0)), - TimeRange( - RationalTime(15.0, 24.0), - RationalTime(35.0, 24.0)), - TimeRange( - RationalTime(50.0, 24.0), - RationalTime(20.0, 24.0)) - }, + { TimeRange(RationalTime(0.0, 24.0), RationalTime(15.0, 24.0)), + TimeRange(RationalTime(15.0, 24.0), RationalTime(35.0, 24.0)), + TimeRange(RationalTime(50.0, 24.0), RationalTime(20.0, 24.0)) }, // Clip Ranges - { - TimeRange( - RationalTime(0.0, 24.0), - RationalTime(15.0, 24.0)), - TimeRange( - RationalTime(0.0, 24.0), - RationalTime(35.0, 24.0)), - TimeRange( - RationalTime(5.0, 24.0), - RationalTime(20.0, 24.0)) - }); + { TimeRange(RationalTime(0.0, 24.0), RationalTime(15.0, 24.0)), + TimeRange(RationalTime(0.0, 24.0), RationalTime(35.0, 24.0)), + TimeRange(RationalTime(5.0, 24.0), RationalTime(20.0, 24.0)) }); }); tests.add_test("test_edit_roll_3", [] { @@ -2600,29 +1885,13 @@ main(int argc, char** argv) RationalTime(0.0, 24.0), RationalTime(10.0, 24.0), // Clip in Track Ranges - { - TimeRange( - RationalTime(0.0, 24.0), - RationalTime(20.0, 24.0)), - TimeRange( - RationalTime(20.0, 24.0), - RationalTime(40.0, 24.0)), - TimeRange( - RationalTime(60.0, 24.0), - RationalTime(20.0, 24.0)) - }, + { TimeRange(RationalTime(0.0, 24.0), RationalTime(20.0, 24.0)), + TimeRange(RationalTime(20.0, 24.0), RationalTime(40.0, 24.0)), + TimeRange(RationalTime(60.0, 24.0), RationalTime(20.0, 24.0)) }, // Clip Ranges - { - TimeRange( - RationalTime(0.0, 24.0), - RationalTime(20.0, 24.0)), - TimeRange( - RationalTime(5.0, 24.0), - RationalTime(40.0, 24.0)), - TimeRange( - RationalTime(15.0, 24.0), - RationalTime(20.0, 24.0)) - }); + { TimeRange(RationalTime(0.0, 24.0), RationalTime(20.0, 24.0)), + TimeRange(RationalTime(5.0, 24.0), RationalTime(40.0, 24.0)), + TimeRange(RationalTime(15.0, 24.0), RationalTime(20.0, 24.0)) }); }); tests.add_test("test_edit_roll_4", [] { @@ -2630,371 +1899,183 @@ main(int argc, char** argv) RationalTime(0.0, 24.0), RationalTime(-10.0, 24.0), // Clip in Track Ranges - { - TimeRange( - RationalTime(0.0, 24.0), - RationalTime(20.0, 24.0)), - TimeRange( - RationalTime(20.0, 24.0), - RationalTime(25.0, 24.0)), - TimeRange( - RationalTime(45.0, 24.0), - RationalTime(20.0, 24.0)) - }, + { TimeRange(RationalTime(0.0, 24.0), RationalTime(20.0, 24.0)), + TimeRange(RationalTime(20.0, 24.0), RationalTime(25.0, 24.0)), + TimeRange(RationalTime(45.0, 24.0), RationalTime(20.0, 24.0)) }, // Clip Ranges - { - TimeRange( - RationalTime(0.0, 24.0), - RationalTime(20.0, 24.0)), - TimeRange( - RationalTime(5.0, 24.0), - RationalTime(25.0, 24.0)), - TimeRange( - RationalTime(0.0, 24.0), - RationalTime(20.0, 24.0)) - }); + { TimeRange(RationalTime(0.0, 24.0), RationalTime(20.0, 24.0)), + TimeRange(RationalTime(5.0, 24.0), RationalTime(25.0, 24.0)), + TimeRange(RationalTime(0.0, 24.0), RationalTime(20.0, 24.0)) }); }); // Add longer clip in gap as Fit reference point // (creates linearTimeWarp effect). tests.add_test("test_edit_fill_1", [] { test_edit_fill( - TimeRange( - RationalTime(0.0, 24.0), - RationalTime(35.0, 24.0)), + TimeRange(RationalTime(0.0, 24.0), RationalTime(35.0, 24.0)), RationalTime(20.0, 24.0), - ReferencePoint::Fit, + ReferencePoint::Fit, // Clip in Track Ranges - { - TimeRange( - RationalTime(0.0, 24.0), - RationalTime(20.0, 24.0)), - TimeRange( - RationalTime(20.0, 24.0), - RationalTime(35.0, 24.0)), - TimeRange( - RationalTime(55.0, 24.0), - RationalTime(20.0, 24.0)) - }, + { TimeRange(RationalTime(0.0, 24.0), RationalTime(20.0, 24.0)), + TimeRange(RationalTime(20.0, 24.0), RationalTime(35.0, 24.0)), + TimeRange(RationalTime(55.0, 24.0), RationalTime(20.0, 24.0)) }, // Clip Ranges - { - TimeRange( - RationalTime(0.0, 24.0), - RationalTime(20.0, 24.0)), - TimeRange( - RationalTime(0.0, 24.0), - RationalTime(35.0, 24.0)), - TimeRange( - RationalTime(5.0, 24.0), - RationalTime(20.0, 24.0)) - }); + { TimeRange(RationalTime(0.0, 24.0), RationalTime(20.0, 24.0)), + TimeRange(RationalTime(0.0, 24.0), RationalTime(35.0, 24.0)), + TimeRange(RationalTime(5.0, 24.0), RationalTime(20.0, 24.0)) }); }); // Add longer clip at gap as Source reference point. // Stretches timeline. tests.add_test("test_edit_fill_2", [] { test_edit_fill( - TimeRange( - RationalTime(0.0, 24.0), - RationalTime(35.0, 24.0)), + TimeRange(RationalTime(0.0, 24.0), RationalTime(35.0, 24.0)), RationalTime(20.0, 24.0), ReferencePoint::Source, // Clip in Track Ranges { - TimeRange( - RationalTime(0.0, 24.0), - RationalTime(20.0, 24.0)), - TimeRange( - RationalTime(20.0, 24.0), - RationalTime(35.0, 24.0)), - TimeRange( - RationalTime(55.0, 24.0), - RationalTime(5.0, 24.0)), + TimeRange(RationalTime(0.0, 24.0), RationalTime(20.0, 24.0)), + TimeRange(RationalTime(20.0, 24.0), RationalTime(35.0, 24.0)), + TimeRange(RationalTime(55.0, 24.0), RationalTime(5.0, 24.0)), }, // Clip Ranges { - TimeRange( - RationalTime(0.0, 24.0), - RationalTime(20.0, 24.0)), - TimeRange( - RationalTime(0.0, 24.0), - RationalTime(35.0, 24.0)), - TimeRange( - RationalTime(20.0, 24.0), - RationalTime(5.0, 24.0)), - }); + TimeRange(RationalTime(0.0, 24.0), RationalTime(20.0, 24.0)), + TimeRange(RationalTime(0.0, 24.0), RationalTime(35.0, 24.0)), + TimeRange(RationalTime(20.0, 24.0), RationalTime(5.0, 24.0)), + }); }); - // Add equal clip in gap as Source reference point tests.add_test("test_edit_fill_3", [] { test_edit_fill( - TimeRange( - RationalTime(0.0, 24.0), - RationalTime(30.0, 24.0)), + TimeRange(RationalTime(0.0, 24.0), RationalTime(30.0, 24.0)), RationalTime(20.0, 24.0), ReferencePoint::Source, // Clip in Track Ranges - { - TimeRange( - RationalTime(0.0, 24.0), - RationalTime(20.0, 24.0)), - TimeRange( - RationalTime(20.0, 24.0), - RationalTime(30.0, 24.0)), - TimeRange( - RationalTime(50.0, 24.0), - RationalTime(20.0, 24.0)) - }, + { TimeRange(RationalTime(0.0, 24.0), RationalTime(20.0, 24.0)), + TimeRange(RationalTime(20.0, 24.0), RationalTime(30.0, 24.0)), + TimeRange(RationalTime(50.0, 24.0), RationalTime(20.0, 24.0)) }, // Clip Ranges - { - TimeRange( - RationalTime(0.0, 24.0), - RationalTime(20.0, 24.0)), - TimeRange( - RationalTime(0.0, 24.0), - RationalTime(30.0, 24.0)), - TimeRange( - RationalTime(5.0, 24.0), - RationalTime(20.0, 24.0)) - }); + { TimeRange(RationalTime(0.0, 24.0), RationalTime(20.0, 24.0)), + TimeRange(RationalTime(0.0, 24.0), RationalTime(30.0, 24.0)), + TimeRange(RationalTime(5.0, 24.0), RationalTime(20.0, 24.0)) }); }); // Add shorter clip in gap as Source reference point tests.add_test("test_edit_fill_4", [] { test_edit_fill( - TimeRange( - RationalTime(0.0, 24.0), - RationalTime(5.0, 24.0)), + TimeRange(RationalTime(0.0, 24.0), RationalTime(5.0, 24.0)), RationalTime(20.0, 24.0), ReferencePoint::Source, // Clip in Track Ranges - { - TimeRange( - RationalTime(0.0, 24.0), - RationalTime(20.0, 24.0)), - TimeRange( - RationalTime(20.0, 24.0), - RationalTime(5.0, 24.0)), - TimeRange( - RationalTime(25.0, 24.0), - RationalTime(25.0, 24.0)), - TimeRange( - RationalTime(50.0, 24.0), - RationalTime(20.0, 24.0)) - }, + { TimeRange(RationalTime(0.0, 24.0), RationalTime(20.0, 24.0)), + TimeRange(RationalTime(20.0, 24.0), RationalTime(5.0, 24.0)), + TimeRange(RationalTime(25.0, 24.0), RationalTime(25.0, 24.0)), + TimeRange(RationalTime(50.0, 24.0), RationalTime(20.0, 24.0)) }, // Clip Ranges - { - TimeRange( - RationalTime(0.0, 24.0), - RationalTime(20.0, 24.0)), - TimeRange( - RationalTime(0.0, 24.0), - RationalTime(5.0, 24.0)), - TimeRange( - RationalTime(10.0, 24.0), - RationalTime(25.0, 24.0)), - TimeRange( - RationalTime(5.0, 24.0), - RationalTime(20.0, 24.0)) - }); + { TimeRange(RationalTime(0.0, 24.0), RationalTime(20.0, 24.0)), + TimeRange(RationalTime(0.0, 24.0), RationalTime(5.0, 24.0)), + TimeRange(RationalTime(10.0, 24.0), RationalTime(25.0, 24.0)), + TimeRange(RationalTime(5.0, 24.0), RationalTime(20.0, 24.0)) }); }); // Add an equal clip (after trim) in gap as // Sequence reference point. tests.add_test("test_edit_fill_5", [] { - test_edit_fill( - TimeRange( - RationalTime(0.0, 24.0), - RationalTime(35.0, 24.0)), + TimeRange(RationalTime(0.0, 24.0), RationalTime(35.0, 24.0)), RationalTime(20.0, 24.0), ReferencePoint::Sequence, // Clip in Track Ranges - { - TimeRange( - RationalTime(0.0, 24.0), - RationalTime(20.0, 24.0)), - TimeRange( - RationalTime(20.0, 24.0), - RationalTime(30.0, 24.0)), - TimeRange( - RationalTime(50.0, 24.0), - RationalTime(20.0, 24.0)) - }, + { TimeRange(RationalTime(0.0, 24.0), RationalTime(20.0, 24.0)), + TimeRange(RationalTime(20.0, 24.0), RationalTime(30.0, 24.0)), + TimeRange(RationalTime(50.0, 24.0), RationalTime(20.0, 24.0)) }, // Clip Ranges - { - TimeRange( - RationalTime(0.0, 24.0), - RationalTime(20.0, 24.0)), - TimeRange( - RationalTime(5.0, 24.0), - RationalTime(30.0, 24.0)), - TimeRange( - RationalTime(5.0, 24.0), - RationalTime(20.0, 24.0)) - }); + { TimeRange(RationalTime(0.0, 24.0), RationalTime(20.0, 24.0)), + TimeRange(RationalTime(5.0, 24.0), RationalTime(30.0, 24.0)), + TimeRange(RationalTime(5.0, 24.0), RationalTime(20.0, 24.0)) }); }); - + // Add a longer clip in gap as Sequence reference point tests.add_test("test_edit_fill_6", [] { - test_edit_fill( - TimeRange( - RationalTime(-10.0, 24.0), - RationalTime(30.0, 24.0)), + TimeRange(RationalTime(-10.0, 24.0), RationalTime(30.0, 24.0)), RationalTime(20.0, 24.0), ReferencePoint::Sequence, // Clip in Track Ranges - { - TimeRange( - RationalTime(0.0, 24.0), - RationalTime(20.0, 24.0)), - TimeRange( - RationalTime(20.0, 24.0), - RationalTime(15.0, 24.0)), - TimeRange( - RationalTime(35.0, 24.0), - RationalTime(15.0, 24.0)), - TimeRange( - RationalTime(50.0, 24.0), - RationalTime(20.0, 24.0)) - }, + { TimeRange(RationalTime(0.0, 24.0), RationalTime(20.0, 24.0)), + TimeRange(RationalTime(20.0, 24.0), RationalTime(15.0, 24.0)), + TimeRange(RationalTime(35.0, 24.0), RationalTime(15.0, 24.0)), + TimeRange(RationalTime(50.0, 24.0), RationalTime(20.0, 24.0)) }, // Clip Ranges - { - TimeRange( - RationalTime(0.0, 24.0), - RationalTime(20.0, 24.0)), - TimeRange( - RationalTime(5.0, 24.0), - RationalTime(15.0, 24.0)), - TimeRange( - RationalTime(20.0, 24.0), - RationalTime(15.0, 24.0)), - TimeRange( - RationalTime(5.0, 24.0), - RationalTime(20.0, 24.0)) - }); + { TimeRange(RationalTime(0.0, 24.0), RationalTime(20.0, 24.0)), + TimeRange(RationalTime(5.0, 24.0), RationalTime(15.0, 24.0)), + TimeRange(RationalTime(20.0, 24.0), RationalTime(15.0, 24.0)), + TimeRange(RationalTime(5.0, 24.0), RationalTime(20.0, 24.0)) }); }); - // Add a shorter clip in gap as Sequence reference point tests.add_test("test_edit_fill_7", [] { - test_edit_fill( - TimeRange( - RationalTime(10.0, 24.0), - RationalTime(5.0, 24.0)), + TimeRange(RationalTime(10.0, 24.0), RationalTime(5.0, 24.0)), RationalTime(20.0, 24.0), ReferencePoint::Sequence, // Clip in Track Ranges - { - TimeRange( - RationalTime(0.0, 24.0), - RationalTime(20.0, 24.0)), - TimeRange( - RationalTime(20.0, 24.0), - RationalTime(5.0, 24.0)), - TimeRange( - RationalTime(25.0, 24.0), - RationalTime(25.0, 24.0)), - TimeRange( - RationalTime(50.0, 24.0), - RationalTime(20.0, 24.0)) - }, + { TimeRange(RationalTime(0.0, 24.0), RationalTime(20.0, 24.0)), + TimeRange(RationalTime(20.0, 24.0), RationalTime(5.0, 24.0)), + TimeRange(RationalTime(25.0, 24.0), RationalTime(25.0, 24.0)), + TimeRange(RationalTime(50.0, 24.0), RationalTime(20.0, 24.0)) }, // Clip Ranges - { - TimeRange( - RationalTime(0.0, 24.0), - RationalTime(20.0, 24.0)), - TimeRange( - RationalTime(10.0, 24.0), - RationalTime(5.0, 24.0)), - TimeRange( - RationalTime(10.0, 24.0), - RationalTime(25.0, 24.0)), - TimeRange( - RationalTime(5.0, 24.0), - RationalTime(20.0, 24.0)) - }); + { TimeRange(RationalTime(0.0, 24.0), RationalTime(20.0, 24.0)), + TimeRange(RationalTime(10.0, 24.0), RationalTime(5.0, 24.0)), + TimeRange(RationalTime(10.0, 24.0), RationalTime(25.0, 24.0)), + TimeRange(RationalTime(5.0, 24.0), RationalTime(20.0, 24.0)) }); }); - + // Add a shorter clip in gap as Sequence reference point tests.add_test("test_edit_fill_8", [] { - test_edit_fill( - TimeRange( - RationalTime(10.0, 24.0), - RationalTime(5.0, 24.0)), + TimeRange(RationalTime(10.0, 24.0), RationalTime(5.0, 24.0)), RationalTime(20.0, 24.0), ReferencePoint::Sequence, // Clip in Track Ranges - { - TimeRange( - RationalTime(0.0, 24.0), - RationalTime(20.0, 24.0)), - TimeRange( - RationalTime(20.0, 24.0), - RationalTime(5.0, 24.0)), - TimeRange( - RationalTime(25.0, 24.0), - RationalTime(25.0, 24.0)), - TimeRange( - RationalTime(50.0, 24.0), - RationalTime(20.0, 24.0)) - }, + { TimeRange(RationalTime(0.0, 24.0), RationalTime(20.0, 24.0)), + TimeRange(RationalTime(20.0, 24.0), RationalTime(5.0, 24.0)), + TimeRange(RationalTime(25.0, 24.0), RationalTime(25.0, 24.0)), + TimeRange(RationalTime(50.0, 24.0), RationalTime(20.0, 24.0)) }, // Clip Ranges - { - TimeRange( - RationalTime(0.0, 24.0), - RationalTime(20.0, 24.0)), - TimeRange( - RationalTime(10.0, 24.0), - RationalTime(5.0, 24.0)), - TimeRange( - RationalTime(10.0, 24.0), - RationalTime(25.0, 24.0)), - TimeRange( - RationalTime(5.0, 24.0), - RationalTime(20.0, 24.0)) - }); + { TimeRange(RationalTime(0.0, 24.0), RationalTime(20.0, 24.0)), + TimeRange(RationalTime(10.0, 24.0), RationalTime(5.0, 24.0)), + TimeRange(RationalTime(10.0, 24.0), RationalTime(25.0, 24.0)), + TimeRange(RationalTime(5.0, 24.0), RationalTime(20.0, 24.0)) }); }); - // Test remove middle clip tests.add_test("test_edit_remove_0", [] { // Create a track with three clips. SerializableObject::Retainer clip_0 = new Clip( "clip_0", nullptr, - TimeRange( - RationalTime(0.0, 24.0), - RationalTime(50.0, 24.0))); + TimeRange(RationalTime(0.0, 24.0), RationalTime(50.0, 24.0))); SerializableObject::Retainer clip_1 = new Clip( "clip_1", nullptr, - TimeRange( - RationalTime(5.0, 24.0), - RationalTime(50.0, 24.0))); + TimeRange(RationalTime(5.0, 24.0), RationalTime(50.0, 24.0))); SerializableObject::Retainer clip_2 = new Clip( "clip_2", nullptr, - TimeRange( - RationalTime(0.0, 24.0), - RationalTime(10.0, 24.0))); - + TimeRange(RationalTime(0.0, 24.0), RationalTime(10.0, 24.0))); + SerializableObject::Retainer fill_0 = new Clip( "fill_0", nullptr, - TimeRange( - RationalTime(0.0, 24.0), - RationalTime(10.0, 24.0))); - SerializableObject::Retainer track = - new Track(); + TimeRange(RationalTime(0.0, 24.0), RationalTime(10.0, 24.0))); + SerializableObject::Retainer track = new Track(); track->append_child(clip_0); track->append_child(clip_1); track->append_child(clip_2); - + const RationalTime duration = track->duration(); OTIO_NS::ErrorStatus error_status; @@ -3013,31 +2094,17 @@ main(int argc, char** argv) const RationalTime new_duration = track->duration(); assert_duration(new_duration, duration); } - assert_track_ranges(track, - { - TimeRange( - RationalTime(0.0, 24.0), - RationalTime(50.0, 24.0)), - TimeRange( - RationalTime(50.0, 24.0), - RationalTime(50.0, 24.0)), - TimeRange( - RationalTime(100.0, 24.0), - RationalTime(10.0, 24.0)) - }); - assert_clip_ranges(track, - { - TimeRange( - RationalTime(0.0, 24.0), - RationalTime(50.0, 24.0)), - TimeRange( - RationalTime(5.0, 24.0), - RationalTime(50.0, 24.0)), - TimeRange( - RationalTime(0.0, 24.0), - RationalTime(10.0, 24.0)) - }); - + assert_track_ranges( + track, + { TimeRange(RationalTime(0.0, 24.0), RationalTime(50.0, 24.0)), + TimeRange(RationalTime(50.0, 24.0), RationalTime(50.0, 24.0)), + TimeRange(RationalTime(100.0, 24.0), RationalTime(10.0, 24.0)) }); + assert_clip_ranges( + track, + { TimeRange(RationalTime(0.0, 24.0), RationalTime(50.0, 24.0)), + TimeRange(RationalTime(5.0, 24.0), RationalTime(50.0, 24.0)), + TimeRange(RationalTime(0.0, 24.0), RationalTime(10.0, 24.0)) }); + // Remove second clip (which is now a gap, replacing it with fill_0) algo::remove( track, @@ -3052,32 +2119,18 @@ main(int argc, char** argv) const RationalTime new_duration = track->duration(); assert_duration(new_duration, RationalTime(70.0, 24.0)); } - assert_track_ranges(track, - { - TimeRange( - RationalTime(0.0, 24.0), - RationalTime(50.0, 24.0)), - TimeRange( - RationalTime(50.0, 24.0), - RationalTime(10.0, 24.0)), - TimeRange( - RationalTime(60.0, 24.0), - RationalTime(10.0, 24.0)) - }); - assert_clip_ranges(track, - { - TimeRange( - RationalTime(0.0, 24.0), - RationalTime(50.0, 24.0)), - TimeRange( - RationalTime(0.0, 24.0), - RationalTime(10.0, 24.0)), - TimeRange( - RationalTime(0.0, 24.0), - RationalTime(10.0, 24.0)) - }); + assert_track_ranges( + track, + { TimeRange(RationalTime(0.0, 24.0), RationalTime(50.0, 24.0)), + TimeRange(RationalTime(50.0, 24.0), RationalTime(10.0, 24.0)), + TimeRange(RationalTime(60.0, 24.0), RationalTime(10.0, 24.0)) }); + assert_clip_ranges( + track, + { TimeRange(RationalTime(0.0, 24.0), RationalTime(50.0, 24.0)), + TimeRange(RationalTime(0.0, 24.0), RationalTime(10.0, 24.0)), + TimeRange(RationalTime(0.0, 24.0), RationalTime(10.0, 24.0)) }); }); - + tests.run(argc, argv); return 0; } diff --git a/tests/test_opentime.cpp b/tests/test_opentime.cpp index bcb4ff5b0..7c230d61f 100644 --- a/tests/test_opentime.cpp +++ b/tests/test_opentime.cpp @@ -71,78 +71,78 @@ main(int argc, char** argv) }); tests.add_test("test_from_time_string", [] { - std::string time_string = "0:12:04"; - auto t = RationalTime(24 * (12 * 60 + 4), 24); - auto time_obj = RationalTime::from_time_string(time_string, 24); - assertTrue(t.almost_equal(time_obj, 0.001)); - }); + std::string time_string = "0:12:04"; + auto t = RationalTime(24 * (12 * 60 + 4), 24); + auto time_obj = RationalTime::from_time_string(time_string, 24); + assertTrue(t.almost_equal(time_obj, 0.001)); + }); tests.add_test("test_from_time_string24", [] { std::string time_string = "00:00:00.041667"; - auto t = RationalTime(1, 24); - auto time_obj = RationalTime::from_time_string(time_string, 24); + auto t = RationalTime(1, 24); + auto time_obj = RationalTime::from_time_string(time_string, 24); assertTrue(t.almost_equal(time_obj, 0.001)); time_string = "00:00:01"; - t = RationalTime(24, 24); - time_obj = RationalTime::from_time_string(time_string, 24); + t = RationalTime(24, 24); + time_obj = RationalTime::from_time_string(time_string, 24); assertTrue(t.almost_equal(time_obj, 0.001)); time_string = "00:01:00"; - t = RationalTime(60 * 24, 24); - time_obj = RationalTime::from_time_string(time_string, 24); + t = RationalTime(60 * 24, 24); + time_obj = RationalTime::from_time_string(time_string, 24); assertTrue(t.almost_equal(time_obj, 0.001)); time_string = "01:00:00"; - t = RationalTime(60 * 60 * 24, 24); - time_obj = RationalTime::from_time_string(time_string, 24); + t = RationalTime(60 * 60 * 24, 24); + time_obj = RationalTime::from_time_string(time_string, 24); assertTrue(t.almost_equal(time_obj, 0.001)); time_string = "24:00:00"; - t = RationalTime(24 * 60 * 60 * 24, 24); - time_obj = RationalTime::from_time_string(time_string, 24); + t = RationalTime(24 * 60 * 60 * 24, 24); + time_obj = RationalTime::from_time_string(time_string, 24); assertTrue(t.almost_equal(time_obj, 0.001)); time_string = "23:59:59.92"; - t = RationalTime((23 * 60 * 60 + 59 * 60 + 59.92) * 24, 24); - time_obj = RationalTime::from_time_string(time_string, 24); + t = RationalTime((23 * 60 * 60 + 59 * 60 + 59.92) * 24, 24); + time_obj = RationalTime::from_time_string(time_string, 24); assertTrue(t.almost_equal(time_obj, 0.001)); }); tests.add_test("test_from_time_string25", [] { std::string time_string = "0:12:04.929792"; - auto t = RationalTime((12 * 60 + 4.929792) * 25, 25); - auto time_obj = RationalTime::from_time_string(time_string, 24); + auto t = RationalTime((12 * 60 + 4.929792) * 25, 25); + auto time_obj = RationalTime::from_time_string(time_string, 24); assertTrue(t.almost_equal(time_obj, 0.001)); time_string = "00:00:01"; - t = RationalTime(25, 25); - time_obj = RationalTime::from_time_string(time_string, 24); + t = RationalTime(25, 25); + time_obj = RationalTime::from_time_string(time_string, 24); assertTrue(t.almost_equal(time_obj, 0.001)); time_string = "0:1"; - t = RationalTime(25, 25); - time_obj = RationalTime::from_time_string(time_string, 24); + t = RationalTime(25, 25); + time_obj = RationalTime::from_time_string(time_string, 24); assertTrue(t.almost_equal(time_obj, 0.001)); time_string = "1"; - t = RationalTime(25, 25); - time_obj = RationalTime::from_time_string(time_string, 24); + t = RationalTime(25, 25); + time_obj = RationalTime::from_time_string(time_string, 24); assertTrue(t.almost_equal(time_obj, 0.001)); time_string = "00:01:00"; - t = RationalTime(60 * 25, 25); - time_obj = RationalTime::from_time_string(time_string, 24); + t = RationalTime(60 * 25, 25); + time_obj = RationalTime::from_time_string(time_string, 24); assertTrue(t.almost_equal(time_obj, 0.001)); time_string = "01:00:00"; - t = RationalTime(60 * 60 * 25, 25); - time_obj = RationalTime::from_time_string(time_string, 24); + t = RationalTime(60 * 60 * 25, 25); + time_obj = RationalTime::from_time_string(time_string, 24); assertTrue(t.almost_equal(time_obj, 0.001)); time_string = "24:00:00"; - t = RationalTime(24 * 60 * 60 * 25, 25); - time_obj = RationalTime::from_time_string(time_string, 24); + t = RationalTime(24 * 60 * 60 * 25, 25); + time_obj = RationalTime::from_time_string(time_string, 24); assertTrue(t.almost_equal(time_obj, 0.001)); time_string = "23:59:59.92"; - t = RationalTime((23 * 60 * 60 + 59 * 60 + 59.92) * 25, 25); - time_obj = RationalTime::from_time_string(time_string, 24); + t = RationalTime((23 * 60 * 60 + 59 * 60 + 59.92) * 25, 25); + time_obj = RationalTime::from_time_string(time_string, 24); assertTrue(t.almost_equal(time_obj, 0.001)); }); tests.add_test("test_create_range", [] { RationalTime start(0.0, 24.0); RationalTime duration(24.0, 24.0); - TimeRange r(start, duration); + TimeRange r(start, duration); assertEqual(r.start_time(), start); assertEqual(r.duration(), duration); diff --git a/tests/test_serializableCollection.cpp b/tests/test_serializableCollection.cpp index 5ddac605b..21394945f 100644 --- a/tests/test_serializableCollection.cpp +++ b/tests/test_serializableCollection.cpp @@ -17,24 +17,24 @@ main(int argc, char** argv) { Tests tests; - tests.add_test( - "test_find_children", [] { - SerializableObject::Retainer cl = new Clip(); + tests.add_test("test_find_children", [] { + SerializableObject::Retainer cl = new Clip(); SerializableObject::Retainer tr = new Track(); tr->append_child(cl); SerializableObject::Retainer tl = new Timeline(); tl->tracks()->append_child(tr); - SerializableObject::Retainer - sc = new SerializableCollection(); + SerializableObject::Retainer sc = + new SerializableCollection(); sc->insert_child(0, tl); OTIO_NS::ErrorStatus err; - auto result = sc->find_children(&err, {}, false); + auto result = sc->find_children(&err, {}, false); assertEqual(result.size(), 1); assertEqual(result[0].value, cl.value); }); - tests.add_test( - "test_find_children_search_range", [] { - const TimeRange range(RationalTime(0.0, 24.0), RationalTime(24.0, 24.0)); + tests.add_test("test_find_children_search_range", [] { + const TimeRange range( + RationalTime(0.0, 24.0), + RationalTime(24.0, 24.0)); SerializableObject::Retainer cl0 = new Clip(); cl0->set_source_range(range); SerializableObject::Retainer cl1 = new Clip(); @@ -47,23 +47,22 @@ main(int argc, char** argv) tr->append_child(cl2); SerializableObject::Retainer tl = new Timeline(); tl->tracks()->append_child(tr); - SerializableObject::Retainer - sc = new SerializableCollection(); + SerializableObject::Retainer sc = + new SerializableCollection(); sc->insert_child(0, tl); OTIO_NS::ErrorStatus err; - auto result = sc->find_children(&err, range); + auto result = sc->find_children(&err, range); assertEqual(result.size(), 1); assertEqual(result[0].value, cl0.value); }); - tests.add_test( - "test_find_children_shallow_search", [] { - SerializableObject::Retainer cl = new Clip(); + tests.add_test("test_find_children_shallow_search", [] { + SerializableObject::Retainer cl = new Clip(); SerializableObject::Retainer tr = new Track(); tr->append_child(cl); SerializableObject::Retainer tl = new Timeline(); tl->tracks()->append_child(tr); - SerializableObject::Retainer - sc = new SerializableCollection(); + SerializableObject::Retainer sc = + new SerializableCollection(); sc->insert_child(0, tl); OTIO_NS::ErrorStatus err; auto result = sc->find_children(&err, std::nullopt, true); diff --git a/tests/test_serialization.cpp b/tests/test_serialization.cpp index 0f6291161..7ff13f76c 100644 --- a/tests/test_serialization.cpp +++ b/tests/test_serialization.cpp @@ -4,12 +4,12 @@ #include "utils.h" #include -#include -#include -#include +#include #include #include -#include +#include +#include +#include #include #include @@ -21,16 +21,15 @@ main(int argc, char** argv) { Tests tests; - tests.add_test( - "success with default indent", [] { - SerializableObject::Retainer cl = new Clip(); + tests.add_test("success with default indent", [] { + SerializableObject::Retainer cl = new Clip(); SerializableObject::Retainer tr = new Track(); tr->append_child(cl); SerializableObject::Retainer tl = new Timeline(); tl->tracks()->append_child(tr); OTIO_NS::ErrorStatus err; - auto output = tl.value->to_json_string(&err, {}); + auto output = tl.value->to_json_string(&err, {}); assertFalse(is_error(err)); assertEqual(output.c_str(), R"CONTENT({ "OTIO_SCHEMA": "Timeline.1", @@ -85,24 +84,24 @@ main(int argc, char** argv) })CONTENT"); }); - tests.add_test( - "success with indent set to 0", [] { + tests.add_test("success with indent set to 0", [] { SerializableObject::Retainer so = new SerializableObjectWithMetadata(); OTIO_NS::ErrorStatus err; - auto output = so.value->to_json_string(&err, {}, 0); + auto output = so.value->to_json_string(&err, {}, 0); assertFalse(is_error(err)); - assertEqual(output.c_str(), R"CONTENT({"OTIO_SCHEMA":"SerializableObjectWithMetadata.1","metadata":{},"name":""})CONTENT"); + assertEqual( + output.c_str(), + R"CONTENT({"OTIO_SCHEMA":"SerializableObjectWithMetadata.1","metadata":{},"name":""})CONTENT"); }); - tests.add_test( - "success with indent set to 2", [] { + tests.add_test("success with indent set to 2", [] { SerializableObject::Retainer so = new SerializableObjectWithMetadata(); OTIO_NS::ErrorStatus err; - auto output = so.value->to_json_string(&err, {}, 2); + auto output = so.value->to_json_string(&err, {}, 2); assertFalse(is_error(err)); assertEqual(output.c_str(), R"CONTENT({ "OTIO_SCHEMA": "SerializableObjectWithMetadata.1", diff --git a/tests/test_stack_algo.cpp b/tests/test_stack_algo.cpp index b610f2a79..e4ae9b71d 100644 --- a/tests/test_stack_algo.cpp +++ b/tests/test_stack_algo.cpp @@ -6,8 +6,8 @@ #include #include -#include #include +#include #include @@ -18,12 +18,10 @@ main(int argc, char** argv) { Tests tests; - tests.add_test( - "test_flatten_stack_01", [] { - - RationalTime rt_0_24{0, 24}; - RationalTime rt_150_24{150, 24}; - TimeRange tr_0_150_24{rt_0_24, rt_150_24}; + tests.add_test("test_flatten_stack_01", [] { + RationalTime rt_0_24{ 0, 24 }; + RationalTime rt_150_24{ 150, 24 }; + TimeRange tr_0_150_24{ rt_0_24, rt_150_24 }; // all three clips are identical, but placed such that A is over B and // has no gap or end over C @@ -59,12 +57,10 @@ main(int argc, char** argv) assertEqual(result->duration().value(), 300); }); - tests.add_test( - "test_flatten_stack_02", [] { - - RationalTime rt_0_24{0, 24}; - RationalTime rt_150_24{150, 24}; - TimeRange tr_0_150_24{rt_0_24, rt_150_24}; + tests.add_test("test_flatten_stack_02", [] { + RationalTime rt_0_24{ 0, 24 }; + RationalTime rt_150_24{ 150, 24 }; + TimeRange tr_0_150_24{ rt_0_24, rt_150_24 }; // all four clips are identical, but placed such that A is over B and // has no gap or end over C. The bottom track is also shorter. @@ -108,12 +104,10 @@ main(int argc, char** argv) assertEqual(result->duration().value(), 300); }); - tests.add_test( - "test_flatten_stack_03", [] { - - RationalTime rt_0_24{0, 24}; - RationalTime rt_150_24{150, 24}; - TimeRange tr_0_150_24{rt_0_24, rt_150_24}; + tests.add_test("test_flatten_stack_03", [] { + RationalTime rt_0_24{ 0, 24 }; + RationalTime rt_150_24{ 150, 24 }; + TimeRange tr_0_150_24{ rt_0_24, rt_150_24 }; // all three clips are identical but the middle track is empty // 0 150 300 @@ -141,7 +135,6 @@ main(int argc, char** argv) tr_bottom->append_child(cl_B); tr_bottom->append_child(cl_C); - SerializableObject::Retainer st = new Stack(); st->append_child(tr_bottom); st->append_child(tr_middle); @@ -154,12 +147,10 @@ main(int argc, char** argv) assertEqual(result->duration().value(), 300); }); - tests.add_test( - "test_flatten_vector_01", [] { - - RationalTime rt_0_24{0, 24}; - RationalTime rt_150_24{150, 24}; - TimeRange tr_0_150_24{rt_0_24, rt_150_24}; + tests.add_test("test_flatten_vector_01", [] { + RationalTime rt_0_24{ 0, 24 }; + RationalTime rt_150_24{ 150, 24 }; + TimeRange tr_0_150_24{ rt_0_24, rt_150_24 }; // all three clips are identical, but placed such that A is over B and // has no gap or end over C, tests vector version @@ -184,7 +175,7 @@ main(int argc, char** argv) tr_under->append_child(cl_B); tr_under->append_child(cl_C); - std::vector st; + std::vector st; st.push_back(tr_under); st.push_back(tr_over); diff --git a/tests/test_timeline.cpp b/tests/test_timeline.cpp index ed29e640b..da0f26f7f 100644 --- a/tests/test_timeline.cpp +++ b/tests/test_timeline.cpp @@ -16,21 +16,21 @@ main(int argc, char** argv) { Tests tests; - tests.add_test( - "test_find_children", [] { - SerializableObject::Retainer cl = new Clip(); + tests.add_test("test_find_children", [] { + SerializableObject::Retainer cl = new Clip(); SerializableObject::Retainer tr = new Track(); tr->append_child(cl); SerializableObject::Retainer tl = new Timeline(); tl->tracks()->append_child(tr); OTIO_NS::ErrorStatus err; - auto result = tl->find_children(&err); + auto result = tl->find_children(&err); assertEqual(result.size(), 1); assertEqual(result[0].value, cl.value); }); - tests.add_test( - "test_find_children_search_range", [] { - const TimeRange range(RationalTime(0.0, 24.0), RationalTime(24.0, 24.0)); + tests.add_test("test_find_children_search_range", [] { + const TimeRange range( + RationalTime(0.0, 24.0), + RationalTime(24.0, 24.0)); SerializableObject::Retainer cl0 = new Clip(); cl0->set_source_range(range); SerializableObject::Retainer cl1 = new Clip(); @@ -44,13 +44,12 @@ main(int argc, char** argv) SerializableObject::Retainer tl = new Timeline(); tl->tracks()->append_child(tr); OTIO_NS::ErrorStatus err; - auto result = tl->find_children(&err, range); + auto result = tl->find_children(&err, range); assertEqual(result.size(), 1); assertEqual(result[0].value, cl0.value); }); - tests.add_test( - "test_find_children_shallow_search", [] { - SerializableObject::Retainer cl = new Clip(); + tests.add_test("test_find_children_shallow_search", [] { + SerializableObject::Retainer cl = new Clip(); SerializableObject::Retainer tr = new Track(); tr->append_child(cl); SerializableObject::Retainer tl = new Timeline(); diff --git a/tests/test_track.cpp b/tests/test_track.cpp index f2272c523..5a9268b49 100644 --- a/tests/test_track.cpp +++ b/tests/test_track.cpp @@ -16,19 +16,19 @@ main(int argc, char** argv) { Tests tests; - tests.add_test( - "test_find_children", [] { - SerializableObject::Retainer cl = new Clip(); + tests.add_test("test_find_children", [] { + SerializableObject::Retainer cl = new Clip(); SerializableObject::Retainer tr = new Track(); tr->append_child(cl); OTIO_NS::ErrorStatus err; - auto result = tr->find_children(&err); + auto result = tr->find_children(&err); assertEqual(result.size(), 1); assertEqual(result[0].value, cl.value); }); - tests.add_test( - "test_find_children_search_range", [] { - const TimeRange range(RationalTime(0.0, 24.0), RationalTime(24.0, 24.0)); + tests.add_test("test_find_children_search_range", [] { + const TimeRange range( + RationalTime(0.0, 24.0), + RationalTime(24.0, 24.0)); SerializableObject::Retainer cl0 = new Clip(); cl0->set_source_range(range); SerializableObject::Retainer cl1 = new Clip(); @@ -40,7 +40,7 @@ main(int argc, char** argv) tr->append_child(cl1); tr->append_child(cl2); OTIO_NS::ErrorStatus err; - auto result = tr->find_children( + auto result = tr->find_children( &err, TimeRange(RationalTime(0.0, 24.0), RationalTime(24.0, 24.0))); assertEqual(result.size(), 1); @@ -75,11 +75,10 @@ main(int argc, char** argv) assertEqual(result[1].value, cl1.value); assertEqual(result[2].value, cl2.value); }); - tests.add_test( - "test_find_children_shallow_search", [] { - SerializableObject::Retainer cl0 = new Clip(); - SerializableObject::Retainer cl1 = new Clip(); - SerializableObject::Retainer st = new Stack(); + tests.add_test("test_find_children_shallow_search", [] { + SerializableObject::Retainer cl0 = new Clip(); + SerializableObject::Retainer cl1 = new Clip(); + SerializableObject::Retainer st = new Stack(); st->append_child(cl1); SerializableObject::Retainer tr = new Track(); tr->append_child(cl0); @@ -94,9 +93,7 @@ main(int argc, char** argv) assertEqual(result[1].value, cl1.value); }); - tests.add_test( - "test_find_children_stack", [] { - + tests.add_test("test_find_children_stack", [] { SerializableObject::Retainer stack = new Stack(); SerializableObject::Retainer track = new Track; SerializableObject::Retainer clip = new Clip; @@ -107,7 +104,7 @@ main(int argc, char** argv) clip->set_source_range( TimeRange(RationalTime(0.0, 24.0), RationalTime(3.0, 24.0))); OTIO_NS::ErrorStatus err; - auto items = stack->find_children( + auto items = stack->find_children( &err, TimeRange(RationalTime(0.0, 24.0), RationalTime(1.0, 24.0))); assertFalse(is_error(err)); diff --git a/tests/utils.h b/tests/utils.h index 0a519f08a..3dbf18c31 100644 --- a/tests/utils.h +++ b/tests/utils.h @@ -7,9 +7,9 @@ #include #include #include +#include #include #include -#include #include void assertTrue(bool value); From c30f2213ec285c54a7beda0a7187e3b09f25827f Mon Sep 17 00:00:00 2001 From: Joshua Minor Date: Mon, 27 Apr 2026 20:59:08 -0700 Subject: [PATCH 3/3] Clang format the examples Signed-off-by: Joshua Minor --- examples/conform.cpp | 49 ++++---- examples/flatten_video_tracks.cpp | 46 +++++--- examples/io_perf_test.cpp | 126 +++++++++------------ examples/python_adapters_child_process.cpp | 117 ++++++++++--------- examples/python_adapters_embed.cpp | 100 +++++++++------- examples/summarize_timing.cpp | 116 +++++++++++++------ examples/upgrade_downgrade_example.cpp | 45 +++----- examples/util.cpp | 99 +++++++++------- examples/util.h | 5 +- 9 files changed, 388 insertions(+), 315 deletions(-) diff --git a/examples/conform.cpp b/examples/conform.cpp index 808a6b073..f14e2e679 100644 --- a/examples/conform.cpp +++ b/examples/conform.cpp @@ -31,7 +31,8 @@ namespace otio = opentimelineio::OPENTIMELINEIO_VERSION_NS; // Look for media with this name in this folder. -std::string find_matching_media(std::string const& name, std::string const& folder) +std::string +find_matching_media(std::string const& name, std::string const& folder) { // This function is an example which searches the file system for matching media. // A real world studio implementation would likely look in an asset management system @@ -41,9 +42,9 @@ std::string find_matching_media(std::string const& name, std::string const& fold // shot = asset_database->find_shot( // otio::any_cast >(clip->metadata()["mystudio"])["shotID"]); // new_media = shot->latest_render("mov"); - + const auto matches = examples::glob(folder, name + ".*"); - + if (matches.size() == 0) { //std::cout << "DEBUG: No match for clip '" << name << "'" << std::endl; @@ -55,8 +56,9 @@ std::string find_matching_media(std::string const& name, std::string const& fold } else { - std::cout << "WARNING: " << matches.size() << " matches found for clip '" << - name << "', using '" << matches[0] << "'"; + std::cout << "WARNING: " << matches.size() + << " matches found for clip '" << name << "', using '" + << matches[0] << "'"; return matches[0]; } } @@ -70,21 +72,22 @@ std::string find_matching_media(std::string const& name, std::string const& fold // internal reference count. For more details on the usage of Retainers see // the C++ documentation: // https://opentimelineio.readthedocs.io/en/latest/cxx/cxx.html -int conform_timeline( +int +conform_timeline( otio::SerializableObject::Retainer const& timeline, - std::string const& folder) + std::string const& folder) { int count = 0; - + otio::ErrorStatus error_status; - const auto clips = timeline->find_clips(&error_status); + const auto clips = timeline->find_clips(&error_status); if (otio::is_error(error_status)) { examples::print_error(error_status); exit(1); } - - for (const otio::SerializableObject::Retainer& clip : clips) + + for (const otio::SerializableObject::Retainer& clip: clips) { // look for a media file that matches the clip's name const std::string new_path = find_matching_media(clip->name(), folder); @@ -96,28 +99,31 @@ int conform_timeline( // relink to the found path clip->set_media_reference(new otio::ExternalReference( "file://" + new_path, - std::nullopt // the available range is unknown without opening the file - )); + std:: + nullopt // the available range is unknown without opening the file + )); count += 1; } - + return count; } -int main(int argc, char** argv) +int +main(int argc, char** argv) { if (argc != 4) { std::cout << "Usage: conform (input) (folder) (output)" << std::endl; return 1; } - const std::string input = examples::normalize_path(argv[1]); + const std::string input = examples::normalize_path(argv[1]); const std::string folder = examples::normalize_path(argv[2]); const std::string output = examples::normalize_path(argv[3]); - - otio::ErrorStatus error_status; + + otio::ErrorStatus error_status; otio::SerializableObject::Retainer timeline( - dynamic_cast(otio::Timeline::from_json_file(input, &error_status))); + dynamic_cast( + otio::Timeline::from_json_file(input, &error_status))); if (!timeline || otio::is_error(error_status)) { examples::print_error(error_status); @@ -136,7 +142,8 @@ int main(int argc, char** argv) examples::print_error(error_status); exit(1); } - std::cout << "Saved " << output << " with " << clips.size() << " clips." << std::endl; - + std::cout << "Saved " << output << " with " << clips.size() << " clips." + << std::endl; + return 0; } diff --git a/examples/flatten_video_tracks.cpp b/examples/flatten_video_tracks.cpp index 9d8930ae9..06bb10577 100644 --- a/examples/flatten_video_tracks.cpp +++ b/examples/flatten_video_tracks.cpp @@ -11,17 +11,21 @@ namespace otio = opentimelineio::OPENTIMELINEIO_VERSION_NS; -int main(int argc, char** argv) +int +main(int argc, char** argv) { if (argc != 3) { - std::cout << "Usage: flatten_video_tracks (inputpath) (outputpath)" << std::endl; + std::cout << "Usage: flatten_video_tracks (inputpath) (outputpath)" + << std::endl; return 1; } - + // Read the file - otio::ErrorStatus error_status; - otio::SerializableObject::Retainer timeline(dynamic_cast(otio::Timeline::from_json_file(argv[1], &error_status))); + otio::ErrorStatus error_status; + otio::SerializableObject::Retainer timeline( + dynamic_cast( + otio::Timeline::from_json_file(argv[1], &error_status))); if (!timeline) { examples::print_error(error_status); @@ -29,14 +33,15 @@ int main(int argc, char** argv) } auto video_tracks = timeline.value->video_tracks(); auto audio_tracks = timeline.value->audio_tracks(); - - std::cout << "Read " << video_tracks.size() << " video tracks and " << - audio_tracks.size() << " audio tracks." << std::endl; + + std::cout << "Read " << video_tracks.size() << " video tracks and " + << audio_tracks.size() << " audio tracks." << std::endl; // Take just the video tracks - and flatten them into one. // This will trim away any overlapping segments, collapsing everything // into a single track. - std::cout << "Flattening " << video_tracks.size() << " video tracks into one..." << std::endl; + std::cout << "Flattening " << video_tracks.size() + << " video tracks into one..." << std::endl; auto onetrack = otio::flatten_stack(video_tracks, &error_status); if (!onetrack || is_error(error_status)) { @@ -45,22 +50,25 @@ int main(int argc, char** argv) } // Now make a new empty Timeline and put that one Track into it - std::string name; + std::string name; std::stringstream ss(name); ss << timeline.value->name() << " Flattened"; - auto newtimeline = otio::SerializableObject::Retainer(new otio::Timeline(ss.str())); - auto stack = otio::SerializableObject::Retainer(new otio::Stack()); + auto newtimeline = otio::SerializableObject::Retainer( + new otio::Timeline(ss.str())); + auto stack = + otio::SerializableObject::Retainer(new otio::Stack()); newtimeline.value->set_tracks(stack); if (!stack.value->append_child(onetrack, &error_status)) { examples::print_error(error_status); - return 1; + return 1; } // keep the audio track(s) as-is - for (const auto& audio_track : audio_tracks) + for (const auto& audio_track: audio_tracks) { - auto clone = dynamic_cast(audio_track->clone(&error_status)); + auto clone = + dynamic_cast(audio_track->clone(&error_status)); if (!clone) { examples::print_error(error_status); @@ -72,10 +80,12 @@ int main(int argc, char** argv) return 1; } } - + // ...and save it to disk. - std::cout << "Saving " << newtimeline.value->video_tracks().size() << " video tracks and " << - newtimeline.value->audio_tracks().size() << " audio tracks." << std::endl; + std::cout << "Saving " << newtimeline.value->video_tracks().size() + << " video tracks and " + << newtimeline.value->audio_tracks().size() << " audio tracks." + << std::endl; if (!newtimeline.value->to_json_file(argv[2], &error_status)) { examples::print_error(error_status); diff --git a/examples/io_perf_test.cpp b/examples/io_perf_test.cpp index e2c672529..570edcd4b 100644 --- a/examples/io_perf_test.cpp +++ b/examples/io_perf_test.cpp @@ -4,10 +4,10 @@ #include #include "opentimelineio/clip.h" -#include "opentimelineio/typeRegistry.h" -#include "opentimelineio/serialization.h" #include "opentimelineio/deserialization.h" +#include "opentimelineio/serialization.h" #include "opentimelineio/timeline.h" +#include "opentimelineio/typeRegistry.h" #include "util.h" @@ -15,8 +15,9 @@ namespace otio = opentimelineio::OPENTIMELINEIO_VERSION_NS; using chrono_time_point = std::chrono::steady_clock::time_point; -const struct { - bool FIXED_TMP = true; +const struct +{ + bool FIXED_TMP = true; bool PRINT_CPP_VERSION_FAMILY = false; bool TO_JSON_STRING = true; bool TO_JSON_STRING_NO_DOWNGRADE = true; @@ -24,20 +25,19 @@ const struct { bool TO_JSON_FILE_NO_DOWNGRADE = true; bool CLONE_TEST = true; bool SINGLE_CLIP_DOWNGRADE_TEST = true; -} RUN_STRUCT ; +} RUN_STRUCT; // typedef std::chrono::duration fsec; - // auto t0 = Time::now(); - // auto t1 = Time::now(); - // fsec fs = t1 - t0; +// auto t0 = Time::now(); +// auto t1 = Time::now(); +// fsec fs = t1 - t0; /// utility function for printing std::chrono elapsed time double print_elapsed_time( - const std::string& message, - const chrono_time_point& begin, - const chrono_time_point& end -) + const std::string& message, + const chrono_time_point& begin, + const chrono_time_point& end) { const std::chrono::duration dur = end - begin; @@ -49,31 +49,27 @@ print_elapsed_time( void print_version_map() { - std::cerr << "current version map: " << std::endl; + std::cerr << "current version map: " << std::endl; for (const auto& kv_lbl: otio::CORE_VERSION_MAP) { std::cerr << " " << kv_lbl.first << std::endl; - for (auto kv_schema_version : kv_lbl.second) + for (auto kv_schema_version: kv_lbl.second) { std::cerr << " \"" << kv_schema_version.first << "\": "; std::cerr << kv_schema_version.second << std::endl; } } - } int -main( - int argc, - char *argv[] -) +main(int argc, char* argv[]) { if (RUN_STRUCT.PRINT_CPP_VERSION_FAMILY) { print_version_map(); } - if (argc < 2) + if (argc < 2) { std::cerr << "usage: otio_io_perf_test path/to/timeline.otio "; std::cerr << "[--keep-tmp]" << std::endl; @@ -90,26 +86,23 @@ main( } } - const std::string tmp_dir_path = ( - RUN_STRUCT.FIXED_TMP - ? "/var/tmp/ioperftest" - : examples::create_temp_dir() - ); + const std::string tmp_dir_path = + (RUN_STRUCT.FIXED_TMP ? "/var/tmp/ioperftest" + : examples::create_temp_dir()); otio::ErrorStatus err; assert(!otio::is_error(err)); - otio::schema_version_map downgrade_manifest = { - {"FakeSchema", 3}, - {"Clip", 1}, - {"OtherThing", 12000} - }; + otio::schema_version_map downgrade_manifest = { { "FakeSchema", 3 }, + { "Clip", 1 }, + { "OtherThing", 12000 } }; if (RUN_STRUCT.CLONE_TEST) { - otio::SerializableObject::Retainer cl = new otio::Clip("test"); + otio::SerializableObject::Retainer cl = + new otio::Clip("test"); cl->metadata()["example thing"] = "banana"; - const auto intermediate = cl->clone(&err); + const auto intermediate = cl->clone(&err); assert(intermediate != nullptr); const auto cl_clone = dynamic_cast(intermediate); assert(cl_clone != nullptr); @@ -119,32 +112,28 @@ main( if (RUN_STRUCT.SINGLE_CLIP_DOWNGRADE_TEST) { - otio::SerializableObject::Retainer cl = new otio::Clip("test"); + otio::SerializableObject::Retainer cl = + new otio::Clip("test"); cl->metadata()["example thing"] = "banana"; - chrono_time_point begin = std::chrono::steady_clock::now(); + chrono_time_point begin = std::chrono::steady_clock::now(); cl->to_json_file( - examples::normalize_path(tmp_dir_path + "/clip.otio"), - &err, - &downgrade_manifest - ); + examples::normalize_path(tmp_dir_path + "/clip.otio"), + &err, + &downgrade_manifest); chrono_time_point end = std::chrono::steady_clock::now(); assert(!otio::is_error(err)); print_elapsed_time("downgrade clip", begin, end); } - std::any tl; + std::any tl; std::string fname = std::string(argv[1]); // read file chrono_time_point begin = std::chrono::steady_clock::now(); otio::SerializableObject::Retainer timeline( - dynamic_cast( - otio::Timeline::from_json_file( - examples::normalize_path(argv[1]), - &err - ) - ) - ); + dynamic_cast(otio::Timeline::from_json_file( + examples::normalize_path(argv[1]), + &err))); chrono_time_point end = std::chrono::steady_clock::now(); assert(!otio::is_error(err)); if (!timeline) @@ -155,15 +144,12 @@ main( print_elapsed_time("deserialize_json_from_file", begin, end); - double str_dg, str_nodg; if (RUN_STRUCT.TO_JSON_STRING) { begin = std::chrono::steady_clock::now(); - const std::string result = timeline.value->to_json_string( - &err, - &downgrade_manifest - ); + const std::string result = + timeline.value->to_json_string(&err, &downgrade_manifest); end = std::chrono::steady_clock::now(); assert(!otio::is_error(err)); @@ -177,9 +163,9 @@ main( if (RUN_STRUCT.TO_JSON_STRING_NO_DOWNGRADE) { - begin = std::chrono::steady_clock::now(); + begin = std::chrono::steady_clock::now(); const std::string result = timeline.value->to_json_string(&err, {}); - end = std::chrono::steady_clock::now(); + end = std::chrono::steady_clock::now(); assert(!otio::is_error(err)); if (otio::is_error(err)) @@ -188,10 +174,9 @@ main( return 1; } str_nodg = print_elapsed_time( - "serialize_json_to_string [no downgrade]", - begin, - end - ); + "serialize_json_to_string [no downgrade]", + begin, + end); } if (RUN_STRUCT.TO_JSON_STRING && RUN_STRUCT.TO_JSON_STRING_NO_DOWNGRADE) @@ -205,10 +190,9 @@ main( { begin = std::chrono::steady_clock::now(); timeline.value->to_json_file( - examples::normalize_path(tmp_dir_path + "/io_perf_test.otio"), - &err, - &downgrade_manifest - ); + examples::normalize_path(tmp_dir_path + "/io_perf_test.otio"), + &err, + &downgrade_manifest); end = std::chrono::steady_clock::now(); assert(!otio::is_error(err)); file_dg = print_elapsed_time("serialize_json_to_file", begin, end); @@ -218,20 +202,16 @@ main( { begin = std::chrono::steady_clock::now(); timeline.value->to_json_file( - examples::normalize_path( - tmp_dir_path - + "/io_perf_test.nodowngrade.otio" - ), - &err, - {} - ); + examples::normalize_path( + tmp_dir_path + "/io_perf_test.nodowngrade.otio"), + &err, + {}); end = std::chrono::steady_clock::now(); assert(!otio::is_error(err)); file_nodg = print_elapsed_time( - "serialize_json_to_file [no downgrade]", - begin, - end - ); + "serialize_json_to_file [no downgrade]", + begin, + end); } if (RUN_STRUCT.TO_JSON_FILE && RUN_STRUCT.TO_JSON_FILE_NO_DOWNGRADE) @@ -249,7 +229,7 @@ main( { // clean up const auto tmp_files = examples::glob(tmp_dir_path, "*"); - for (const auto& fp : tmp_files) + for (const auto& fp: tmp_files) { remove(fp.c_str()); } diff --git a/examples/python_adapters_child_process.cpp b/examples/python_adapters_child_process.cpp index 91aa3fa3d..17612ab9b 100644 --- a/examples/python_adapters_child_process.cpp +++ b/examples/python_adapters_child_process.cpp @@ -18,16 +18,16 @@ #include #if defined(_WINDOWS) -#ifndef WIN32_LEAN_AND_MEAN -#define WIN32_LEAN_AND_MEAN -#endif // WIN32_LEAN_AND_MEAN -#include -#include -#include -#include -#include +# ifndef WIN32_LEAN_AND_MEAN +# define WIN32_LEAN_AND_MEAN +# endif // WIN32_LEAN_AND_MEAN +# include +# include +# include +# include +# include #else // _WINDOWS -#include +# include #endif // _WINDOWS namespace otio = opentimelineio::OPENTIMELINEIO_VERSION_NS; @@ -35,9 +35,8 @@ namespace otio = opentimelineio::OPENTIMELINEIO_VERSION_NS; class PythonAdapters { public: - static otio::SerializableObject::Retainer read_from_file( - std::string const&, - otio::ErrorStatus*); + static otio::SerializableObject::Retainer + read_from_file(std::string const&, otio::ErrorStatus*); static bool write_to_file( otio::SerializableObject::Retainer const&, @@ -48,27 +47,33 @@ class PythonAdapters static bool _run_process(std::string const& cmd_line, otio::ErrorStatus*); }; -otio::SerializableObject::Retainer PythonAdapters::read_from_file( +otio::SerializableObject::Retainer +PythonAdapters::read_from_file( std::string const& file_name, otio::ErrorStatus* error_status) { // Convert the input file to a temporary JSON file. - const std::string temp_file_name = examples::create_temp_dir() + "/temp.otio"; + const std::string temp_file_name = + examples::create_temp_dir() + "/temp.otio"; std::stringstream ss; - ss << "otioconvert" << " -i " << examples::normalize_path(file_name) << " -o " << temp_file_name; + ss << "otioconvert" << " -i " << examples::normalize_path(file_name) + << " -o " << temp_file_name; _run_process(ss.str(), error_status); // Read the temporary JSON file. - return dynamic_cast(otio::Timeline::from_json_file(temp_file_name, error_status)); + return dynamic_cast( + otio::Timeline::from_json_file(temp_file_name, error_status)); } -bool PythonAdapters::write_to_file( +bool +PythonAdapters::write_to_file( otio::SerializableObject::Retainer const& timeline, - std::string const& file_name, - otio::ErrorStatus* error_status) + std::string const& file_name, + otio::ErrorStatus* error_status) { // Write the temporary JSON file. - const std::string temp_file_name = examples::create_temp_dir() + "/temp.otio"; + const std::string temp_file_name = + examples::create_temp_dir() + "/temp.otio"; if (!timeline.value->to_json_file(temp_file_name, error_status)) { return false; @@ -76,7 +81,8 @@ bool PythonAdapters::write_to_file( // Convert the temporary JSON file to the output file. std::stringstream ss; - ss << "otioconvert" << " -i " << temp_file_name << " -o " << examples::normalize_path(file_name); + ss << "otioconvert" << " -i " << temp_file_name << " -o " + << examples::normalize_path(file_name); _run_process(ss.str(), error_status); return true; @@ -94,20 +100,20 @@ class WCharBuffer p[size] = 0; } - ~WCharBuffer() - { - delete[] p; - } + ~WCharBuffer() { delete[] p; } WCHAR* p = nullptr; }; -bool PythonAdapters::_run_process(const std::string& cmd_line, otio::ErrorStatus* error_status) +bool +PythonAdapters::_run_process( + const std::string& cmd_line, + otio::ErrorStatus* error_status) { // Convert the command-line to UTF16. std::wstring_convert, wchar_t> utf16; std::wstring w_cmd_line = utf16.from_bytes("/c " + cmd_line); - WCharBuffer w_cmd_line_buf(w_cmd_line.c_str(), w_cmd_line.size()); + WCharBuffer w_cmd_line_buf(w_cmd_line.c_str(), w_cmd_line.size()); // Create the process and wait for it to complete. STARTUPINFOW si; @@ -115,27 +121,27 @@ bool PythonAdapters::_run_process(const std::string& cmd_line, otio::ErrorStatus PROCESS_INFORMATION pi; si.cb = sizeof(si); ZeroMemory(&pi, sizeof(pi)); - if (0 == CreateProcessW( - // TODO: MSDN documentation says to use "cmd.exe" for the "lpApplicationName" - // argument, but that gives the error: "The system cannot find the file specified." - // https://docs.microsoft.com/en-us/windows/win32/api/processthreadsapi/nf-processthreadsapi-createprocessw - //L"cmd.exe", - L"C:\\windows\\system32\\cmd.exe", - w_cmd_line_buf.p, - NULL, - NULL, - FALSE, - 0, - NULL, - NULL, - &si, - &pi)) + if (0 + == CreateProcessW( + // TODO: MSDN documentation says to use "cmd.exe" for the "lpApplicationName" + // argument, but that gives the error: "The system cannot find the file specified." + // https://docs.microsoft.com/en-us/windows/win32/api/processthreadsapi/nf-processthreadsapi-createprocessw + //L"cmd.exe", + L"C:\\windows\\system32\\cmd.exe", + w_cmd_line_buf.p, + NULL, + NULL, + FALSE, + 0, + NULL, + NULL, + &si, + &pi)) { const DWORD error = GetLastError(); - TCHAR error_buf[4096]; + TCHAR error_buf[4096]; FormatMessage( - FORMAT_MESSAGE_FROM_SYSTEM | - FORMAT_MESSAGE_IGNORE_INSERTS, + FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS, NULL, error, MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), @@ -143,7 +149,8 @@ bool PythonAdapters::_run_process(const std::string& cmd_line, otio::ErrorStatus 4096, NULL); error_status->outcome = otio::ErrorStatus::Outcome::FILE_OPEN_FAILED; - error_status->details = "cannot create process: " + std::string(error_buf, lstrlen(error_buf)); + error_status->details = "cannot create process: " + + std::string(error_buf, lstrlen(error_buf)); return false; } WaitForSingleObject(pi.hProcess, INFINITE); @@ -155,7 +162,10 @@ bool PythonAdapters::_run_process(const std::string& cmd_line, otio::ErrorStatus #else // _WINDOWS -bool PythonAdapters::_run_process(const std::string& cmd_line, otio::ErrorStatus* error_status) +bool +PythonAdapters::_run_process( + const std::string& cmd_line, + otio::ErrorStatus* error_status) { FILE* f = popen(cmd_line.c_str(), "r"); if (!f) @@ -175,11 +185,14 @@ bool PythonAdapters::_run_process(const std::string& cmd_line, otio::ErrorStatus #endif // _WINDOWS -int main(int argc, char** argv) +int +main(int argc, char** argv) { if (argc != 3) { - std::cout << "Usage: python_adapters_child_process (inputpath) (outputpath)" << std::endl; + std::cout + << "Usage: python_adapters_child_process (inputpath) (outputpath)" + << std::endl; return 1; } @@ -191,8 +204,10 @@ int main(int argc, char** argv) return 1; } - std::cout << "Video tracks: " << timeline.value->video_tracks().size() << std::endl; - std::cout << "Audio tracks: " << timeline.value->audio_tracks().size() << std::endl; + std::cout << "Video tracks: " << timeline.value->video_tracks().size() + << std::endl; + std::cout << "Audio tracks: " << timeline.value->audio_tracks().size() + << std::endl; if (!PythonAdapters::write_to_file(timeline, argv[2], &error_status)) { diff --git a/examples/python_adapters_embed.cpp b/examples/python_adapters_embed.cpp index d85b27bc6..f3c8790fd 100644 --- a/examples/python_adapters_embed.cpp +++ b/examples/python_adapters_embed.cpp @@ -20,11 +20,11 @@ #include #if defined(_WINDOWS) -#ifndef WIN32_LEAN_AND_MEAN -#define WIN32_LEAN_AND_MEAN -#endif // WIN32_LEAN_AND_MEAN -#include -#include +# ifndef WIN32_LEAN_AND_MEAN +# define WIN32_LEAN_AND_MEAN +# endif // WIN32_LEAN_AND_MEAN +# include +# include #endif // _WINDOWS namespace otio = opentimelineio::OPENTIMELINEIO_VERSION_NS; @@ -35,9 +35,8 @@ class PythonAdapters PythonAdapters(); ~PythonAdapters(); - otio::SerializableObject::Retainer read_from_file( - std::string const&, - otio::ErrorStatus*); + otio::SerializableObject::Retainer + read_from_file(std::string const&, otio::ErrorStatus*); bool write_to_file( otio::SerializableObject::Retainer const&, @@ -58,8 +57,8 @@ PythonAdapters::~PythonAdapters() class PyObjectRef { public: - PyObjectRef(PyObject* o) : - o(o) + PyObjectRef(PyObject* o) + : o(o) { if (!o) { @@ -67,17 +66,15 @@ class PyObjectRef } } - ~PyObjectRef() - { - Py_XDECREF(o); - } + ~PyObjectRef() { Py_XDECREF(o); } PyObject* o = nullptr; - operator PyObject* () const { return o; } + operator PyObject*() const { return o; } }; -otio::SerializableObject::Retainer PythonAdapters::read_from_file( +otio::SerializableObject::Retainer +PythonAdapters::read_from_file( std::string const& file_name, otio::ErrorStatus* error_status) { @@ -85,23 +82,31 @@ otio::SerializableObject::Retainer PythonAdapters::read_from_fil try { // Import the OTIO Python module. - auto p_module = PyObjectRef(PyImport_ImportModule("opentimelineio.adapters")); - + auto p_module = + PyObjectRef(PyImport_ImportModule("opentimelineio.adapters")); + // Read the timeline into Python. - auto p_read_from_file = PyObjectRef(PyObject_GetAttrString(p_module, "read_from_file")); - auto p_read_from_file_args = PyObjectRef(PyTuple_New(1)); - const std::string file_name_normalized = examples::normalize_path(file_name); - auto p_read_from_file_arg = PyUnicode_FromStringAndSize(file_name_normalized.c_str(), file_name_normalized.size()); + auto p_read_from_file = + PyObjectRef(PyObject_GetAttrString(p_module, "read_from_file")); + auto p_read_from_file_args = PyObjectRef(PyTuple_New(1)); + const std::string file_name_normalized = + examples::normalize_path(file_name); + auto p_read_from_file_arg = PyUnicode_FromStringAndSize( + file_name_normalized.c_str(), + file_name_normalized.size()); if (!p_read_from_file_arg) { throw std::runtime_error("cannot create arg"); } PyTuple_SetItem(p_read_from_file_args, 0, p_read_from_file_arg); - auto p_timeline = PyObjectRef(PyObject_CallObject(p_read_from_file, p_read_from_file_args)); + auto p_timeline = PyObjectRef( + PyObject_CallObject(p_read_from_file, p_read_from_file_args)); // Convert the Python timeline into a string and use that to create a C++ timeline. - auto p_to_json_string = PyObjectRef(PyObject_GetAttrString(p_timeline, "to_json_string")); - auto p_json_string = PyObjectRef(PyObject_CallObject(p_to_json_string, NULL)); + auto p_to_json_string = + PyObjectRef(PyObject_GetAttrString(p_timeline, "to_json_string")); + auto p_json_string = + PyObjectRef(PyObject_CallObject(p_to_json_string, NULL)); timeline = otio::SerializableObject::Retainer( dynamic_cast(otio::Timeline::from_json_string( PyUnicode_AsUTF8AndSize(p_json_string, NULL), @@ -119,16 +124,18 @@ otio::SerializableObject::Retainer PythonAdapters::read_from_fil return timeline; } -bool PythonAdapters::write_to_file( +bool +PythonAdapters::write_to_file( otio::SerializableObject::Retainer const& timeline, - std::string const& file_name, - otio::ErrorStatus* error_status) + std::string const& file_name, + otio::ErrorStatus* error_status) { bool r = false; try { // Import the OTIO Python module. - auto p_module = PyObjectRef(PyImport_ImportModule("opentimelineio.adapters")); + auto p_module = + PyObjectRef(PyImport_ImportModule("opentimelineio.adapters")); // Convert the C++ timeline to a string and pass that to Python. const auto string = timeline.value->to_json_string(error_status); @@ -136,21 +143,28 @@ bool PythonAdapters::write_to_file( { throw std::runtime_error("cannot convert to string"); } - auto p_read_from_string = PyObjectRef(PyObject_GetAttrString(p_module, "read_from_string")); + auto p_read_from_string = + PyObjectRef(PyObject_GetAttrString(p_module, "read_from_string")); auto p_read_from_string_args = PyObjectRef(PyTuple_New(1)); - auto p_read_from_string_arg = PyUnicode_FromStringAndSize(string.c_str(), string.size()); + auto p_read_from_string_arg = + PyUnicode_FromStringAndSize(string.c_str(), string.size()); if (!p_read_from_string_arg) { throw std::runtime_error("cannot create arg"); } PyTuple_SetItem(p_read_from_string_args, 0, p_read_from_string_arg); - auto p_timeline = PyObjectRef(PyObject_CallObject(p_read_from_string, p_read_from_string_args)); + auto p_timeline = PyObjectRef( + PyObject_CallObject(p_read_from_string, p_read_from_string_args)); // Write the Python timeline. - auto p_write_to_file = PyObjectRef(PyObject_GetAttrString(p_module, "write_to_file")); - auto p_write_to_file_args = PyObjectRef(PyTuple_New(2)); - const std::string file_name_normalized = examples::normalize_path(file_name); - auto p_write_to_file_arg = PyUnicode_FromStringAndSize(file_name_normalized.c_str(), file_name_normalized.size()); + auto p_write_to_file = + PyObjectRef(PyObject_GetAttrString(p_module, "write_to_file")); + auto p_write_to_file_args = PyObjectRef(PyTuple_New(2)); + const std::string file_name_normalized = + examples::normalize_path(file_name); + auto p_write_to_file_arg = PyUnicode_FromStringAndSize( + file_name_normalized.c_str(), + file_name_normalized.size()); if (!p_write_to_file_arg) { throw std::runtime_error("cannot create arg"); @@ -173,15 +187,17 @@ bool PythonAdapters::write_to_file( return r; } -int main(int argc, char** argv) +int +main(int argc, char** argv) { if (argc != 3) { - std::cout << "Usage: python_adapters_embed (inputpath) (outputpath)" << std::endl; + std::cout << "Usage: python_adapters_embed (inputpath) (outputpath)" + << std::endl; return 1; } - PythonAdapters adapters; + PythonAdapters adapters; otio::ErrorStatus error_status; auto timeline = adapters.read_from_file(argv[1], &error_status); if (!timeline) @@ -190,8 +206,10 @@ int main(int argc, char** argv) return 1; } - std::cout << "Video tracks: " << timeline.value->video_tracks().size() << std::endl; - std::cout << "Audio tracks: " << timeline.value->audio_tracks().size() << std::endl; + std::cout << "Video tracks: " << timeline.value->video_tracks().size() + << std::endl; + std::cout << "Audio tracks: " << timeline.value->audio_tracks().size() + << std::endl; if (!adapters.write_to_file(timeline, argv[2], &error_status)) { diff --git a/examples/summarize_timing.cpp b/examples/summarize_timing.cpp index e8f4f8761..6ebb606bf 100644 --- a/examples/summarize_timing.cpp +++ b/examples/summarize_timing.cpp @@ -17,32 +17,40 @@ #include -namespace otio = opentimelineio::OPENTIMELINEIO_VERSION_NS; +namespace otio = opentimelineio::OPENTIMELINEIO_VERSION_NS; namespace otime = opentime::OPENTIME_VERSION_NS; -void summarize_effects(otio::SerializableObject::Retainer const& item) +void +summarize_effects(otio::SerializableObject::Retainer const& item) { - for (auto effect : item.value->effects()) + for (auto effect: item.value->effects()) { if (auto freezeFrame = dynamic_cast(effect.value)) { std::cout << "Effect: Freeze Frame" << std::endl; } - else if (auto linearTimeWarp = dynamic_cast(effect.value)) + else if ( + auto linearTimeWarp = + dynamic_cast(effect.value)) { std::cout.precision(2); - std::cout << "Effect: Linear Time Warp (" << std::fixed << - linearTimeWarp->time_scalar() * 100.0 << "%)" << std::endl; + std::cout << "Effect: Linear Time Warp (" << std::fixed + << linearTimeWarp->time_scalar() * 100.0 << "%)" + << std::endl; } else { - std::cout << "Effect: " << effect.value->name() << - "(" << typeid(effect.value).name() << ")" << std::endl; + std::cout << "Effect: " << effect.value->name() << "(" + << typeid(effect.value).name() << ")" << std::endl; } } } -void summarize_range(std::string const& label, otio::TimeRange const& time_range, otio::ErrorStatus const& errorStatus) +void +summarize_range( + std::string const& label, + otio::TimeRange const& time_range, + otio::ErrorStatus const& errorStatus) { if (errorStatus.outcome != otio::ErrorStatus::Outcome::OK) { @@ -51,29 +59,37 @@ void summarize_range(std::string const& label, otio::TimeRange const& time_range else { otime::ErrorStatus otimeErrorStatus; - std::cout << '\t' << label << ": " << - time_range.start_time().to_timecode(&otimeErrorStatus) << " - " << - time_range.end_time_exclusive().to_timecode(&otimeErrorStatus) << - " (Duration: " << time_range.duration().to_timecode(&otimeErrorStatus) << ")" << std::endl; + std::cout << '\t' << label << ": " + << time_range.start_time().to_timecode(&otimeErrorStatus) + << " - " + << time_range.end_time_exclusive().to_timecode( + &otimeErrorStatus) + << " (Duration: " + << time_range.duration().to_timecode(&otimeErrorStatus) << ")" + << std::endl; } } -void summarize_timeline(otio::SerializableObject::Retainer const& timeline) +void +summarize_timeline( + otio::SerializableObject::Retainer const& timeline) { // Here we iterate over each video track, and then just the top-level // items in each track. // See also: https://opentimelineio.readthedocs.io/en/latest/tutorials/otio-timeline-structure.html # noqa - for (const auto i : timeline.value->tracks()->children()) + for (const auto i: timeline.value->tracks()->children()) { if (auto track = dynamic_cast(i.value)) { otio::ErrorStatus errorStatus; - std::cout << "Track: " << track->name() << '\n' << - "\tKind: " << track->kind() << '\n' << - "\tDuration: " << track->duration(&errorStatus).to_time_string() << std::endl; + std::cout << "Track: " << track->name() << '\n' + << "\tKind: " << track->kind() << '\n' + << "\tDuration: " + << track->duration(&errorStatus).to_time_string() + << std::endl; summarize_effects(track); - - for (auto child : track->children()) + + for (auto child: track->children()) { if (auto item = dynamic_cast(child.value)) { @@ -83,29 +99,55 @@ void summarize_timeline(otio::SerializableObject::Retainer const // See the documentation to understand the difference // between each of these ranges: // https://opentimelineio.readthedocs.io/en/latest/tutorials/time-ranges.html - summarize_range(" Trimmed Range", clip->trimmed_range(&errorStatus), errorStatus); - summarize_range(" Visible Range", clip->visible_range(&errorStatus), errorStatus); - summarize_range("Available Range", clip->available_range(&errorStatus), errorStatus); + summarize_range( + " Trimmed Range", + clip->trimmed_range(&errorStatus), + errorStatus); + summarize_range( + " Visible Range", + clip->visible_range(&errorStatus), + errorStatus); + summarize_range( + "Available Range", + clip->available_range(&errorStatus), + errorStatus); } else if (auto gap = dynamic_cast(item)) { continue; } - else if (auto transition = dynamic_cast(item)) + else if ( + auto transition = dynamic_cast(item)) { otime::ErrorStatus otimeErrorStatus; - std::cout << "Transition: " << transition->transition_type() << '\n' << - "\tDuration: " << transition->duration(&errorStatus).to_timecode(&otimeErrorStatus) << std::endl; + std::cout + << "Transition: " << transition->transition_type() + << '\n' + << "\tDuration: " + << transition->duration(&errorStatus) + .to_timecode(&otimeErrorStatus) + << std::endl; } - else if (auto composition = dynamic_cast(item)) + else if ( + auto composition = + dynamic_cast(item)) { - std::cout << "Nested Composition: " << composition->name() << '\n' << - "\tDuration: " << composition->duration(&errorStatus).to_time_string() << std::endl; + std::cout + << "Nested Composition: " << composition->name() + << '\n' + << "\tDuration: " + << composition->duration(&errorStatus) + .to_time_string() + << std::endl; } else { - std::cout << "Other: " << item->name() << "(" << typeid(item).name() << ")" << '\n' << - "\tDuration: " << item->duration(&errorStatus).to_time_string() << std::endl; + std::cout + << "Other: " << item->name() << "(" + << typeid(item).name() << ")" << '\n' + << "\tDuration: " + << item->duration(&errorStatus).to_time_string() + << std::endl; } summarize_effects(item); } @@ -114,20 +156,22 @@ void summarize_timeline(otio::SerializableObject::Retainer const } } -int main(int argc, char** argv) +int +main(int argc, char** argv) { for (int i = 1; i < argc; ++i) { - otio::ErrorStatus error_status; - otio::SerializableObject::Retainer timeline(dynamic_cast(otio::Timeline::from_json_file(argv[i], &error_status))); + otio::ErrorStatus error_status; + otio::SerializableObject::Retainer timeline( + dynamic_cast( + otio::Timeline::from_json_file(argv[i], &error_status))); if (!timeline) { examples::print_error(error_status); return 1; } - + summarize_timeline(timeline); } return 0; } - diff --git a/examples/upgrade_downgrade_example.cpp b/examples/upgrade_downgrade_example.cpp index 185725e3b..3bcbfbdb5 100644 --- a/examples/upgrade_downgrade_example.cpp +++ b/examples/upgrade_downgrade_example.cpp @@ -20,7 +20,7 @@ class SimpleClass : public otio::SerializableObject static int constexpr version = 2; }; - void set_new_field(int64_t val) { _new_field = val; } + void set_new_field(int64_t val) { _new_field = val; } int64_t new_field() const { return _new_field; } protected: @@ -29,20 +29,17 @@ class SimpleClass : public otio::SerializableObject virtual ~SimpleClass() = default; // methods for serialization - virtual bool - read_from(Reader& reader) override + virtual bool read_from(Reader& reader) override { - auto result = ( - reader.read("new_field", &_new_field) - && Parent::read_from(reader) - ); + auto result = + (reader.read("new_field", &_new_field) + && Parent::read_from(reader)); return result; } // ...and deserialization - virtual void - write_to(Writer& writer) const override + virtual void write_to(Writer& writer) const override { Parent::write_to(writer); writer.write("new_field", _new_field); @@ -53,10 +50,7 @@ class SimpleClass : public otio::SerializableObject }; int -main( - int argc, - char *argv[] -) +main(int argc, char* argv[]) { // register type and upgrade/downgrade functions otio::TypeRegistry::instance().register_type(); @@ -65,44 +59,37 @@ main( otio::TypeRegistry::instance().register_upgrade_function( SimpleClass::Schema::name, 2, - [](otio::AnyDictionary* d) - { + [](otio::AnyDictionary* d) { (*d)["new_field"] = (*d)["my_field"]; d->erase("my_field"); - } - ); + }); // 2->1 otio::TypeRegistry::instance().register_downgrade_function( SimpleClass::Schema::name, 2, - [](otio::AnyDictionary* d) - { + [](otio::AnyDictionary* d) { (*d)["my_field"] = (*d)["new_field"]; d->erase("new_field"); - } - ); + }); otio::ErrorStatus err; - auto sc = otio::SerializableObject::Retainer(new SimpleClass()); + auto sc = + otio::SerializableObject::Retainer(new SimpleClass()); sc->set_new_field(12); // write it out to disk, without changing it sc->to_json_file("/var/tmp/simpleclass.otio", &err); - otio::schema_version_map downgrade_manifest = { - {"SimpleClass", 1} - }; + otio::schema_version_map downgrade_manifest = { { "SimpleClass", 1 } }; // write it out to disk, downgrading to version 1 sc->to_json_file("/var/tmp/simpleclass.otio", &err, &downgrade_manifest); // read it back, upgrading automatically back up to version 2 of the schema otio::SerializableObject::Retainer sc2( - dynamic_cast( - SimpleClass::from_json_file("/var/tmp/simpleclass.otio", &err) - ) - ); + dynamic_cast( + SimpleClass::from_json_file("/var/tmp/simpleclass.otio", &err))); assert(sc2->new_field() == sc->new_field()); diff --git a/examples/util.cpp b/examples/util.cpp index df05706ed..9123ec0de 100644 --- a/examples/util.cpp +++ b/examples/util.cpp @@ -12,21 +12,21 @@ #include #if defined(_WINDOWS) -#if !defined(WIN32_LEAN_AND_MEAN) -#define WIN32_LEAN_AND_MEAN -#endif // WIN32_LEAN_AND_MEAN -#include -#include -#if defined(min) -#undef min -#endif // min -#else // _WINDOWS -#include -#include -#include -#include -#include -#include +# if !defined(WIN32_LEAN_AND_MEAN) +# define WIN32_LEAN_AND_MEAN +# endif // WIN32_LEAN_AND_MEAN +# include +# include +# if defined(min) +# undef min +# endif // min +#else // _WINDOWS +# include +# include +# include +# include +# include +# include #endif // _WINDOWS namespace otio = opentimelineio::OPENTIMELINEIO_VERSION_NS; @@ -35,17 +35,19 @@ namespace examples { #if defined(_WINDOWS) -std::string normalize_path(std::string const& in) +std::string +normalize_path(std::string const& in) { std::string out; - for (auto i : in) + for (auto i: in) { out.push_back('\\' == i ? '/' : i); } return out; } -std::string absolute(std::string const& in) +std::string +absolute(std::string const& in) { wchar_t buf[MAX_PATH]; std::wstring_convert, wchar_t> utf16; @@ -56,12 +58,13 @@ std::string absolute(std::string const& in) return normalize_path(utf16.to_bytes(buf)); } -std::string create_temp_dir() +std::string +create_temp_dir() { std::string out; // Get the temporary directory. - char path[MAX_PATH]; + char path[MAX_PATH]; DWORD r = GetTempPath(MAX_PATH, path); if (r) { @@ -94,22 +97,23 @@ std::string create_temp_dir() return out; } -std::vector glob(std::string const& path, std::string const& pattern) +std::vector +glob(std::string const& path, std::string const& pattern) { std::vector out; // Prepare the path. std::wstring_convert, wchar_t> utf16; std::wstring wpath = utf16.from_bytes(path + '/' + pattern); - WCHAR wbuf[MAX_PATH]; + WCHAR wbuf[MAX_PATH]; size_t size = std::min(wpath.size(), static_cast(MAX_PATH - 1)); memcpy(wbuf, wpath.c_str(), size * sizeof(WCHAR)); wbuf[size++] = 0; // List the directory contents. std::string const absolutePath = absolute(path); - WIN32_FIND_DATAW ffd; - HANDLE hFind = FindFirstFileW(wbuf, &ffd); + WIN32_FIND_DATAW ffd; + HANDLE hFind = FindFirstFileW(wbuf, &ffd); if (hFind != INVALID_HANDLE_VALUE) { do @@ -124,12 +128,14 @@ std::vector glob(std::string const& path, std::string const& patter #else // _WINDOWS -std::string normalize_path(std::string const& in) +std::string +normalize_path(std::string const& in) { return in; } -std::string absolute(std::string const& in) +std::string +absolute(std::string const& in) { char buf[PATH_MAX]; if (NULL == realpath(in.c_str(), buf)) @@ -139,19 +145,23 @@ std::string absolute(std::string const& in) return buf; } -std::string create_temp_dir() +std::string +create_temp_dir() { // Find the temporary directory. std::string path; - char* env = nullptr; - if ((env = getenv("TEMP"))) path = env; - else if ((env = getenv("TMP"))) path = env; - else if ((env = getenv("TMPDIR"))) path = env; + char* env = nullptr; + if ((env = getenv("TEMP"))) + path = env; + else if ((env = getenv("TMP"))) + path = env; + else if ((env = getenv("TMPDIR"))) + path = env; else { - for (const auto& i : { "/tmp", "/var/tmp", "/usr/tmp" }) + for (const auto& i: { "/tmp", "/var/tmp", "/usr/tmp" }) { - struct stat buffer; + struct stat buffer; if (0 == stat(i, &buffer)) { path = i; @@ -161,19 +171,20 @@ std::string create_temp_dir() } // Create a unique directory. - path = path + "/XXXXXX"; - const size_t size = path.size(); + path = path + "/XXXXXX"; + const size_t size = path.size(); std::vector buf(size + 1); memcpy(buf.data(), path.c_str(), size); buf[size] = 0; return mkdtemp(buf.data()); } -std::vector glob(std::string const& path, std::string const& pattern) +std::vector +glob(std::string const& path, std::string const& pattern) { std::vector out; - std::string const absolutePath = absolute(path); - DIR* dir = opendir(path.c_str()); + std::string const absolutePath = absolute(path); + DIR* dir = opendir(path.c_str()); if (dir) { struct dirent* e = nullptr; @@ -191,12 +202,12 @@ std::vector glob(std::string const& path, std::string const& patter #endif // _WINDOWS -void print_error(otio::ErrorStatus const& error_status) +void +print_error(otio::ErrorStatus const& error_status) { - std::cout << "ERROR: " << - otio::ErrorStatus::outcome_to_string(error_status.outcome) << ": " << - error_status.details << std::endl; -} - + std::cout << "ERROR: " + << otio::ErrorStatus::outcome_to_string(error_status.outcome) + << ": " << error_status.details << std::endl; } +} // namespace examples diff --git a/examples/util.h b/examples/util.h index f3aecd020..103ed06c3 100644 --- a/examples/util.h +++ b/examples/util.h @@ -19,9 +19,10 @@ std::string absolute(std::string const&); std::string create_temp_dir(); // Get a list of files from a directory. -std::vector glob(std::string const& path, std::string const& pattern); +std::vector +glob(std::string const& path, std::string const& pattern); // Print an error to std::cerr. void print_error(opentimelineio::OPENTIMELINEIO_VERSION_NS::ErrorStatus const&); -} +} // namespace examples