From 9b71f2a3bae706f2bc27f1dada59f4a357df6202 Mon Sep 17 00:00:00 2001 From: dancho Date: Fri, 3 Jan 2025 05:18:16 -0800 Subject: [PATCH] Mp4Extractor: allow zero length NAL units Some videos include zero length NAL units in the length-delimited MP4 samples. Empty NAL units are not spec-compliant (see ISO/IEC 14496-15 section 4.3.3.3), but other players are able to play these videos (with warnings or errors). With this change, we check track.sampleTable.sizes[sampleIndex] before reading a byte from the NAL unit itself. PiperOrigin-RevId: 711720621 --- .../media3/extractor/mp4/Mp4Extractor.java | 38 +++-- .../mp4/Mp4ExtractorParameterizedTest.java | 5 + .../mp4/sample_with_invalid_nalu.mp4.0.dump | 150 ++++++++++++++++++ .../mp4/sample_with_invalid_nalu.mp4.1.dump | 150 ++++++++++++++++++ .../mp4/sample_with_invalid_nalu.mp4.2.dump | 150 ++++++++++++++++++ .../mp4/sample_with_invalid_nalu.mp4.3.dump | 150 ++++++++++++++++++ ...ding_within_gop_sample_dependencies.0.dump | 150 ++++++++++++++++++ ...ding_within_gop_sample_dependencies.1.dump | 150 ++++++++++++++++++ ...ding_within_gop_sample_dependencies.2.dump | 150 ++++++++++++++++++ ...ding_within_gop_sample_dependencies.3.dump | 150 ++++++++++++++++++ ...op_sample_dependencies.unknown_length.dump | 150 ++++++++++++++++++ ..._with_invalid_nalu.mp4.unknown_length.dump | 150 ++++++++++++++++++ .../media/mp4/sample_with_invalid_nalu.mp4 | Bin 0 -> 91142 bytes 13 files changed, 1529 insertions(+), 14 deletions(-) create mode 100644 libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_invalid_nalu.mp4.0.dump create mode 100644 libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_invalid_nalu.mp4.1.dump create mode 100644 libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_invalid_nalu.mp4.2.dump create mode 100644 libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_invalid_nalu.mp4.3.dump create mode 100644 libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_invalid_nalu.mp4.reading_within_gop_sample_dependencies.0.dump create mode 100644 libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_invalid_nalu.mp4.reading_within_gop_sample_dependencies.1.dump create mode 100644 libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_invalid_nalu.mp4.reading_within_gop_sample_dependencies.2.dump create mode 100644 libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_invalid_nalu.mp4.reading_within_gop_sample_dependencies.3.dump create mode 100644 libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_invalid_nalu.mp4.reading_within_gop_sample_dependencies.unknown_length.dump create mode 100644 libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_invalid_nalu.mp4.unknown_length.dump create mode 100644 libraries/test_data/src/test/assets/media/mp4/sample_with_invalid_nalu.mp4 diff --git a/libraries/extractor/src/main/java/androidx/media3/extractor/mp4/Mp4Extractor.java b/libraries/extractor/src/main/java/androidx/media3/extractor/mp4/Mp4Extractor.java index 2a221b78a3..b1ea9d81bf 100644 --- a/libraries/extractor/src/main/java/androidx/media3/extractor/mp4/Mp4Extractor.java +++ b/libraries/extractor/src/main/java/androidx/media3/extractor/mp4/Mp4Extractor.java @@ -894,38 +894,48 @@ public final class Mp4Extractor implements Extractor, SeekMap { nalPrefixData[0] = 0; nalPrefixData[1] = 0; nalPrefixData[2] = 0; - int nalUnitPrefixLength = track.track.nalUnitLengthFieldLength + 1; int nalUnitLengthFieldLengthDiff = 4 - track.track.nalUnitLengthFieldLength; // NAL units are length delimited, but the decoder requires start code delimited units. // Loop until we've written the sample to the track output, replacing length delimiters with // start codes as we encounter them. while (sampleBytesWritten < sampleSize) { if (sampleCurrentNalBytesRemaining == 0) { + int nalUnitPrefixLength = track.track.nalUnitLengthFieldLength; + boolean readNalType = false; + if (!isSampleDependedOn + && nalUnitPrefixLength + 1 + <= track.sampleTable.sizes[sampleIndex] - sampleBytesRead) { + // Parsing sample dependencies needs the first NAL unit byte. Read it in the same + // readFully call that reads the NAL length. This ensures sampleBytesRead, + // sampleBytesWritten and isSampleDependedOn remain in a consistent state if we have + // read failures. + nalUnitPrefixLength = track.track.nalUnitLengthFieldLength + 1; + readNalType = true; + } // Read the NAL length so that we know where we find the next one. - // In the same readFully call, read the first payload byte in order to determine - // sample dependencies. Do not attempt to peek the first payload byte because that might - // fail, and we should keep sampleBytesRead, sampleBytesWritten, isSampleDependedOn in - // a consistent state. input.readFully(nalPrefixData, nalUnitLengthFieldLengthDiff, nalUnitPrefixLength); sampleBytesRead += nalUnitPrefixLength; nalPrefix.setPosition(0); int nalLengthInt = nalPrefix.readInt(); - if (nalLengthInt < 1) { + if (nalLengthInt < 0) { throw ParserException.createForMalformedContainer( "Invalid NAL length", /* cause= */ null); } - sampleCurrentNalBytesRemaining = nalLengthInt - 1; + sampleCurrentNalBytesRemaining = nalLengthInt - (readNalType ? 1 : 0); // Write a start code for the current NAL unit. nalStartCode.setPosition(0); trackOutput.sampleData(nalStartCode, 4); - // Write the NAL unit type byte. - trackOutput.sampleData(nalPrefix, 1); - sampleBytesWritten += 5; + sampleBytesWritten += 4; sampleSize += nalUnitLengthFieldLengthDiff; - // If any NAL unit that's part of this sample can be depended on, treat the entire sample - // as depended on. - if (!isSampleDependedOn && NalUnitUtil.isH264NalUnitDependedOn(nalPrefixData[4])) { - isSampleDependedOn = true; + if (readNalType) { + // Write the NAL unit type byte. + trackOutput.sampleData(nalPrefix, 1); + sampleBytesWritten += 1; + // If any NAL unit that's part of this sample can be depended on, treat the entire + // sample as depended on. + if (NalUnitUtil.isH264NalUnitDependedOn(nalPrefixData[4])) { + isSampleDependedOn = true; + } } } else { // Write the payload of the NAL unit. 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 3a24611639..427be2b6b0 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 @@ -239,6 +239,11 @@ public final class Mp4ExtractorParameterizedTest { "media/mp4/sample_with_fake_auxiliary_tracks_interleaved_with_primary_video_tracks.mp4"); } + @Test + public void mp4SampleWithEmptyNalu() throws Exception { + assertExtractorBehavior("media/mp4/sample_with_invalid_nalu.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_invalid_nalu.mp4.0.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_invalid_nalu.mp4.0.dump new file mode 100644 index 0000000000..a73a901d33 --- /dev/null +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_invalid_nalu.mp4.0.dump @@ -0,0 +1,150 @@ +seekMap: + isSeekable = true + duration = 1001000 + getPosition(0) = [[timeUs=0, position=1266]] + getPosition(1) = [[timeUs=0, position=1266]] + getPosition(500500) = [[timeUs=0, position=1266]] + getPosition(1001000) = [[timeUs=0, position=1266]] +numberOfTracks = 1 +track 0: + total output bytes = 89876 + sample count = 30 + track duration = 1001000 + format 0: + id = 1 + containerMimeType = video/mp4 + sampleMimeType = video/avc + codecs = avc1.64001F + maxInputSize = 36722 + maxNumReorderSamples = 2 + width = 1080 + height = 720 + frameRate = 29.97 + colorInfo: + lumaBitdepth = 8 + chromaBitdepth = 8 + metadata = entries=[TSSE: description=null: values=[Lavf60.16.100], Mp4Timestamp: creation time=0, modification time=0, timescale=1000] + initializationData: + data = length 29, hash 4746B5D9 + data = length 10, hash 7A0D0F2B + sample 0: + time = 0 + flags = 1 + data = length 36692, hash D216076E + sample 1: + time = 66733 + flags = 0 + data = length 5312, hash D45D3CA0 + sample 2: + time = 33366 + flags = 0 + data = length 599, hash 1BE7812D + sample 3: + time = 200200 + flags = 0 + data = length 7735, hash 4490F110 + sample 4: + time = 133466 + flags = 0 + data = length 987, hash 560B5036 + sample 5: + time = 100100 + flags = 0 + data = length 673, hash ED7CD8C7 + sample 6: + time = 166833 + flags = 0 + data = length 523, hash 3020DF50 + sample 7: + time = 333666 + flags = 0 + data = length 6061, hash 736C72B2 + sample 8: + time = 266933 + flags = 0 + data = length 992, hash FE132F23 + sample 9: + time = 233566 + flags = 0 + data = length 623, hash 5B2C1816 + sample 10: + time = 300300 + flags = 0 + data = length 421, hash 742E69C1 + sample 11: + time = 433766 + flags = 0 + data = length 4899, hash F72F86A1 + sample 12: + time = 400400 + flags = 0 + data = length 568, hash 519A8E50 + sample 13: + time = 367033 + flags = 0 + data = length 620, hash 3990AA39 + sample 14: + time = 567233 + flags = 0 + data = length 5450, hash F06EC4AA + sample 15: + time = 500500 + flags = 0 + data = length 1051, hash 92DFA63A + sample 16: + time = 467133 + flags = 0 + data = length 874, hash 69587FB4 + sample 17: + time = 533866 + flags = 0 + data = length 781, hash 36BE495B + sample 18: + time = 700700 + flags = 0 + data = length 4725, hash AC0C8CD3 + sample 19: + time = 633966 + flags = 0 + data = length 1022, hash 5D8BFF34 + sample 20: + time = 600600 + flags = 0 + data = length 790, hash 99413A99 + sample 21: + time = 667333 + flags = 0 + data = length 610, hash 5E129290 + sample 22: + time = 834166 + flags = 0 + data = length 2751, hash 769974CB + sample 23: + time = 767433 + flags = 0 + data = length 745, hash B78A477A + sample 24: + time = 734066 + flags = 0 + data = length 621, hash CF741E7A + sample 25: + time = 800800 + flags = 0 + data = length 505, hash 1DB4894E + sample 26: + time = 967633 + flags = 0 + data = length 1268, hash C15348DC + sample 27: + time = 900900 + flags = 0 + data = length 880, hash C2DE85D0 + sample 28: + time = 867533 + flags = 0 + data = length 530, hash C9641EB0 + sample 29: + time = 934266 + flags = 536870912 + data = length 568, hash 4FE5C8EA +tracksEnded = true diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_invalid_nalu.mp4.1.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_invalid_nalu.mp4.1.dump new file mode 100644 index 0000000000..a73a901d33 --- /dev/null +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_invalid_nalu.mp4.1.dump @@ -0,0 +1,150 @@ +seekMap: + isSeekable = true + duration = 1001000 + getPosition(0) = [[timeUs=0, position=1266]] + getPosition(1) = [[timeUs=0, position=1266]] + getPosition(500500) = [[timeUs=0, position=1266]] + getPosition(1001000) = [[timeUs=0, position=1266]] +numberOfTracks = 1 +track 0: + total output bytes = 89876 + sample count = 30 + track duration = 1001000 + format 0: + id = 1 + containerMimeType = video/mp4 + sampleMimeType = video/avc + codecs = avc1.64001F + maxInputSize = 36722 + maxNumReorderSamples = 2 + width = 1080 + height = 720 + frameRate = 29.97 + colorInfo: + lumaBitdepth = 8 + chromaBitdepth = 8 + metadata = entries=[TSSE: description=null: values=[Lavf60.16.100], Mp4Timestamp: creation time=0, modification time=0, timescale=1000] + initializationData: + data = length 29, hash 4746B5D9 + data = length 10, hash 7A0D0F2B + sample 0: + time = 0 + flags = 1 + data = length 36692, hash D216076E + sample 1: + time = 66733 + flags = 0 + data = length 5312, hash D45D3CA0 + sample 2: + time = 33366 + flags = 0 + data = length 599, hash 1BE7812D + sample 3: + time = 200200 + flags = 0 + data = length 7735, hash 4490F110 + sample 4: + time = 133466 + flags = 0 + data = length 987, hash 560B5036 + sample 5: + time = 100100 + flags = 0 + data = length 673, hash ED7CD8C7 + sample 6: + time = 166833 + flags = 0 + data = length 523, hash 3020DF50 + sample 7: + time = 333666 + flags = 0 + data = length 6061, hash 736C72B2 + sample 8: + time = 266933 + flags = 0 + data = length 992, hash FE132F23 + sample 9: + time = 233566 + flags = 0 + data = length 623, hash 5B2C1816 + sample 10: + time = 300300 + flags = 0 + data = length 421, hash 742E69C1 + sample 11: + time = 433766 + flags = 0 + data = length 4899, hash F72F86A1 + sample 12: + time = 400400 + flags = 0 + data = length 568, hash 519A8E50 + sample 13: + time = 367033 + flags = 0 + data = length 620, hash 3990AA39 + sample 14: + time = 567233 + flags = 0 + data = length 5450, hash F06EC4AA + sample 15: + time = 500500 + flags = 0 + data = length 1051, hash 92DFA63A + sample 16: + time = 467133 + flags = 0 + data = length 874, hash 69587FB4 + sample 17: + time = 533866 + flags = 0 + data = length 781, hash 36BE495B + sample 18: + time = 700700 + flags = 0 + data = length 4725, hash AC0C8CD3 + sample 19: + time = 633966 + flags = 0 + data = length 1022, hash 5D8BFF34 + sample 20: + time = 600600 + flags = 0 + data = length 790, hash 99413A99 + sample 21: + time = 667333 + flags = 0 + data = length 610, hash 5E129290 + sample 22: + time = 834166 + flags = 0 + data = length 2751, hash 769974CB + sample 23: + time = 767433 + flags = 0 + data = length 745, hash B78A477A + sample 24: + time = 734066 + flags = 0 + data = length 621, hash CF741E7A + sample 25: + time = 800800 + flags = 0 + data = length 505, hash 1DB4894E + sample 26: + time = 967633 + flags = 0 + data = length 1268, hash C15348DC + sample 27: + time = 900900 + flags = 0 + data = length 880, hash C2DE85D0 + sample 28: + time = 867533 + flags = 0 + data = length 530, hash C9641EB0 + sample 29: + time = 934266 + flags = 536870912 + data = length 568, hash 4FE5C8EA +tracksEnded = true diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_invalid_nalu.mp4.2.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_invalid_nalu.mp4.2.dump new file mode 100644 index 0000000000..a73a901d33 --- /dev/null +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_invalid_nalu.mp4.2.dump @@ -0,0 +1,150 @@ +seekMap: + isSeekable = true + duration = 1001000 + getPosition(0) = [[timeUs=0, position=1266]] + getPosition(1) = [[timeUs=0, position=1266]] + getPosition(500500) = [[timeUs=0, position=1266]] + getPosition(1001000) = [[timeUs=0, position=1266]] +numberOfTracks = 1 +track 0: + total output bytes = 89876 + sample count = 30 + track duration = 1001000 + format 0: + id = 1 + containerMimeType = video/mp4 + sampleMimeType = video/avc + codecs = avc1.64001F + maxInputSize = 36722 + maxNumReorderSamples = 2 + width = 1080 + height = 720 + frameRate = 29.97 + colorInfo: + lumaBitdepth = 8 + chromaBitdepth = 8 + metadata = entries=[TSSE: description=null: values=[Lavf60.16.100], Mp4Timestamp: creation time=0, modification time=0, timescale=1000] + initializationData: + data = length 29, hash 4746B5D9 + data = length 10, hash 7A0D0F2B + sample 0: + time = 0 + flags = 1 + data = length 36692, hash D216076E + sample 1: + time = 66733 + flags = 0 + data = length 5312, hash D45D3CA0 + sample 2: + time = 33366 + flags = 0 + data = length 599, hash 1BE7812D + sample 3: + time = 200200 + flags = 0 + data = length 7735, hash 4490F110 + sample 4: + time = 133466 + flags = 0 + data = length 987, hash 560B5036 + sample 5: + time = 100100 + flags = 0 + data = length 673, hash ED7CD8C7 + sample 6: + time = 166833 + flags = 0 + data = length 523, hash 3020DF50 + sample 7: + time = 333666 + flags = 0 + data = length 6061, hash 736C72B2 + sample 8: + time = 266933 + flags = 0 + data = length 992, hash FE132F23 + sample 9: + time = 233566 + flags = 0 + data = length 623, hash 5B2C1816 + sample 10: + time = 300300 + flags = 0 + data = length 421, hash 742E69C1 + sample 11: + time = 433766 + flags = 0 + data = length 4899, hash F72F86A1 + sample 12: + time = 400400 + flags = 0 + data = length 568, hash 519A8E50 + sample 13: + time = 367033 + flags = 0 + data = length 620, hash 3990AA39 + sample 14: + time = 567233 + flags = 0 + data = length 5450, hash F06EC4AA + sample 15: + time = 500500 + flags = 0 + data = length 1051, hash 92DFA63A + sample 16: + time = 467133 + flags = 0 + data = length 874, hash 69587FB4 + sample 17: + time = 533866 + flags = 0 + data = length 781, hash 36BE495B + sample 18: + time = 700700 + flags = 0 + data = length 4725, hash AC0C8CD3 + sample 19: + time = 633966 + flags = 0 + data = length 1022, hash 5D8BFF34 + sample 20: + time = 600600 + flags = 0 + data = length 790, hash 99413A99 + sample 21: + time = 667333 + flags = 0 + data = length 610, hash 5E129290 + sample 22: + time = 834166 + flags = 0 + data = length 2751, hash 769974CB + sample 23: + time = 767433 + flags = 0 + data = length 745, hash B78A477A + sample 24: + time = 734066 + flags = 0 + data = length 621, hash CF741E7A + sample 25: + time = 800800 + flags = 0 + data = length 505, hash 1DB4894E + sample 26: + time = 967633 + flags = 0 + data = length 1268, hash C15348DC + sample 27: + time = 900900 + flags = 0 + data = length 880, hash C2DE85D0 + sample 28: + time = 867533 + flags = 0 + data = length 530, hash C9641EB0 + sample 29: + time = 934266 + flags = 536870912 + data = length 568, hash 4FE5C8EA +tracksEnded = true diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_invalid_nalu.mp4.3.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_invalid_nalu.mp4.3.dump new file mode 100644 index 0000000000..a73a901d33 --- /dev/null +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_invalid_nalu.mp4.3.dump @@ -0,0 +1,150 @@ +seekMap: + isSeekable = true + duration = 1001000 + getPosition(0) = [[timeUs=0, position=1266]] + getPosition(1) = [[timeUs=0, position=1266]] + getPosition(500500) = [[timeUs=0, position=1266]] + getPosition(1001000) = [[timeUs=0, position=1266]] +numberOfTracks = 1 +track 0: + total output bytes = 89876 + sample count = 30 + track duration = 1001000 + format 0: + id = 1 + containerMimeType = video/mp4 + sampleMimeType = video/avc + codecs = avc1.64001F + maxInputSize = 36722 + maxNumReorderSamples = 2 + width = 1080 + height = 720 + frameRate = 29.97 + colorInfo: + lumaBitdepth = 8 + chromaBitdepth = 8 + metadata = entries=[TSSE: description=null: values=[Lavf60.16.100], Mp4Timestamp: creation time=0, modification time=0, timescale=1000] + initializationData: + data = length 29, hash 4746B5D9 + data = length 10, hash 7A0D0F2B + sample 0: + time = 0 + flags = 1 + data = length 36692, hash D216076E + sample 1: + time = 66733 + flags = 0 + data = length 5312, hash D45D3CA0 + sample 2: + time = 33366 + flags = 0 + data = length 599, hash 1BE7812D + sample 3: + time = 200200 + flags = 0 + data = length 7735, hash 4490F110 + sample 4: + time = 133466 + flags = 0 + data = length 987, hash 560B5036 + sample 5: + time = 100100 + flags = 0 + data = length 673, hash ED7CD8C7 + sample 6: + time = 166833 + flags = 0 + data = length 523, hash 3020DF50 + sample 7: + time = 333666 + flags = 0 + data = length 6061, hash 736C72B2 + sample 8: + time = 266933 + flags = 0 + data = length 992, hash FE132F23 + sample 9: + time = 233566 + flags = 0 + data = length 623, hash 5B2C1816 + sample 10: + time = 300300 + flags = 0 + data = length 421, hash 742E69C1 + sample 11: + time = 433766 + flags = 0 + data = length 4899, hash F72F86A1 + sample 12: + time = 400400 + flags = 0 + data = length 568, hash 519A8E50 + sample 13: + time = 367033 + flags = 0 + data = length 620, hash 3990AA39 + sample 14: + time = 567233 + flags = 0 + data = length 5450, hash F06EC4AA + sample 15: + time = 500500 + flags = 0 + data = length 1051, hash 92DFA63A + sample 16: + time = 467133 + flags = 0 + data = length 874, hash 69587FB4 + sample 17: + time = 533866 + flags = 0 + data = length 781, hash 36BE495B + sample 18: + time = 700700 + flags = 0 + data = length 4725, hash AC0C8CD3 + sample 19: + time = 633966 + flags = 0 + data = length 1022, hash 5D8BFF34 + sample 20: + time = 600600 + flags = 0 + data = length 790, hash 99413A99 + sample 21: + time = 667333 + flags = 0 + data = length 610, hash 5E129290 + sample 22: + time = 834166 + flags = 0 + data = length 2751, hash 769974CB + sample 23: + time = 767433 + flags = 0 + data = length 745, hash B78A477A + sample 24: + time = 734066 + flags = 0 + data = length 621, hash CF741E7A + sample 25: + time = 800800 + flags = 0 + data = length 505, hash 1DB4894E + sample 26: + time = 967633 + flags = 0 + data = length 1268, hash C15348DC + sample 27: + time = 900900 + flags = 0 + data = length 880, hash C2DE85D0 + sample 28: + time = 867533 + flags = 0 + data = length 530, hash C9641EB0 + sample 29: + time = 934266 + flags = 536870912 + data = length 568, hash 4FE5C8EA +tracksEnded = true diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_invalid_nalu.mp4.reading_within_gop_sample_dependencies.0.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_invalid_nalu.mp4.reading_within_gop_sample_dependencies.0.dump new file mode 100644 index 0000000000..994a533ace --- /dev/null +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_invalid_nalu.mp4.reading_within_gop_sample_dependencies.0.dump @@ -0,0 +1,150 @@ +seekMap: + isSeekable = true + duration = 1001000 + getPosition(0) = [[timeUs=0, position=1266]] + getPosition(1) = [[timeUs=0, position=1266]] + getPosition(500500) = [[timeUs=0, position=1266]] + getPosition(1001000) = [[timeUs=0, position=1266]] +numberOfTracks = 1 +track 0: + total output bytes = 89876 + sample count = 30 + track duration = 1001000 + format 0: + id = 1 + containerMimeType = video/mp4 + sampleMimeType = video/avc + codecs = avc1.64001F + maxInputSize = 36722 + maxNumReorderSamples = 2 + width = 1080 + height = 720 + frameRate = 29.97 + colorInfo: + lumaBitdepth = 8 + chromaBitdepth = 8 + metadata = entries=[TSSE: description=null: values=[Lavf60.16.100], Mp4Timestamp: creation time=0, modification time=0, timescale=1000] + initializationData: + data = length 29, hash 4746B5D9 + data = length 10, hash 7A0D0F2B + sample 0: + time = 0 + flags = 1 + data = length 36692, hash D216076E + sample 1: + time = 66733 + flags = 0 + data = length 5312, hash D45D3CA0 + sample 2: + time = 33366 + flags = 67108864 + data = length 599, hash 1BE7812D + sample 3: + time = 200200 + flags = 0 + data = length 7735, hash 4490F110 + sample 4: + time = 133466 + flags = 0 + data = length 987, hash 560B5036 + sample 5: + time = 100100 + flags = 67108864 + data = length 673, hash ED7CD8C7 + sample 6: + time = 166833 + flags = 67108864 + data = length 523, hash 3020DF50 + sample 7: + time = 333666 + flags = 0 + data = length 6061, hash 736C72B2 + sample 8: + time = 266933 + flags = 0 + data = length 992, hash FE132F23 + sample 9: + time = 233566 + flags = 67108864 + data = length 623, hash 5B2C1816 + sample 10: + time = 300300 + flags = 67108864 + data = length 421, hash 742E69C1 + sample 11: + time = 433766 + flags = 0 + data = length 4899, hash F72F86A1 + sample 12: + time = 400400 + flags = 0 + data = length 568, hash 519A8E50 + sample 13: + time = 367033 + flags = 67108864 + data = length 620, hash 3990AA39 + sample 14: + time = 567233 + flags = 0 + data = length 5450, hash F06EC4AA + sample 15: + time = 500500 + flags = 0 + data = length 1051, hash 92DFA63A + sample 16: + time = 467133 + flags = 67108864 + data = length 874, hash 69587FB4 + sample 17: + time = 533866 + flags = 67108864 + data = length 781, hash 36BE495B + sample 18: + time = 700700 + flags = 0 + data = length 4725, hash AC0C8CD3 + sample 19: + time = 633966 + flags = 0 + data = length 1022, hash 5D8BFF34 + sample 20: + time = 600600 + flags = 67108864 + data = length 790, hash 99413A99 + sample 21: + time = 667333 + flags = 67108864 + data = length 610, hash 5E129290 + sample 22: + time = 834166 + flags = 0 + data = length 2751, hash 769974CB + sample 23: + time = 767433 + flags = 0 + data = length 745, hash B78A477A + sample 24: + time = 734066 + flags = 67108864 + data = length 621, hash CF741E7A + sample 25: + time = 800800 + flags = 67108864 + data = length 505, hash 1DB4894E + sample 26: + time = 967633 + flags = 0 + data = length 1268, hash C15348DC + sample 27: + time = 900900 + flags = 0 + data = length 880, hash C2DE85D0 + sample 28: + time = 867533 + flags = 67108864 + data = length 530, hash C9641EB0 + sample 29: + time = 934266 + flags = 603979776 + data = length 568, hash 4FE5C8EA +tracksEnded = true diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_invalid_nalu.mp4.reading_within_gop_sample_dependencies.1.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_invalid_nalu.mp4.reading_within_gop_sample_dependencies.1.dump new file mode 100644 index 0000000000..994a533ace --- /dev/null +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_invalid_nalu.mp4.reading_within_gop_sample_dependencies.1.dump @@ -0,0 +1,150 @@ +seekMap: + isSeekable = true + duration = 1001000 + getPosition(0) = [[timeUs=0, position=1266]] + getPosition(1) = [[timeUs=0, position=1266]] + getPosition(500500) = [[timeUs=0, position=1266]] + getPosition(1001000) = [[timeUs=0, position=1266]] +numberOfTracks = 1 +track 0: + total output bytes = 89876 + sample count = 30 + track duration = 1001000 + format 0: + id = 1 + containerMimeType = video/mp4 + sampleMimeType = video/avc + codecs = avc1.64001F + maxInputSize = 36722 + maxNumReorderSamples = 2 + width = 1080 + height = 720 + frameRate = 29.97 + colorInfo: + lumaBitdepth = 8 + chromaBitdepth = 8 + metadata = entries=[TSSE: description=null: values=[Lavf60.16.100], Mp4Timestamp: creation time=0, modification time=0, timescale=1000] + initializationData: + data = length 29, hash 4746B5D9 + data = length 10, hash 7A0D0F2B + sample 0: + time = 0 + flags = 1 + data = length 36692, hash D216076E + sample 1: + time = 66733 + flags = 0 + data = length 5312, hash D45D3CA0 + sample 2: + time = 33366 + flags = 67108864 + data = length 599, hash 1BE7812D + sample 3: + time = 200200 + flags = 0 + data = length 7735, hash 4490F110 + sample 4: + time = 133466 + flags = 0 + data = length 987, hash 560B5036 + sample 5: + time = 100100 + flags = 67108864 + data = length 673, hash ED7CD8C7 + sample 6: + time = 166833 + flags = 67108864 + data = length 523, hash 3020DF50 + sample 7: + time = 333666 + flags = 0 + data = length 6061, hash 736C72B2 + sample 8: + time = 266933 + flags = 0 + data = length 992, hash FE132F23 + sample 9: + time = 233566 + flags = 67108864 + data = length 623, hash 5B2C1816 + sample 10: + time = 300300 + flags = 67108864 + data = length 421, hash 742E69C1 + sample 11: + time = 433766 + flags = 0 + data = length 4899, hash F72F86A1 + sample 12: + time = 400400 + flags = 0 + data = length 568, hash 519A8E50 + sample 13: + time = 367033 + flags = 67108864 + data = length 620, hash 3990AA39 + sample 14: + time = 567233 + flags = 0 + data = length 5450, hash F06EC4AA + sample 15: + time = 500500 + flags = 0 + data = length 1051, hash 92DFA63A + sample 16: + time = 467133 + flags = 67108864 + data = length 874, hash 69587FB4 + sample 17: + time = 533866 + flags = 67108864 + data = length 781, hash 36BE495B + sample 18: + time = 700700 + flags = 0 + data = length 4725, hash AC0C8CD3 + sample 19: + time = 633966 + flags = 0 + data = length 1022, hash 5D8BFF34 + sample 20: + time = 600600 + flags = 67108864 + data = length 790, hash 99413A99 + sample 21: + time = 667333 + flags = 67108864 + data = length 610, hash 5E129290 + sample 22: + time = 834166 + flags = 0 + data = length 2751, hash 769974CB + sample 23: + time = 767433 + flags = 0 + data = length 745, hash B78A477A + sample 24: + time = 734066 + flags = 67108864 + data = length 621, hash CF741E7A + sample 25: + time = 800800 + flags = 67108864 + data = length 505, hash 1DB4894E + sample 26: + time = 967633 + flags = 0 + data = length 1268, hash C15348DC + sample 27: + time = 900900 + flags = 0 + data = length 880, hash C2DE85D0 + sample 28: + time = 867533 + flags = 67108864 + data = length 530, hash C9641EB0 + sample 29: + time = 934266 + flags = 603979776 + data = length 568, hash 4FE5C8EA +tracksEnded = true diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_invalid_nalu.mp4.reading_within_gop_sample_dependencies.2.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_invalid_nalu.mp4.reading_within_gop_sample_dependencies.2.dump new file mode 100644 index 0000000000..994a533ace --- /dev/null +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_invalid_nalu.mp4.reading_within_gop_sample_dependencies.2.dump @@ -0,0 +1,150 @@ +seekMap: + isSeekable = true + duration = 1001000 + getPosition(0) = [[timeUs=0, position=1266]] + getPosition(1) = [[timeUs=0, position=1266]] + getPosition(500500) = [[timeUs=0, position=1266]] + getPosition(1001000) = [[timeUs=0, position=1266]] +numberOfTracks = 1 +track 0: + total output bytes = 89876 + sample count = 30 + track duration = 1001000 + format 0: + id = 1 + containerMimeType = video/mp4 + sampleMimeType = video/avc + codecs = avc1.64001F + maxInputSize = 36722 + maxNumReorderSamples = 2 + width = 1080 + height = 720 + frameRate = 29.97 + colorInfo: + lumaBitdepth = 8 + chromaBitdepth = 8 + metadata = entries=[TSSE: description=null: values=[Lavf60.16.100], Mp4Timestamp: creation time=0, modification time=0, timescale=1000] + initializationData: + data = length 29, hash 4746B5D9 + data = length 10, hash 7A0D0F2B + sample 0: + time = 0 + flags = 1 + data = length 36692, hash D216076E + sample 1: + time = 66733 + flags = 0 + data = length 5312, hash D45D3CA0 + sample 2: + time = 33366 + flags = 67108864 + data = length 599, hash 1BE7812D + sample 3: + time = 200200 + flags = 0 + data = length 7735, hash 4490F110 + sample 4: + time = 133466 + flags = 0 + data = length 987, hash 560B5036 + sample 5: + time = 100100 + flags = 67108864 + data = length 673, hash ED7CD8C7 + sample 6: + time = 166833 + flags = 67108864 + data = length 523, hash 3020DF50 + sample 7: + time = 333666 + flags = 0 + data = length 6061, hash 736C72B2 + sample 8: + time = 266933 + flags = 0 + data = length 992, hash FE132F23 + sample 9: + time = 233566 + flags = 67108864 + data = length 623, hash 5B2C1816 + sample 10: + time = 300300 + flags = 67108864 + data = length 421, hash 742E69C1 + sample 11: + time = 433766 + flags = 0 + data = length 4899, hash F72F86A1 + sample 12: + time = 400400 + flags = 0 + data = length 568, hash 519A8E50 + sample 13: + time = 367033 + flags = 67108864 + data = length 620, hash 3990AA39 + sample 14: + time = 567233 + flags = 0 + data = length 5450, hash F06EC4AA + sample 15: + time = 500500 + flags = 0 + data = length 1051, hash 92DFA63A + sample 16: + time = 467133 + flags = 67108864 + data = length 874, hash 69587FB4 + sample 17: + time = 533866 + flags = 67108864 + data = length 781, hash 36BE495B + sample 18: + time = 700700 + flags = 0 + data = length 4725, hash AC0C8CD3 + sample 19: + time = 633966 + flags = 0 + data = length 1022, hash 5D8BFF34 + sample 20: + time = 600600 + flags = 67108864 + data = length 790, hash 99413A99 + sample 21: + time = 667333 + flags = 67108864 + data = length 610, hash 5E129290 + sample 22: + time = 834166 + flags = 0 + data = length 2751, hash 769974CB + sample 23: + time = 767433 + flags = 0 + data = length 745, hash B78A477A + sample 24: + time = 734066 + flags = 67108864 + data = length 621, hash CF741E7A + sample 25: + time = 800800 + flags = 67108864 + data = length 505, hash 1DB4894E + sample 26: + time = 967633 + flags = 0 + data = length 1268, hash C15348DC + sample 27: + time = 900900 + flags = 0 + data = length 880, hash C2DE85D0 + sample 28: + time = 867533 + flags = 67108864 + data = length 530, hash C9641EB0 + sample 29: + time = 934266 + flags = 603979776 + data = length 568, hash 4FE5C8EA +tracksEnded = true diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_invalid_nalu.mp4.reading_within_gop_sample_dependencies.3.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_invalid_nalu.mp4.reading_within_gop_sample_dependencies.3.dump new file mode 100644 index 0000000000..994a533ace --- /dev/null +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_invalid_nalu.mp4.reading_within_gop_sample_dependencies.3.dump @@ -0,0 +1,150 @@ +seekMap: + isSeekable = true + duration = 1001000 + getPosition(0) = [[timeUs=0, position=1266]] + getPosition(1) = [[timeUs=0, position=1266]] + getPosition(500500) = [[timeUs=0, position=1266]] + getPosition(1001000) = [[timeUs=0, position=1266]] +numberOfTracks = 1 +track 0: + total output bytes = 89876 + sample count = 30 + track duration = 1001000 + format 0: + id = 1 + containerMimeType = video/mp4 + sampleMimeType = video/avc + codecs = avc1.64001F + maxInputSize = 36722 + maxNumReorderSamples = 2 + width = 1080 + height = 720 + frameRate = 29.97 + colorInfo: + lumaBitdepth = 8 + chromaBitdepth = 8 + metadata = entries=[TSSE: description=null: values=[Lavf60.16.100], Mp4Timestamp: creation time=0, modification time=0, timescale=1000] + initializationData: + data = length 29, hash 4746B5D9 + data = length 10, hash 7A0D0F2B + sample 0: + time = 0 + flags = 1 + data = length 36692, hash D216076E + sample 1: + time = 66733 + flags = 0 + data = length 5312, hash D45D3CA0 + sample 2: + time = 33366 + flags = 67108864 + data = length 599, hash 1BE7812D + sample 3: + time = 200200 + flags = 0 + data = length 7735, hash 4490F110 + sample 4: + time = 133466 + flags = 0 + data = length 987, hash 560B5036 + sample 5: + time = 100100 + flags = 67108864 + data = length 673, hash ED7CD8C7 + sample 6: + time = 166833 + flags = 67108864 + data = length 523, hash 3020DF50 + sample 7: + time = 333666 + flags = 0 + data = length 6061, hash 736C72B2 + sample 8: + time = 266933 + flags = 0 + data = length 992, hash FE132F23 + sample 9: + time = 233566 + flags = 67108864 + data = length 623, hash 5B2C1816 + sample 10: + time = 300300 + flags = 67108864 + data = length 421, hash 742E69C1 + sample 11: + time = 433766 + flags = 0 + data = length 4899, hash F72F86A1 + sample 12: + time = 400400 + flags = 0 + data = length 568, hash 519A8E50 + sample 13: + time = 367033 + flags = 67108864 + data = length 620, hash 3990AA39 + sample 14: + time = 567233 + flags = 0 + data = length 5450, hash F06EC4AA + sample 15: + time = 500500 + flags = 0 + data = length 1051, hash 92DFA63A + sample 16: + time = 467133 + flags = 67108864 + data = length 874, hash 69587FB4 + sample 17: + time = 533866 + flags = 67108864 + data = length 781, hash 36BE495B + sample 18: + time = 700700 + flags = 0 + data = length 4725, hash AC0C8CD3 + sample 19: + time = 633966 + flags = 0 + data = length 1022, hash 5D8BFF34 + sample 20: + time = 600600 + flags = 67108864 + data = length 790, hash 99413A99 + sample 21: + time = 667333 + flags = 67108864 + data = length 610, hash 5E129290 + sample 22: + time = 834166 + flags = 0 + data = length 2751, hash 769974CB + sample 23: + time = 767433 + flags = 0 + data = length 745, hash B78A477A + sample 24: + time = 734066 + flags = 67108864 + data = length 621, hash CF741E7A + sample 25: + time = 800800 + flags = 67108864 + data = length 505, hash 1DB4894E + sample 26: + time = 967633 + flags = 0 + data = length 1268, hash C15348DC + sample 27: + time = 900900 + flags = 0 + data = length 880, hash C2DE85D0 + sample 28: + time = 867533 + flags = 67108864 + data = length 530, hash C9641EB0 + sample 29: + time = 934266 + flags = 603979776 + data = length 568, hash 4FE5C8EA +tracksEnded = true diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_invalid_nalu.mp4.reading_within_gop_sample_dependencies.unknown_length.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_invalid_nalu.mp4.reading_within_gop_sample_dependencies.unknown_length.dump new file mode 100644 index 0000000000..994a533ace --- /dev/null +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_invalid_nalu.mp4.reading_within_gop_sample_dependencies.unknown_length.dump @@ -0,0 +1,150 @@ +seekMap: + isSeekable = true + duration = 1001000 + getPosition(0) = [[timeUs=0, position=1266]] + getPosition(1) = [[timeUs=0, position=1266]] + getPosition(500500) = [[timeUs=0, position=1266]] + getPosition(1001000) = [[timeUs=0, position=1266]] +numberOfTracks = 1 +track 0: + total output bytes = 89876 + sample count = 30 + track duration = 1001000 + format 0: + id = 1 + containerMimeType = video/mp4 + sampleMimeType = video/avc + codecs = avc1.64001F + maxInputSize = 36722 + maxNumReorderSamples = 2 + width = 1080 + height = 720 + frameRate = 29.97 + colorInfo: + lumaBitdepth = 8 + chromaBitdepth = 8 + metadata = entries=[TSSE: description=null: values=[Lavf60.16.100], Mp4Timestamp: creation time=0, modification time=0, timescale=1000] + initializationData: + data = length 29, hash 4746B5D9 + data = length 10, hash 7A0D0F2B + sample 0: + time = 0 + flags = 1 + data = length 36692, hash D216076E + sample 1: + time = 66733 + flags = 0 + data = length 5312, hash D45D3CA0 + sample 2: + time = 33366 + flags = 67108864 + data = length 599, hash 1BE7812D + sample 3: + time = 200200 + flags = 0 + data = length 7735, hash 4490F110 + sample 4: + time = 133466 + flags = 0 + data = length 987, hash 560B5036 + sample 5: + time = 100100 + flags = 67108864 + data = length 673, hash ED7CD8C7 + sample 6: + time = 166833 + flags = 67108864 + data = length 523, hash 3020DF50 + sample 7: + time = 333666 + flags = 0 + data = length 6061, hash 736C72B2 + sample 8: + time = 266933 + flags = 0 + data = length 992, hash FE132F23 + sample 9: + time = 233566 + flags = 67108864 + data = length 623, hash 5B2C1816 + sample 10: + time = 300300 + flags = 67108864 + data = length 421, hash 742E69C1 + sample 11: + time = 433766 + flags = 0 + data = length 4899, hash F72F86A1 + sample 12: + time = 400400 + flags = 0 + data = length 568, hash 519A8E50 + sample 13: + time = 367033 + flags = 67108864 + data = length 620, hash 3990AA39 + sample 14: + time = 567233 + flags = 0 + data = length 5450, hash F06EC4AA + sample 15: + time = 500500 + flags = 0 + data = length 1051, hash 92DFA63A + sample 16: + time = 467133 + flags = 67108864 + data = length 874, hash 69587FB4 + sample 17: + time = 533866 + flags = 67108864 + data = length 781, hash 36BE495B + sample 18: + time = 700700 + flags = 0 + data = length 4725, hash AC0C8CD3 + sample 19: + time = 633966 + flags = 0 + data = length 1022, hash 5D8BFF34 + sample 20: + time = 600600 + flags = 67108864 + data = length 790, hash 99413A99 + sample 21: + time = 667333 + flags = 67108864 + data = length 610, hash 5E129290 + sample 22: + time = 834166 + flags = 0 + data = length 2751, hash 769974CB + sample 23: + time = 767433 + flags = 0 + data = length 745, hash B78A477A + sample 24: + time = 734066 + flags = 67108864 + data = length 621, hash CF741E7A + sample 25: + time = 800800 + flags = 67108864 + data = length 505, hash 1DB4894E + sample 26: + time = 967633 + flags = 0 + data = length 1268, hash C15348DC + sample 27: + time = 900900 + flags = 0 + data = length 880, hash C2DE85D0 + sample 28: + time = 867533 + flags = 67108864 + data = length 530, hash C9641EB0 + sample 29: + time = 934266 + flags = 603979776 + data = length 568, hash 4FE5C8EA +tracksEnded = true diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_invalid_nalu.mp4.unknown_length.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_invalid_nalu.mp4.unknown_length.dump new file mode 100644 index 0000000000..a73a901d33 --- /dev/null +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_invalid_nalu.mp4.unknown_length.dump @@ -0,0 +1,150 @@ +seekMap: + isSeekable = true + duration = 1001000 + getPosition(0) = [[timeUs=0, position=1266]] + getPosition(1) = [[timeUs=0, position=1266]] + getPosition(500500) = [[timeUs=0, position=1266]] + getPosition(1001000) = [[timeUs=0, position=1266]] +numberOfTracks = 1 +track 0: + total output bytes = 89876 + sample count = 30 + track duration = 1001000 + format 0: + id = 1 + containerMimeType = video/mp4 + sampleMimeType = video/avc + codecs = avc1.64001F + maxInputSize = 36722 + maxNumReorderSamples = 2 + width = 1080 + height = 720 + frameRate = 29.97 + colorInfo: + lumaBitdepth = 8 + chromaBitdepth = 8 + metadata = entries=[TSSE: description=null: values=[Lavf60.16.100], Mp4Timestamp: creation time=0, modification time=0, timescale=1000] + initializationData: + data = length 29, hash 4746B5D9 + data = length 10, hash 7A0D0F2B + sample 0: + time = 0 + flags = 1 + data = length 36692, hash D216076E + sample 1: + time = 66733 + flags = 0 + data = length 5312, hash D45D3CA0 + sample 2: + time = 33366 + flags = 0 + data = length 599, hash 1BE7812D + sample 3: + time = 200200 + flags = 0 + data = length 7735, hash 4490F110 + sample 4: + time = 133466 + flags = 0 + data = length 987, hash 560B5036 + sample 5: + time = 100100 + flags = 0 + data = length 673, hash ED7CD8C7 + sample 6: + time = 166833 + flags = 0 + data = length 523, hash 3020DF50 + sample 7: + time = 333666 + flags = 0 + data = length 6061, hash 736C72B2 + sample 8: + time = 266933 + flags = 0 + data = length 992, hash FE132F23 + sample 9: + time = 233566 + flags = 0 + data = length 623, hash 5B2C1816 + sample 10: + time = 300300 + flags = 0 + data = length 421, hash 742E69C1 + sample 11: + time = 433766 + flags = 0 + data = length 4899, hash F72F86A1 + sample 12: + time = 400400 + flags = 0 + data = length 568, hash 519A8E50 + sample 13: + time = 367033 + flags = 0 + data = length 620, hash 3990AA39 + sample 14: + time = 567233 + flags = 0 + data = length 5450, hash F06EC4AA + sample 15: + time = 500500 + flags = 0 + data = length 1051, hash 92DFA63A + sample 16: + time = 467133 + flags = 0 + data = length 874, hash 69587FB4 + sample 17: + time = 533866 + flags = 0 + data = length 781, hash 36BE495B + sample 18: + time = 700700 + flags = 0 + data = length 4725, hash AC0C8CD3 + sample 19: + time = 633966 + flags = 0 + data = length 1022, hash 5D8BFF34 + sample 20: + time = 600600 + flags = 0 + data = length 790, hash 99413A99 + sample 21: + time = 667333 + flags = 0 + data = length 610, hash 5E129290 + sample 22: + time = 834166 + flags = 0 + data = length 2751, hash 769974CB + sample 23: + time = 767433 + flags = 0 + data = length 745, hash B78A477A + sample 24: + time = 734066 + flags = 0 + data = length 621, hash CF741E7A + sample 25: + time = 800800 + flags = 0 + data = length 505, hash 1DB4894E + sample 26: + time = 967633 + flags = 0 + data = length 1268, hash C15348DC + sample 27: + time = 900900 + flags = 0 + data = length 880, hash C2DE85D0 + sample 28: + time = 867533 + flags = 0 + data = length 530, hash C9641EB0 + sample 29: + time = 934266 + flags = 536870912 + data = length 568, hash 4FE5C8EA +tracksEnded = true diff --git a/libraries/test_data/src/test/assets/media/mp4/sample_with_invalid_nalu.mp4 b/libraries/test_data/src/test/assets/media/mp4/sample_with_invalid_nalu.mp4 new file mode 100644 index 0000000000000000000000000000000000000000..897b6d5060e5894c96d412863bb3bacbe55fc671 GIT binary patch literal 91142 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:FTeJ4}cT5=J5cVpwNNgwG!g{-;iCYyYD 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 D%g@H@ literal 0 HcmV?d00001