From 59b60b7927324452a292f713186028fda0979088 Mon Sep 17 00:00:00 2001 From: Roy Turner Date: Tue, 26 Jul 2022 11:58:58 -0700 Subject: [PATCH] Initial data track support --- .../adapters/advanced_authoring_format.py | 27 ++++++++++++++ .../simple_data_track_marker_test.aaf | Bin 0 -> 1216512 bytes .../adapters/tests/test_aaf_adapter.py | 35 ++++++++++++++++++ src/opentimelineio/track.h | 1 + .../otio_serializableObjects.cpp | 3 +- 5 files changed, 65 insertions(+), 1 deletion(-) create mode 100755 contrib/opentimelineio_contrib/adapters/tests/sample_data/simple_data_track_marker_test.aaf diff --git a/contrib/opentimelineio_contrib/adapters/advanced_authoring_format.py b/contrib/opentimelineio_contrib/adapters/advanced_authoring_format.py index 80310af300..07fa000883 100644 --- a/contrib/opentimelineio_contrib/adapters/advanced_authoring_format.py +++ b/contrib/opentimelineio_contrib/adapters/advanced_authoring_format.py @@ -880,6 +880,8 @@ def _transcribe(item, parents, edit_rate, indent=0): result.kind = otio.schema.TrackKind.Video elif media_kind in ("SoundMasterTrack", "Sound"): result.kind = otio.schema.TrackKind.Audio + elif media_kind == "Descriptive Metadata": + result.kind = otio.schema.TrackKind.Data else: # Timecode, Edgecode, others? result.kind = "" @@ -1444,6 +1446,28 @@ def _simplify(thing): return thing +def _update_kind_of_data_tracks(thing): + if isinstance(thing, otio.schema.Timeline): + for track in thing.tracks: + track = _update_kind_of_data_tracks(track) + elif isinstance(thing, otio.schema.Stack): + for child in thing: + if isinstance(child, otio.schema.Track): + metadata = child.metadata.get("AAF", {}) + media_kind = metadata.get("MediaKind", "") + if media_kind == "DataEssenceTrack": + child.kind = otio.schema.TrackKind.Data + elif isinstance(child, otio.schema.Stack): + child = _update_kind_of_data_tracks(child) + elif isinstance(thing, otio.schema.Track): + metadata = thing.metadata.get("AAF", {}) + media_kind = metadata.get("MediaKind", "") + if media_kind == "DataEssenceTrack": + thing.kind = otio.schema.TrackKind.Data + + return thing + + def _has_effects(thing): if isinstance(thing, otio.core.Item): if len(thing.effects) > 0: @@ -1595,6 +1619,9 @@ def read_from_file( if simplify: result = _simplify(result) + # Make sure that any AAF Data tracks are marked as such + result = _update_kind_of_data_tracks(result) + # OTIO represents transitions a bit different than AAF, so # we need to iterate over them and modify the items on either side. # Note that we do this *after* simplifying, since the structure diff --git a/contrib/opentimelineio_contrib/adapters/tests/sample_data/simple_data_track_marker_test.aaf b/contrib/opentimelineio_contrib/adapters/tests/sample_data/simple_data_track_marker_test.aaf new file mode 100755 index 0000000000000000000000000000000000000000..3dcb487c50708799b4ec7d958b4e26967e5c8e2c GIT binary patch literal 1216512 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 z00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_< z0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb z2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$## zAOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;| zfB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U< z00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa z0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV= z5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHaf zKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_ z009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz z00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_< z0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb z2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$## zAOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;| zfB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U< z00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa z0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV= z5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHaf zKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_ z009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz z00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_< z0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb z2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$## zAOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;| zfB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U< z00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa z0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV= z5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHaf zKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_ z009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz z00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_< z0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb z2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$## zAOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;| zfB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U< z00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa z0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV= z5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHaf zKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_ z009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz z00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_< z0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb z2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$## zAOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;| zfB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U< z00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa z0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV= z5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHaf zKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_ 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

