From 875953f97185b49e1b891ee763a95f3da5e3a08a Mon Sep 17 00:00:00 2001 From: sheenachhabra Date: Wed, 21 Aug 2024 03:32:03 -0700 Subject: [PATCH] Add Mp4Extractor test for interleaved editable video tracks file PiperOrigin-RevId: 665800463 --- .../mp4/Mp4ExtractorNonParameterizedTest.java | 18 ++++ .../mp4/Mp4ExtractorParameterizedTest.java | 6 ++ ...eaved_with_primary_video_tracks.mp4.0.dump | 48 +++++++++ ...eaved_with_primary_video_tracks.mp4.1.dump | 48 +++++++++ ...eaved_with_primary_video_tracks.mp4.2.dump | 48 +++++++++ ...eaved_with_primary_video_tracks.mp4.3.dump | 48 +++++++++ ...ding_within_gop_sample_dependencies.0.dump | 48 +++++++++ ...ding_within_gop_sample_dependencies.1.dump | 48 +++++++++ ...ding_within_gop_sample_dependencies.2.dump | 48 +++++++++ ...ding_within_gop_sample_dependencies.3.dump | 48 +++++++++ ...op_sample_dependencies.unknown_length.dump | 48 +++++++++ ...imary_video_tracks.mp4.unknown_length.dump | 48 +++++++++ ...s.mp4_with_flag_read_Editable_video_tracks | 91 ++++++++++++++++++ ..._interleaved_with_primary_video_tracks.mp4 | Bin 0 -> 402385 bytes 14 files changed, 595 insertions(+) create mode 100644 libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_fake_editable_video_tracks_interleaved_with_primary_video_tracks.mp4.0.dump create mode 100644 libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_fake_editable_video_tracks_interleaved_with_primary_video_tracks.mp4.1.dump create mode 100644 libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_fake_editable_video_tracks_interleaved_with_primary_video_tracks.mp4.2.dump create mode 100644 libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_fake_editable_video_tracks_interleaved_with_primary_video_tracks.mp4.3.dump create mode 100644 libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_fake_editable_video_tracks_interleaved_with_primary_video_tracks.mp4.reading_within_gop_sample_dependencies.0.dump create mode 100644 libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_fake_editable_video_tracks_interleaved_with_primary_video_tracks.mp4.reading_within_gop_sample_dependencies.1.dump create mode 100644 libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_fake_editable_video_tracks_interleaved_with_primary_video_tracks.mp4.reading_within_gop_sample_dependencies.2.dump create mode 100644 libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_fake_editable_video_tracks_interleaved_with_primary_video_tracks.mp4.reading_within_gop_sample_dependencies.3.dump create mode 100644 libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_fake_editable_video_tracks_interleaved_with_primary_video_tracks.mp4.reading_within_gop_sample_dependencies.unknown_length.dump create mode 100644 libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_fake_editable_video_tracks_interleaved_with_primary_video_tracks.mp4.unknown_length.dump create mode 100644 libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_fake_editable_video_tracks_interleaved_with_primary_video_tracks.mp4_with_flag_read_Editable_video_tracks create mode 100644 libraries/test_data/src/test/assets/media/mp4/sample_with_fake_editable_video_tracks_interleaved_with_primary_video_tracks.mp4 diff --git a/libraries/extractor/src/test/java/androidx/media3/extractor/mp4/Mp4ExtractorNonParameterizedTest.java b/libraries/extractor/src/test/java/androidx/media3/extractor/mp4/Mp4ExtractorNonParameterizedTest.java index 6592f025de..2e72c39705 100644 --- a/libraries/extractor/src/test/java/androidx/media3/extractor/mp4/Mp4ExtractorNonParameterizedTest.java +++ b/libraries/extractor/src/test/java/androidx/media3/extractor/mp4/Mp4ExtractorNonParameterizedTest.java @@ -139,6 +139,24 @@ public final class Mp4ExtractorNonParameterizedTest { DumpFileAsserts.assertOutput(context, editableTracksOutput, dumpFilePath); } + @Test + public void + extract_fileHavingEditableVideoTracksInterleavedWithPrimaryVideoTracksWithReadEditableVideoTracksFlag_extractsEditableVideoTracks() + throws Exception { + Context context = ApplicationProvider.getApplicationContext(); + String inputFilePath = + "media/mp4/sample_with_fake_editable_video_tracks_interleaved_with_primary_video_tracks.mp4"; + Mp4Extractor mp4Extractor = + new Mp4Extractor( + new DefaultSubtitleParserFactory(), Mp4Extractor.FLAG_READ_EDITABLE_VIDEO_TRACKS); + + FakeExtractorOutput editableTracksOutput = + TestUtil.extractAllSamplesFromFile(mp4Extractor, context, inputFilePath); + + String dumpFilePath = getDumpFilePath(inputFilePath, "_with_flag_read_Editable_video_tracks"); + DumpFileAsserts.assertOutput(context, editableTracksOutput, dumpFilePath); + } + private static String getDumpFilePath(String inputFilePath, String suffix) { return inputFilePath.replaceFirst("media", "extractordumps") + suffix; } diff --git a/libraries/extractor/src/test/java/androidx/media3/extractor/mp4/Mp4ExtractorParameterizedTest.java b/libraries/extractor/src/test/java/androidx/media3/extractor/mp4/Mp4ExtractorParameterizedTest.java index 68712acd70..528a62d337 100644 --- a/libraries/extractor/src/test/java/androidx/media3/extractor/mp4/Mp4ExtractorParameterizedTest.java +++ b/libraries/extractor/src/test/java/androidx/media3/extractor/mp4/Mp4ExtractorParameterizedTest.java @@ -223,6 +223,12 @@ public final class Mp4ExtractorParameterizedTest { assertExtractorBehavior("media/mp4/sample_with_fake_editable_video_tracks.mp4"); } + @Test + public void mp4WithEditableVideoTracksInterleavedWithPrimaryVideoTracks() throws Exception { + assertExtractorBehavior( + "media/mp4/sample_with_fake_editable_video_tracks_interleaved_with_primary_video_tracks.mp4"); + } + private void assertExtractorBehavior(String file) throws IOException { ExtractorAsserts.AssertionConfig.Builder assertionConfigBuilder = new ExtractorAsserts.AssertionConfig.Builder(); diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_fake_editable_video_tracks_interleaved_with_primary_video_tracks.mp4.0.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_fake_editable_video_tracks_interleaved_with_primary_video_tracks.mp4.0.dump new file mode 100644 index 0000000000..87f986254c --- /dev/null +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_fake_editable_video_tracks_interleaved_with_primary_video_tracks.mp4.0.dump @@ -0,0 +1,48 @@ +seekMap: + isSeekable = true + duration = 0 + getPosition(0) = [[timeUs=0, position=400052]] + getPosition(1) = [[timeUs=0, position=400276]] + getPosition(0) = [[timeUs=0, position=400052]] + getPosition(0) = [[timeUs=0, position=400052]] +numberOfTracks = 1 +track 0: + total output bytes = 280 + sample count = 5 + format 0: + id = 1 + sampleMimeType = video/avc + codecs = avc1.F4000A + maxInputSize = 86 + maxNumReorderSamples = 2 + width = 12 + height = 10 + colorInfo: + colorRange = 1 + lumaBitdepth = 8 + chromaBitdepth = 8 + metadata = entries=[mdta: key=editable.tracks.length, value=1493, mdta: key=editable.tracks.offset, value=400892, Mp4Timestamp: creation time=1000000, modification time=5000000, timescale=10000] + initializationData: + data = length 28, hash 410B510 + data = length 9, hash FBADD682 + sample 0: + time = 0 + flags = 1 + data = length 56, hash C4551A2E + sample 1: + time = 0 + flags = 1 + data = length 56, hash C4551A2E + sample 2: + time = 0 + flags = 1 + data = length 56, hash C4551A2E + sample 3: + time = 0 + flags = 1 + data = length 56, hash C4551A2E + sample 4: + time = 0 + flags = 536870913 + data = length 56, hash C4551A2E +tracksEnded = true diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_fake_editable_video_tracks_interleaved_with_primary_video_tracks.mp4.1.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_fake_editable_video_tracks_interleaved_with_primary_video_tracks.mp4.1.dump new file mode 100644 index 0000000000..87f986254c --- /dev/null +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_fake_editable_video_tracks_interleaved_with_primary_video_tracks.mp4.1.dump @@ -0,0 +1,48 @@ +seekMap: + isSeekable = true + duration = 0 + getPosition(0) = [[timeUs=0, position=400052]] + getPosition(1) = [[timeUs=0, position=400276]] + getPosition(0) = [[timeUs=0, position=400052]] + getPosition(0) = [[timeUs=0, position=400052]] +numberOfTracks = 1 +track 0: + total output bytes = 280 + sample count = 5 + format 0: + id = 1 + sampleMimeType = video/avc + codecs = avc1.F4000A + maxInputSize = 86 + maxNumReorderSamples = 2 + width = 12 + height = 10 + colorInfo: + colorRange = 1 + lumaBitdepth = 8 + chromaBitdepth = 8 + metadata = entries=[mdta: key=editable.tracks.length, value=1493, mdta: key=editable.tracks.offset, value=400892, Mp4Timestamp: creation time=1000000, modification time=5000000, timescale=10000] + initializationData: + data = length 28, hash 410B510 + data = length 9, hash FBADD682 + sample 0: + time = 0 + flags = 1 + data = length 56, hash C4551A2E + sample 1: + time = 0 + flags = 1 + data = length 56, hash C4551A2E + sample 2: + time = 0 + flags = 1 + data = length 56, hash C4551A2E + sample 3: + time = 0 + flags = 1 + data = length 56, hash C4551A2E + sample 4: + time = 0 + flags = 536870913 + data = length 56, hash C4551A2E +tracksEnded = true diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_fake_editable_video_tracks_interleaved_with_primary_video_tracks.mp4.2.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_fake_editable_video_tracks_interleaved_with_primary_video_tracks.mp4.2.dump new file mode 100644 index 0000000000..87f986254c --- /dev/null +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_fake_editable_video_tracks_interleaved_with_primary_video_tracks.mp4.2.dump @@ -0,0 +1,48 @@ +seekMap: + isSeekable = true + duration = 0 + getPosition(0) = [[timeUs=0, position=400052]] + getPosition(1) = [[timeUs=0, position=400276]] + getPosition(0) = [[timeUs=0, position=400052]] + getPosition(0) = [[timeUs=0, position=400052]] +numberOfTracks = 1 +track 0: + total output bytes = 280 + sample count = 5 + format 0: + id = 1 + sampleMimeType = video/avc + codecs = avc1.F4000A + maxInputSize = 86 + maxNumReorderSamples = 2 + width = 12 + height = 10 + colorInfo: + colorRange = 1 + lumaBitdepth = 8 + chromaBitdepth = 8 + metadata = entries=[mdta: key=editable.tracks.length, value=1493, mdta: key=editable.tracks.offset, value=400892, Mp4Timestamp: creation time=1000000, modification time=5000000, timescale=10000] + initializationData: + data = length 28, hash 410B510 + data = length 9, hash FBADD682 + sample 0: + time = 0 + flags = 1 + data = length 56, hash C4551A2E + sample 1: + time = 0 + flags = 1 + data = length 56, hash C4551A2E + sample 2: + time = 0 + flags = 1 + data = length 56, hash C4551A2E + sample 3: + time = 0 + flags = 1 + data = length 56, hash C4551A2E + sample 4: + time = 0 + flags = 536870913 + data = length 56, hash C4551A2E +tracksEnded = true diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_fake_editable_video_tracks_interleaved_with_primary_video_tracks.mp4.3.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_fake_editable_video_tracks_interleaved_with_primary_video_tracks.mp4.3.dump new file mode 100644 index 0000000000..87f986254c --- /dev/null +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_fake_editable_video_tracks_interleaved_with_primary_video_tracks.mp4.3.dump @@ -0,0 +1,48 @@ +seekMap: + isSeekable = true + duration = 0 + getPosition(0) = [[timeUs=0, position=400052]] + getPosition(1) = [[timeUs=0, position=400276]] + getPosition(0) = [[timeUs=0, position=400052]] + getPosition(0) = [[timeUs=0, position=400052]] +numberOfTracks = 1 +track 0: + total output bytes = 280 + sample count = 5 + format 0: + id = 1 + sampleMimeType = video/avc + codecs = avc1.F4000A + maxInputSize = 86 + maxNumReorderSamples = 2 + width = 12 + height = 10 + colorInfo: + colorRange = 1 + lumaBitdepth = 8 + chromaBitdepth = 8 + metadata = entries=[mdta: key=editable.tracks.length, value=1493, mdta: key=editable.tracks.offset, value=400892, Mp4Timestamp: creation time=1000000, modification time=5000000, timescale=10000] + initializationData: + data = length 28, hash 410B510 + data = length 9, hash FBADD682 + sample 0: + time = 0 + flags = 1 + data = length 56, hash C4551A2E + sample 1: + time = 0 + flags = 1 + data = length 56, hash C4551A2E + sample 2: + time = 0 + flags = 1 + data = length 56, hash C4551A2E + sample 3: + time = 0 + flags = 1 + data = length 56, hash C4551A2E + sample 4: + time = 0 + flags = 536870913 + data = length 56, hash C4551A2E +tracksEnded = true diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_fake_editable_video_tracks_interleaved_with_primary_video_tracks.mp4.reading_within_gop_sample_dependencies.0.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_fake_editable_video_tracks_interleaved_with_primary_video_tracks.mp4.reading_within_gop_sample_dependencies.0.dump new file mode 100644 index 0000000000..87f986254c --- /dev/null +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_fake_editable_video_tracks_interleaved_with_primary_video_tracks.mp4.reading_within_gop_sample_dependencies.0.dump @@ -0,0 +1,48 @@ +seekMap: + isSeekable = true + duration = 0 + getPosition(0) = [[timeUs=0, position=400052]] + getPosition(1) = [[timeUs=0, position=400276]] + getPosition(0) = [[timeUs=0, position=400052]] + getPosition(0) = [[timeUs=0, position=400052]] +numberOfTracks = 1 +track 0: + total output bytes = 280 + sample count = 5 + format 0: + id = 1 + sampleMimeType = video/avc + codecs = avc1.F4000A + maxInputSize = 86 + maxNumReorderSamples = 2 + width = 12 + height = 10 + colorInfo: + colorRange = 1 + lumaBitdepth = 8 + chromaBitdepth = 8 + metadata = entries=[mdta: key=editable.tracks.length, value=1493, mdta: key=editable.tracks.offset, value=400892, Mp4Timestamp: creation time=1000000, modification time=5000000, timescale=10000] + initializationData: + data = length 28, hash 410B510 + data = length 9, hash FBADD682 + sample 0: + time = 0 + flags = 1 + data = length 56, hash C4551A2E + sample 1: + time = 0 + flags = 1 + data = length 56, hash C4551A2E + sample 2: + time = 0 + flags = 1 + data = length 56, hash C4551A2E + sample 3: + time = 0 + flags = 1 + data = length 56, hash C4551A2E + sample 4: + time = 0 + flags = 536870913 + data = length 56, hash C4551A2E +tracksEnded = true diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_fake_editable_video_tracks_interleaved_with_primary_video_tracks.mp4.reading_within_gop_sample_dependencies.1.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_fake_editable_video_tracks_interleaved_with_primary_video_tracks.mp4.reading_within_gop_sample_dependencies.1.dump new file mode 100644 index 0000000000..87f986254c --- /dev/null +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_fake_editable_video_tracks_interleaved_with_primary_video_tracks.mp4.reading_within_gop_sample_dependencies.1.dump @@ -0,0 +1,48 @@ +seekMap: + isSeekable = true + duration = 0 + getPosition(0) = [[timeUs=0, position=400052]] + getPosition(1) = [[timeUs=0, position=400276]] + getPosition(0) = [[timeUs=0, position=400052]] + getPosition(0) = [[timeUs=0, position=400052]] +numberOfTracks = 1 +track 0: + total output bytes = 280 + sample count = 5 + format 0: + id = 1 + sampleMimeType = video/avc + codecs = avc1.F4000A + maxInputSize = 86 + maxNumReorderSamples = 2 + width = 12 + height = 10 + colorInfo: + colorRange = 1 + lumaBitdepth = 8 + chromaBitdepth = 8 + metadata = entries=[mdta: key=editable.tracks.length, value=1493, mdta: key=editable.tracks.offset, value=400892, Mp4Timestamp: creation time=1000000, modification time=5000000, timescale=10000] + initializationData: + data = length 28, hash 410B510 + data = length 9, hash FBADD682 + sample 0: + time = 0 + flags = 1 + data = length 56, hash C4551A2E + sample 1: + time = 0 + flags = 1 + data = length 56, hash C4551A2E + sample 2: + time = 0 + flags = 1 + data = length 56, hash C4551A2E + sample 3: + time = 0 + flags = 1 + data = length 56, hash C4551A2E + sample 4: + time = 0 + flags = 536870913 + data = length 56, hash C4551A2E +tracksEnded = true diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_fake_editable_video_tracks_interleaved_with_primary_video_tracks.mp4.reading_within_gop_sample_dependencies.2.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_fake_editable_video_tracks_interleaved_with_primary_video_tracks.mp4.reading_within_gop_sample_dependencies.2.dump new file mode 100644 index 0000000000..87f986254c --- /dev/null +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_fake_editable_video_tracks_interleaved_with_primary_video_tracks.mp4.reading_within_gop_sample_dependencies.2.dump @@ -0,0 +1,48 @@ +seekMap: + isSeekable = true + duration = 0 + getPosition(0) = [[timeUs=0, position=400052]] + getPosition(1) = [[timeUs=0, position=400276]] + getPosition(0) = [[timeUs=0, position=400052]] + getPosition(0) = [[timeUs=0, position=400052]] +numberOfTracks = 1 +track 0: + total output bytes = 280 + sample count = 5 + format 0: + id = 1 + sampleMimeType = video/avc + codecs = avc1.F4000A + maxInputSize = 86 + maxNumReorderSamples = 2 + width = 12 + height = 10 + colorInfo: + colorRange = 1 + lumaBitdepth = 8 + chromaBitdepth = 8 + metadata = entries=[mdta: key=editable.tracks.length, value=1493, mdta: key=editable.tracks.offset, value=400892, Mp4Timestamp: creation time=1000000, modification time=5000000, timescale=10000] + initializationData: + data = length 28, hash 410B510 + data = length 9, hash FBADD682 + sample 0: + time = 0 + flags = 1 + data = length 56, hash C4551A2E + sample 1: + time = 0 + flags = 1 + data = length 56, hash C4551A2E + sample 2: + time = 0 + flags = 1 + data = length 56, hash C4551A2E + sample 3: + time = 0 + flags = 1 + data = length 56, hash C4551A2E + sample 4: + time = 0 + flags = 536870913 + data = length 56, hash C4551A2E +tracksEnded = true diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_fake_editable_video_tracks_interleaved_with_primary_video_tracks.mp4.reading_within_gop_sample_dependencies.3.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_fake_editable_video_tracks_interleaved_with_primary_video_tracks.mp4.reading_within_gop_sample_dependencies.3.dump new file mode 100644 index 0000000000..87f986254c --- /dev/null +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_fake_editable_video_tracks_interleaved_with_primary_video_tracks.mp4.reading_within_gop_sample_dependencies.3.dump @@ -0,0 +1,48 @@ +seekMap: + isSeekable = true + duration = 0 + getPosition(0) = [[timeUs=0, position=400052]] + getPosition(1) = [[timeUs=0, position=400276]] + getPosition(0) = [[timeUs=0, position=400052]] + getPosition(0) = [[timeUs=0, position=400052]] +numberOfTracks = 1 +track 0: + total output bytes = 280 + sample count = 5 + format 0: + id = 1 + sampleMimeType = video/avc + codecs = avc1.F4000A + maxInputSize = 86 + maxNumReorderSamples = 2 + width = 12 + height = 10 + colorInfo: + colorRange = 1 + lumaBitdepth = 8 + chromaBitdepth = 8 + metadata = entries=[mdta: key=editable.tracks.length, value=1493, mdta: key=editable.tracks.offset, value=400892, Mp4Timestamp: creation time=1000000, modification time=5000000, timescale=10000] + initializationData: + data = length 28, hash 410B510 + data = length 9, hash FBADD682 + sample 0: + time = 0 + flags = 1 + data = length 56, hash C4551A2E + sample 1: + time = 0 + flags = 1 + data = length 56, hash C4551A2E + sample 2: + time = 0 + flags = 1 + data = length 56, hash C4551A2E + sample 3: + time = 0 + flags = 1 + data = length 56, hash C4551A2E + sample 4: + time = 0 + flags = 536870913 + data = length 56, hash C4551A2E +tracksEnded = true diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_fake_editable_video_tracks_interleaved_with_primary_video_tracks.mp4.reading_within_gop_sample_dependencies.unknown_length.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_fake_editable_video_tracks_interleaved_with_primary_video_tracks.mp4.reading_within_gop_sample_dependencies.unknown_length.dump new file mode 100644 index 0000000000..87f986254c --- /dev/null +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_fake_editable_video_tracks_interleaved_with_primary_video_tracks.mp4.reading_within_gop_sample_dependencies.unknown_length.dump @@ -0,0 +1,48 @@ +seekMap: + isSeekable = true + duration = 0 + getPosition(0) = [[timeUs=0, position=400052]] + getPosition(1) = [[timeUs=0, position=400276]] + getPosition(0) = [[timeUs=0, position=400052]] + getPosition(0) = [[timeUs=0, position=400052]] +numberOfTracks = 1 +track 0: + total output bytes = 280 + sample count = 5 + format 0: + id = 1 + sampleMimeType = video/avc + codecs = avc1.F4000A + maxInputSize = 86 + maxNumReorderSamples = 2 + width = 12 + height = 10 + colorInfo: + colorRange = 1 + lumaBitdepth = 8 + chromaBitdepth = 8 + metadata = entries=[mdta: key=editable.tracks.length, value=1493, mdta: key=editable.tracks.offset, value=400892, Mp4Timestamp: creation time=1000000, modification time=5000000, timescale=10000] + initializationData: + data = length 28, hash 410B510 + data = length 9, hash FBADD682 + sample 0: + time = 0 + flags = 1 + data = length 56, hash C4551A2E + sample 1: + time = 0 + flags = 1 + data = length 56, hash C4551A2E + sample 2: + time = 0 + flags = 1 + data = length 56, hash C4551A2E + sample 3: + time = 0 + flags = 1 + data = length 56, hash C4551A2E + sample 4: + time = 0 + flags = 536870913 + data = length 56, hash C4551A2E +tracksEnded = true diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_fake_editable_video_tracks_interleaved_with_primary_video_tracks.mp4.unknown_length.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_fake_editable_video_tracks_interleaved_with_primary_video_tracks.mp4.unknown_length.dump new file mode 100644 index 0000000000..87f986254c --- /dev/null +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_fake_editable_video_tracks_interleaved_with_primary_video_tracks.mp4.unknown_length.dump @@ -0,0 +1,48 @@ +seekMap: + isSeekable = true + duration = 0 + getPosition(0) = [[timeUs=0, position=400052]] + getPosition(1) = [[timeUs=0, position=400276]] + getPosition(0) = [[timeUs=0, position=400052]] + getPosition(0) = [[timeUs=0, position=400052]] +numberOfTracks = 1 +track 0: + total output bytes = 280 + sample count = 5 + format 0: + id = 1 + sampleMimeType = video/avc + codecs = avc1.F4000A + maxInputSize = 86 + maxNumReorderSamples = 2 + width = 12 + height = 10 + colorInfo: + colorRange = 1 + lumaBitdepth = 8 + chromaBitdepth = 8 + metadata = entries=[mdta: key=editable.tracks.length, value=1493, mdta: key=editable.tracks.offset, value=400892, Mp4Timestamp: creation time=1000000, modification time=5000000, timescale=10000] + initializationData: + data = length 28, hash 410B510 + data = length 9, hash FBADD682 + sample 0: + time = 0 + flags = 1 + data = length 56, hash C4551A2E + sample 1: + time = 0 + flags = 1 + data = length 56, hash C4551A2E + sample 2: + time = 0 + flags = 1 + data = length 56, hash C4551A2E + sample 3: + time = 0 + flags = 1 + data = length 56, hash C4551A2E + sample 4: + time = 0 + flags = 536870913 + data = length 56, hash C4551A2E +tracksEnded = true diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_fake_editable_video_tracks_interleaved_with_primary_video_tracks.mp4_with_flag_read_Editable_video_tracks b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_fake_editable_video_tracks_interleaved_with_primary_video_tracks.mp4_with_flag_read_Editable_video_tracks new file mode 100644 index 0000000000..396722fb5d --- /dev/null +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_fake_editable_video_tracks_interleaved_with_primary_video_tracks.mp4_with_flag_read_Editable_video_tracks @@ -0,0 +1,91 @@ +seekMap: + isSeekable = true + duration = 0 + getPosition(0) = [[timeUs=0, position=400332]] + getPosition(1) = [[timeUs=0, position=400556]] + getPosition(0) = [[timeUs=0, position=400332]] + getPosition(0) = [[timeUs=0, position=400332]] +numberOfTracks = 2 +track 0: + total output bytes = 280 + sample count = 5 + format 0: + id = 1 + sampleMimeType = video/avc + codecs = avc1.F4000A + maxInputSize = 86 + maxNumReorderSamples = 2 + width = 12 + height = 10 + colorInfo: + colorRange = 1 + lumaBitdepth = 8 + chromaBitdepth = 8 + roleFlags = [auxiliary] + auxiliaryTrackType = original + metadata = entries=[mdta: key=editable.tracks.map, value=track types = 0,1, mdta: key=editable.tracks.samples.location, value=1, Mp4Timestamp: creation time=1000000, modification time=5000000, timescale=10000] + initializationData: + data = length 28, hash 410B510 + data = length 9, hash FBADD682 + sample 0: + time = 0 + flags = 1 + data = length 56, hash C4551A2E + sample 1: + time = 0 + flags = 1 + data = length 56, hash C4551A2E + sample 2: + time = 0 + flags = 1 + data = length 56, hash C4551A2E + sample 3: + time = 0 + flags = 1 + data = length 56, hash C4551A2E + sample 4: + time = 0 + flags = 536870913 + data = length 56, hash C4551A2E +track 1: + total output bytes = 280 + sample count = 5 + format 0: + id = 2 + sampleMimeType = video/avc + codecs = avc1.F4000A + maxInputSize = 86 + maxNumReorderSamples = 2 + width = 12 + height = 10 + colorInfo: + colorRange = 1 + lumaBitdepth = 8 + chromaBitdepth = 8 + roleFlags = [auxiliary] + auxiliaryTrackType = depth-linear + metadata = entries=[mdta: key=editable.tracks.map, value=track types = 0,1, mdta: key=editable.tracks.samples.location, value=1, Mp4Timestamp: creation time=1000000, modification time=5000000, timescale=10000] + initializationData: + data = length 28, hash 410B510 + data = length 9, hash FBADD682 + sample 0: + time = 0 + flags = 1 + data = length 56, hash C4551A2E + sample 1: + time = 0 + flags = 1 + data = length 56, hash C4551A2E + sample 2: + time = 0 + flags = 1 + data = length 56, hash C4551A2E + sample 3: + time = 0 + flags = 1 + data = length 56, hash C4551A2E + sample 4: + time = 0 + flags = 536870913 + data = length 56, hash C4551A2E +tracksEnded = true diff --git a/libraries/test_data/src/test/assets/media/mp4/sample_with_fake_editable_video_tracks_interleaved_with_primary_video_tracks.mp4 b/libraries/test_data/src/test/assets/media/mp4/sample_with_fake_editable_video_tracks_interleaved_with_primary_video_tracks.mp4 new file mode 100644 index 0000000000000000000000000000000000000000..a22c19354b0252bb09f888ccbcd5efa52c02646a GIT binary patch literal 402385 zcmeIzKZqRH836FNI-d;UKne)5jxXU10t+M#+X&&tX0gB=kw_CTDGX+`GpAc_=XTi{ zFUXa_!Ni^2xN&btlPXP$bn2YejZ+z?b1A0_xqNSCH@Do$NgeWg?3?%J`{uow-@e;R zDeWG%kLQzSR;NoTYT_59AODQ(T_*=(6on%2vsGTM}`zBNh@?vGM>`C1;PLHFsp z>+#v3k8h4gn}dt}c!Kojx@wDPUpgwMi*-s}c5~}t*FHF|9yhC*eB&>2QdLgc;^DN~ zZx_Y*xY?gpCy&~rAB)Zo51Xou=)q*#qh7qCGWUd&W%SowiESA?hL-E%SjQPy}CU2r3~KtG-s^J z?M=Ytq^#C~+`bdz*+FqqPV@BO<9c#(7@h0OdbMUw>dTF?kL{L=D(B>qpK#~>#dNRl z58iIthtueP*|bf6Q2LzDi{&^DQdiEsRm|cfa_AASGblY{77t$z30bnEn=fB);#+kg1wz0;U-9~bB4 z?C)VvmCG`YM3n8XAM*R2nY_^P?X}vt^@45QcC_T78 zO6lcmF`v?)`*hv)_-xR}H^-yR!NvYoO#P{@+9KMQj>_p`ol=+G+;U= z^z>p*s>(@QJe*eh?V=bTH~V!lkI>C$g_@$CPpf8sIvW@5WOfpHZ%n35{>|Bq8gG`a z$4^jxmaYsgb#pJoAaD1RRqTEaM)IXMW6R^{zuO*nSkI?_V|6#?yo)7ovsuoKM>)0= z^-AsxzNyPeexSX&JokkR-upCXtjg_8yyc{<)`8r<6XV%IaZ*n6^x)%qa&j1*>&tqz zW=`tMjk1sJmWwLq_=zrO?&FWxvIiDBHaU7zqoO`R7+le>I zzu39vaxtTyKf4Z3^UwJ!vFg1+{3|&9_Q!wP2WS5guFZ>P-mTv6Fl^d(eQNT|_G*Kh z@$?^@ZPv}d9^>sH5%;Y3%=_ise1!6Ge=cgw i{m0XjbDv%EN}J`}c$8yKPgeM!JUzRAizolDr{`a_tYm2b literal 0 HcmV?d00001