h}k8Jgy)&Iw<|4%Lm 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 Al>h($ literal 0 HcmV?d00001 diff --git a/contrib/opentimelineio_contrib/adapters/tests/test_aaf_adapter.py b/contrib/opentimelineio_contrib/adapters/tests/test_aaf_adapter.py index a8c5d0db98..9719c069b9 100644 --- a/contrib/opentimelineio_contrib/adapters/tests/test_aaf_adapter.py +++ b/contrib/opentimelineio_contrib/adapters/tests/test_aaf_adapter.py @@ -204,6 +204,10 @@ "marker-over-audio.aaf" ) +DATA_TRACK_MARKERS_PATH = os.path.join( + SAMPLE_DATA_DIR, + "simple_data_track_marker_test.aaf" +) def safe_str(maybe_str): """To help with testing between python 2 and 3, this function attempts to @@ -1952,6 +1956,37 @@ def test_simplify_stack_track_clip(self): for i in simple_tl.tracks: self.assertNotEqual(type(i), otio.schema.Clip) + def test_aaf_data_track_markers(self): + expected_markers = [('Frame 1', 0.0, 1.0, 24.0, 'GREEN'), + ('Frame 23', 22.0, 1.0, 24.0, 'RED'), + ('Frame 56', 55.0, 1.0, 24.0, 'GREEN'), + ('Frame 100', 99.0, 1.0, 24.0, 'RED')] + aaf_path = DATA_TRACK_MARKERS_PATH + timeline = otio.adapters.read_from_file(aaf_path, simplify=True) + self.assertIsNotNone(timeline) + self.assertEqual(type(timeline), otio.schema.Timeline) + self.assertEqual(len(timeline.tracks), 2) + + data_track = timeline.tracks[1] + self.assertEqual(otio.schema.TrackKind.Data, data_track.kind) + self.assertEqual(1, len(data_track)) + + filler = data_track[0] + self.assertEqual(otio.schema.Gap, type(filler)) + markers = filler.markers + self.assertEqual(4, len(markers)) + + markers = [ + ( + m.name, + m.marked_range.start_time.value, + m.marked_range.duration.value, + m.marked_range.start_time.rate, + m.color + ) for m in filler.markers + ] + self.assertEqual(expected_markers, markers) + if __name__ == '__main__': unittest.main() diff --git a/src/opentimelineio/track.h b/src/opentimelineio/track.h index ec19cae3b2..88e581d86f 100644 --- a/src/opentimelineio/track.h +++ b/src/opentimelineio/track.h @@ -17,6 +17,7 @@ class Track : public Composition { static auto constexpr video = "Video"; static auto constexpr audio = "Audio"; + static auto constexpr data = "Data"; }; enum NeighborGapPolicy diff --git a/src/py-opentimelineio/opentimelineio-bindings/otio_serializableObjects.cpp b/src/py-opentimelineio/opentimelineio-bindings/otio_serializableObjects.cpp index ffa8616d5e..ba59d3cb19 100644 --- a/src/py-opentimelineio/opentimelineio-bindings/otio_serializableObjects.cpp +++ b/src/py-opentimelineio/opentimelineio-bindings/otio_serializableObjects.cpp @@ -581,7 +581,8 @@ Should be subclassed (for example by :class:`.Track` and :class:`.Stack`), not u py::class_(track_class, "Kind") .def_property_readonly_static("Audio", [](py::object /* self */) { return Track::Kind::audio; }) - .def_property_readonly_static("Video", [](py::object /* self */) { return Track::Kind::video; }); + .def_property_readonly_static("Video", [](py::object /* self */) { return Track::Kind::video; }) + .def_property_readonly_static("Data", [](py::object /* self */) { return Track::Kind::data; }); py::class_>(m, "Stack", py::dynamic_attr())