diff --git a/libraries/container/src/main/java/androidx/media3/container/Mp4Box.java b/libraries/container/src/main/java/androidx/media3/container/Mp4Box.java index 9742307e5f..8f74cd6e3f 100644 --- a/libraries/container/src/main/java/androidx/media3/container/Mp4Box.java +++ b/libraries/container/src/main/java/androidx/media3/container/Mp4Box.java @@ -245,6 +245,9 @@ public abstract class Mp4Box { @SuppressWarnings("ConstantCaseForConstants") public static final int TYPE_esds = 0x65736473; + @SuppressWarnings("ConstantCaseForConstants") + public static final int TYPE_btrt = 0x62747274; + @SuppressWarnings("ConstantCaseForConstants") public static final int TYPE_moof = 0x6d6f6f66; diff --git a/libraries/extractor/src/main/java/androidx/media3/extractor/mp4/BoxParser.java b/libraries/extractor/src/main/java/androidx/media3/extractor/mp4/BoxParser.java index 3b2d17f88f..3bc998907a 100644 --- a/libraries/extractor/src/main/java/androidx/media3/extractor/mp4/BoxParser.java +++ b/libraries/extractor/src/main/java/androidx/media3/extractor/mp4/BoxParser.java @@ -1223,6 +1223,7 @@ public final class BoxParser { @Nullable byte[] projectionData = null; @C.StereoMode int stereoMode = Format.NO_VALUE; @Nullable EsdsData esdsData = null; + @Nullable BtrtData btrtData = null; int maxNumReorderSamples = Format.NO_VALUE; int maxSubLayers = Format.NO_VALUE; @Nullable NalUnitUtil.H265VpsData vpsData = null; @@ -1446,6 +1447,8 @@ public final class BoxParser { if (initializationDataBytes != null) { initializationData = ImmutableList.of(initializationDataBytes); } + } else if (childAtomType == Mp4Box.TYPE_btrt) { + btrtData = parseBtrtFromParent(parent, childStartPosition); } else if (childAtomType == Mp4Box.TYPE_pasp) { pixelWidthHeightRatio = parsePaspFromParent(parent, childStartPosition); pixelWidthHeightRatioFromPasp = true; @@ -1555,7 +1558,12 @@ public final class BoxParser { .setChromaBitdepth(bitdepthChroma) .build()); - if (esdsData != null) { + // Prefer btrtData over esdsData for video track. + if (btrtData != null) { + formatBuilder + .setAverageBitrate(Ints.saturatedCast(btrtData.avgBitrate)) + .setPeakBitrate(Ints.saturatedCast(btrtData.maxBitrate)); + } else if (esdsData != null) { formatBuilder .setAverageBitrate(Ints.saturatedCast(esdsData.bitrate)) .setPeakBitrate(Ints.saturatedCast(esdsData.peakBitrate)); @@ -1834,6 +1842,7 @@ public final class BoxParser { @C.PcmEncoding int pcmEncoding = Format.NO_VALUE; @Nullable String codecs = null; @Nullable EsdsData esdsData = null; + @Nullable BtrtData btrtData = null; if (quickTimeSoundDescriptionVersion == 0 || quickTimeSoundDescriptionVersion == 1) { channelCount = parent.readUnsignedShort(); @@ -2040,6 +2049,8 @@ public final class BoxParser { } } } + } else if (childAtomType == Mp4Box.TYPE_btrt) { + btrtData = parseBtrtFromParent(parent, childPosition); } else if (childAtomType == Mp4Box.TYPE_dac3) { parent.setPosition(Mp4Box.HEADER_SIZE + childPosition); out.format = @@ -2127,10 +2138,15 @@ public final class BoxParser { .setDrmInitData(drmInitData) .setLanguage(language); + // Prefer esdsData over btrtData for audio track. if (esdsData != null) { formatBuilder .setAverageBitrate(Ints.saturatedCast(esdsData.bitrate)) .setPeakBitrate(Ints.saturatedCast(esdsData.peakBitrate)); + } else if (btrtData != null) { + formatBuilder + .setAverageBitrate(Ints.saturatedCast(btrtData.avgBitrate)) + .setPeakBitrate(Ints.saturatedCast(btrtData.maxBitrate)); } out.format = formatBuilder.build(); @@ -2221,6 +2237,20 @@ public final class BoxParser { /* peakBitrate= */ peakBitrate > 0 ? peakBitrate : Format.NO_VALUE); } + /** + * Returns bitrate data contained in a btrt box, as specified by Section 8.5.2.2 in ISO/IEC + * 14496-12:2012(E). + */ + private static BtrtData parseBtrtFromParent(ParsableByteArray parent, int position) { + parent.setPosition(position + Mp4Box.HEADER_SIZE); + + parent.skipBytes(4); // bufferSizeDB + long maxBitrate = parent.readUnsignedInt(); + long avgBitrate = parent.readUnsignedInt(); + + return new BtrtData(avgBitrate, maxBitrate); + } + /** * Returns stereo video playback related meta data from the vexu box. See * https://developer.apple.com/av-foundation/Stereo-Video-ISOBMFF-Extensions.pdf for ref. @@ -2526,6 +2556,17 @@ public final class BoxParser { } } + /** Data parsed from btrt box. */ + private static final class BtrtData { + private final long avgBitrate; + private final long maxBitrate; + + public BtrtData(long avgBitrate, long maxBitrate) { + this.avgBitrate = avgBitrate; + this.maxBitrate = maxBitrate; + } + } + /** Data parsed from stri box. */ private static final class StriData { private final boolean hasLeftEyeView; 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 eae5976675..9d18e4eecb 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 @@ -260,6 +260,11 @@ public final class Mp4ExtractorParameterizedTest { assertExtractorBehavior("media/mp4/sample_2_byte_NAL_length.mp4"); } + @Test + public void mp4SampleWithBtrt() throws Exception { + assertExtractorBehavior("media/mp4/sample_with_btrt.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/h265_bframes.mp4.0.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/h265_bframes.mp4.0.dump index c3747ca083..d7e7866e05 100644 --- a/libraries/test_data/src/test/assets/extractordumps/mp4/h265_bframes.mp4.0.dump +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/h265_bframes.mp4.0.dump @@ -11,6 +11,8 @@ track 0: sample count = 30 track duration = 1000000 format 0: + averageBitrate = 155160 + peakBitrate = 155160 id = 1 containerMimeType = video/mp4 sampleMimeType = video/hevc diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/h265_bframes.mp4.1.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/h265_bframes.mp4.1.dump index c3747ca083..d7e7866e05 100644 --- a/libraries/test_data/src/test/assets/extractordumps/mp4/h265_bframes.mp4.1.dump +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/h265_bframes.mp4.1.dump @@ -11,6 +11,8 @@ track 0: sample count = 30 track duration = 1000000 format 0: + averageBitrate = 155160 + peakBitrate = 155160 id = 1 containerMimeType = video/mp4 sampleMimeType = video/hevc diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/h265_bframes.mp4.2.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/h265_bframes.mp4.2.dump index c3747ca083..d7e7866e05 100644 --- a/libraries/test_data/src/test/assets/extractordumps/mp4/h265_bframes.mp4.2.dump +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/h265_bframes.mp4.2.dump @@ -11,6 +11,8 @@ track 0: sample count = 30 track duration = 1000000 format 0: + averageBitrate = 155160 + peakBitrate = 155160 id = 1 containerMimeType = video/mp4 sampleMimeType = video/hevc diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/h265_bframes.mp4.3.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/h265_bframes.mp4.3.dump index c3747ca083..d7e7866e05 100644 --- a/libraries/test_data/src/test/assets/extractordumps/mp4/h265_bframes.mp4.3.dump +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/h265_bframes.mp4.3.dump @@ -11,6 +11,8 @@ track 0: sample count = 30 track duration = 1000000 format 0: + averageBitrate = 155160 + peakBitrate = 155160 id = 1 containerMimeType = video/mp4 sampleMimeType = video/hevc diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/h265_bframes.mp4.reading_within_gop_sample_dependencies.0.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/h265_bframes.mp4.reading_within_gop_sample_dependencies.0.dump index 7f2a42e0e9..cda16bc7a8 100644 --- a/libraries/test_data/src/test/assets/extractordumps/mp4/h265_bframes.mp4.reading_within_gop_sample_dependencies.0.dump +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/h265_bframes.mp4.reading_within_gop_sample_dependencies.0.dump @@ -11,6 +11,8 @@ track 0: sample count = 30 track duration = 1000000 format 0: + averageBitrate = 155160 + peakBitrate = 155160 id = 1 containerMimeType = video/mp4 sampleMimeType = video/hevc diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/h265_bframes.mp4.reading_within_gop_sample_dependencies.1.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/h265_bframes.mp4.reading_within_gop_sample_dependencies.1.dump index 7f2a42e0e9..cda16bc7a8 100644 --- a/libraries/test_data/src/test/assets/extractordumps/mp4/h265_bframes.mp4.reading_within_gop_sample_dependencies.1.dump +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/h265_bframes.mp4.reading_within_gop_sample_dependencies.1.dump @@ -11,6 +11,8 @@ track 0: sample count = 30 track duration = 1000000 format 0: + averageBitrate = 155160 + peakBitrate = 155160 id = 1 containerMimeType = video/mp4 sampleMimeType = video/hevc diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/h265_bframes.mp4.reading_within_gop_sample_dependencies.2.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/h265_bframes.mp4.reading_within_gop_sample_dependencies.2.dump index 7f2a42e0e9..cda16bc7a8 100644 --- a/libraries/test_data/src/test/assets/extractordumps/mp4/h265_bframes.mp4.reading_within_gop_sample_dependencies.2.dump +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/h265_bframes.mp4.reading_within_gop_sample_dependencies.2.dump @@ -11,6 +11,8 @@ track 0: sample count = 30 track duration = 1000000 format 0: + averageBitrate = 155160 + peakBitrate = 155160 id = 1 containerMimeType = video/mp4 sampleMimeType = video/hevc diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/h265_bframes.mp4.reading_within_gop_sample_dependencies.3.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/h265_bframes.mp4.reading_within_gop_sample_dependencies.3.dump index 7f2a42e0e9..cda16bc7a8 100644 --- a/libraries/test_data/src/test/assets/extractordumps/mp4/h265_bframes.mp4.reading_within_gop_sample_dependencies.3.dump +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/h265_bframes.mp4.reading_within_gop_sample_dependencies.3.dump @@ -11,6 +11,8 @@ track 0: sample count = 30 track duration = 1000000 format 0: + averageBitrate = 155160 + peakBitrate = 155160 id = 1 containerMimeType = video/mp4 sampleMimeType = video/hevc diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/h265_bframes.mp4.reading_within_gop_sample_dependencies.unknown_length.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/h265_bframes.mp4.reading_within_gop_sample_dependencies.unknown_length.dump index 7f2a42e0e9..cda16bc7a8 100644 --- a/libraries/test_data/src/test/assets/extractordumps/mp4/h265_bframes.mp4.reading_within_gop_sample_dependencies.unknown_length.dump +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/h265_bframes.mp4.reading_within_gop_sample_dependencies.unknown_length.dump @@ -11,6 +11,8 @@ track 0: sample count = 30 track duration = 1000000 format 0: + averageBitrate = 155160 + peakBitrate = 155160 id = 1 containerMimeType = video/mp4 sampleMimeType = video/hevc diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/h265_bframes.mp4.unknown_length.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/h265_bframes.mp4.unknown_length.dump index c3747ca083..d7e7866e05 100644 --- a/libraries/test_data/src/test/assets/extractordumps/mp4/h265_bframes.mp4.unknown_length.dump +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/h265_bframes.mp4.unknown_length.dump @@ -11,6 +11,8 @@ track 0: sample count = 30 track duration = 1000000 format 0: + averageBitrate = 155160 + peakBitrate = 155160 id = 1 containerMimeType = video/mp4 sampleMimeType = video/hevc diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_18byte_nclx_colr.mp4.0.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_18byte_nclx_colr.mp4.0.dump index d1daf77470..544ea667ba 100644 --- a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_18byte_nclx_colr.mp4.0.dump +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_18byte_nclx_colr.mp4.0.dump @@ -11,6 +11,8 @@ track 0: sample count = 30 track duration = 1001000 format 0: + averageBitrate = 718288 + peakBitrate = 718288 id = 1 containerMimeType = video/mp4 sampleMimeType = video/avc diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_18byte_nclx_colr.mp4.1.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_18byte_nclx_colr.mp4.1.dump index d1daf77470..544ea667ba 100644 --- a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_18byte_nclx_colr.mp4.1.dump +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_18byte_nclx_colr.mp4.1.dump @@ -11,6 +11,8 @@ track 0: sample count = 30 track duration = 1001000 format 0: + averageBitrate = 718288 + peakBitrate = 718288 id = 1 containerMimeType = video/mp4 sampleMimeType = video/avc diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_18byte_nclx_colr.mp4.2.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_18byte_nclx_colr.mp4.2.dump index d1daf77470..544ea667ba 100644 --- a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_18byte_nclx_colr.mp4.2.dump +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_18byte_nclx_colr.mp4.2.dump @@ -11,6 +11,8 @@ track 0: sample count = 30 track duration = 1001000 format 0: + averageBitrate = 718288 + peakBitrate = 718288 id = 1 containerMimeType = video/mp4 sampleMimeType = video/avc diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_18byte_nclx_colr.mp4.3.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_18byte_nclx_colr.mp4.3.dump index d1daf77470..544ea667ba 100644 --- a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_18byte_nclx_colr.mp4.3.dump +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_18byte_nclx_colr.mp4.3.dump @@ -11,6 +11,8 @@ track 0: sample count = 30 track duration = 1001000 format 0: + averageBitrate = 718288 + peakBitrate = 718288 id = 1 containerMimeType = video/mp4 sampleMimeType = video/avc diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_18byte_nclx_colr.mp4.reading_within_gop_sample_dependencies.0.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_18byte_nclx_colr.mp4.reading_within_gop_sample_dependencies.0.dump index f0dc292eca..958250979b 100644 --- a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_18byte_nclx_colr.mp4.reading_within_gop_sample_dependencies.0.dump +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_18byte_nclx_colr.mp4.reading_within_gop_sample_dependencies.0.dump @@ -11,6 +11,8 @@ track 0: sample count = 30 track duration = 1001000 format 0: + averageBitrate = 718288 + peakBitrate = 718288 id = 1 containerMimeType = video/mp4 sampleMimeType = video/avc diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_18byte_nclx_colr.mp4.reading_within_gop_sample_dependencies.1.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_18byte_nclx_colr.mp4.reading_within_gop_sample_dependencies.1.dump index f0dc292eca..958250979b 100644 --- a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_18byte_nclx_colr.mp4.reading_within_gop_sample_dependencies.1.dump +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_18byte_nclx_colr.mp4.reading_within_gop_sample_dependencies.1.dump @@ -11,6 +11,8 @@ track 0: sample count = 30 track duration = 1001000 format 0: + averageBitrate = 718288 + peakBitrate = 718288 id = 1 containerMimeType = video/mp4 sampleMimeType = video/avc diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_18byte_nclx_colr.mp4.reading_within_gop_sample_dependencies.2.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_18byte_nclx_colr.mp4.reading_within_gop_sample_dependencies.2.dump index f0dc292eca..958250979b 100644 --- a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_18byte_nclx_colr.mp4.reading_within_gop_sample_dependencies.2.dump +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_18byte_nclx_colr.mp4.reading_within_gop_sample_dependencies.2.dump @@ -11,6 +11,8 @@ track 0: sample count = 30 track duration = 1001000 format 0: + averageBitrate = 718288 + peakBitrate = 718288 id = 1 containerMimeType = video/mp4 sampleMimeType = video/avc diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_18byte_nclx_colr.mp4.reading_within_gop_sample_dependencies.3.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_18byte_nclx_colr.mp4.reading_within_gop_sample_dependencies.3.dump index f0dc292eca..958250979b 100644 --- a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_18byte_nclx_colr.mp4.reading_within_gop_sample_dependencies.3.dump +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_18byte_nclx_colr.mp4.reading_within_gop_sample_dependencies.3.dump @@ -11,6 +11,8 @@ track 0: sample count = 30 track duration = 1001000 format 0: + averageBitrate = 718288 + peakBitrate = 718288 id = 1 containerMimeType = video/mp4 sampleMimeType = video/avc diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_18byte_nclx_colr.mp4.reading_within_gop_sample_dependencies.unknown_length.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_18byte_nclx_colr.mp4.reading_within_gop_sample_dependencies.unknown_length.dump index f0dc292eca..958250979b 100644 --- a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_18byte_nclx_colr.mp4.reading_within_gop_sample_dependencies.unknown_length.dump +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_18byte_nclx_colr.mp4.reading_within_gop_sample_dependencies.unknown_length.dump @@ -11,6 +11,8 @@ track 0: sample count = 30 track duration = 1001000 format 0: + averageBitrate = 718288 + peakBitrate = 718288 id = 1 containerMimeType = video/mp4 sampleMimeType = video/avc diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_18byte_nclx_colr.mp4.unknown_length.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_18byte_nclx_colr.mp4.unknown_length.dump index d1daf77470..544ea667ba 100644 --- a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_18byte_nclx_colr.mp4.unknown_length.dump +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_18byte_nclx_colr.mp4.unknown_length.dump @@ -11,6 +11,8 @@ track 0: sample count = 30 track duration = 1001000 format 0: + averageBitrate = 718288 + peakBitrate = 718288 id = 1 containerMimeType = video/mp4 sampleMimeType = video/avc diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_fragmented_large_bitrates.mp4.0.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_fragmented_large_bitrates.mp4.0.dump index 1e8032c103..ecdaa15740 100644 --- a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_fragmented_large_bitrates.mp4.0.dump +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_fragmented_large_bitrates.mp4.0.dump @@ -11,6 +11,8 @@ track 0: sample count = 30 track duration = 1068000 format 0: + averageBitrate = 686776 + peakBitrate = 0 id = 1 containerMimeType = video/mp4 sampleMimeType = video/avc diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_fragmented_large_bitrates.mp4.1.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_fragmented_large_bitrates.mp4.1.dump index 79f433eb3c..1e33608d2a 100644 --- a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_fragmented_large_bitrates.mp4.1.dump +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_fragmented_large_bitrates.mp4.1.dump @@ -11,6 +11,8 @@ track 0: sample count = 30 track duration = 1068000 format 0: + averageBitrate = 686776 + peakBitrate = 0 id = 1 containerMimeType = video/mp4 sampleMimeType = video/avc diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_fragmented_large_bitrates.mp4.2.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_fragmented_large_bitrates.mp4.2.dump index 5c8e1457ae..650254843a 100644 --- a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_fragmented_large_bitrates.mp4.2.dump +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_fragmented_large_bitrates.mp4.2.dump @@ -11,6 +11,8 @@ track 0: sample count = 30 track duration = 1068000 format 0: + averageBitrate = 686776 + peakBitrate = 0 id = 1 containerMimeType = video/mp4 sampleMimeType = video/avc diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_fragmented_large_bitrates.mp4.3.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_fragmented_large_bitrates.mp4.3.dump index 25eba08ffc..80bd0ce19a 100644 --- a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_fragmented_large_bitrates.mp4.3.dump +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_fragmented_large_bitrates.mp4.3.dump @@ -11,6 +11,8 @@ track 0: sample count = 30 track duration = 1068000 format 0: + averageBitrate = 686776 + peakBitrate = 0 id = 1 containerMimeType = video/mp4 sampleMimeType = video/avc diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_fragmented_large_bitrates.mp4.reading_within_gop_sample_dependencies.0.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_fragmented_large_bitrates.mp4.reading_within_gop_sample_dependencies.0.dump index b35cd11501..7d579965e5 100644 --- a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_fragmented_large_bitrates.mp4.reading_within_gop_sample_dependencies.0.dump +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_fragmented_large_bitrates.mp4.reading_within_gop_sample_dependencies.0.dump @@ -11,6 +11,8 @@ track 0: sample count = 30 track duration = 1068000 format 0: + averageBitrate = 686776 + peakBitrate = 0 id = 1 containerMimeType = video/mp4 sampleMimeType = video/avc diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_fragmented_large_bitrates.mp4.reading_within_gop_sample_dependencies.1.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_fragmented_large_bitrates.mp4.reading_within_gop_sample_dependencies.1.dump index 007dd01789..fe2113227d 100644 --- a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_fragmented_large_bitrates.mp4.reading_within_gop_sample_dependencies.1.dump +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_fragmented_large_bitrates.mp4.reading_within_gop_sample_dependencies.1.dump @@ -11,6 +11,8 @@ track 0: sample count = 30 track duration = 1068000 format 0: + averageBitrate = 686776 + peakBitrate = 0 id = 1 containerMimeType = video/mp4 sampleMimeType = video/avc diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_fragmented_large_bitrates.mp4.reading_within_gop_sample_dependencies.2.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_fragmented_large_bitrates.mp4.reading_within_gop_sample_dependencies.2.dump index 1499f36e22..da3cb84ee6 100644 --- a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_fragmented_large_bitrates.mp4.reading_within_gop_sample_dependencies.2.dump +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_fragmented_large_bitrates.mp4.reading_within_gop_sample_dependencies.2.dump @@ -11,6 +11,8 @@ track 0: sample count = 30 track duration = 1068000 format 0: + averageBitrate = 686776 + peakBitrate = 0 id = 1 containerMimeType = video/mp4 sampleMimeType = video/avc diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_fragmented_large_bitrates.mp4.reading_within_gop_sample_dependencies.3.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_fragmented_large_bitrates.mp4.reading_within_gop_sample_dependencies.3.dump index c96ec212d1..ec32a25056 100644 --- a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_fragmented_large_bitrates.mp4.reading_within_gop_sample_dependencies.3.dump +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_fragmented_large_bitrates.mp4.reading_within_gop_sample_dependencies.3.dump @@ -11,6 +11,8 @@ track 0: sample count = 30 track duration = 1068000 format 0: + averageBitrate = 686776 + peakBitrate = 0 id = 1 containerMimeType = video/mp4 sampleMimeType = video/avc diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_fragmented_large_bitrates.mp4.reading_within_gop_sample_dependencies.unknown_length.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_fragmented_large_bitrates.mp4.reading_within_gop_sample_dependencies.unknown_length.dump index b35cd11501..7d579965e5 100644 --- a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_fragmented_large_bitrates.mp4.reading_within_gop_sample_dependencies.unknown_length.dump +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_fragmented_large_bitrates.mp4.reading_within_gop_sample_dependencies.unknown_length.dump @@ -11,6 +11,8 @@ track 0: sample count = 30 track duration = 1068000 format 0: + averageBitrate = 686776 + peakBitrate = 0 id = 1 containerMimeType = video/mp4 sampleMimeType = video/avc diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_fragmented_large_bitrates.mp4.unknown_length.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_fragmented_large_bitrates.mp4.unknown_length.dump index 1e8032c103..ecdaa15740 100644 --- a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_fragmented_large_bitrates.mp4.unknown_length.dump +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_fragmented_large_bitrates.mp4.unknown_length.dump @@ -11,6 +11,8 @@ track 0: sample count = 30 track duration = 1068000 format 0: + averageBitrate = 686776 + peakBitrate = 0 id = 1 containerMimeType = video/mp4 sampleMimeType = video/avc diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_fragmented_seekable.mp4.0.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_fragmented_seekable.mp4.0.dump index bd7f4a1e50..9b67dd3555 100644 --- a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_fragmented_seekable.mp4.0.dump +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_fragmented_seekable.mp4.0.dump @@ -11,6 +11,8 @@ track 0: sample count = 30 track duration = 1068000 format 0: + averageBitrate = 686776 + peakBitrate = 0 id = 1 containerMimeType = video/mp4 sampleMimeType = video/avc diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_fragmented_seekable.mp4.1.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_fragmented_seekable.mp4.1.dump index ea2ffc8d83..ca5222da43 100644 --- a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_fragmented_seekable.mp4.1.dump +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_fragmented_seekable.mp4.1.dump @@ -11,6 +11,8 @@ track 0: sample count = 30 track duration = 1068000 format 0: + averageBitrate = 686776 + peakBitrate = 0 id = 1 containerMimeType = video/mp4 sampleMimeType = video/avc diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_fragmented_seekable.mp4.2.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_fragmented_seekable.mp4.2.dump index 48f108a434..95f6630118 100644 --- a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_fragmented_seekable.mp4.2.dump +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_fragmented_seekable.mp4.2.dump @@ -11,6 +11,8 @@ track 0: sample count = 30 track duration = 1068000 format 0: + averageBitrate = 686776 + peakBitrate = 0 id = 1 containerMimeType = video/mp4 sampleMimeType = video/avc diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_fragmented_seekable.mp4.3.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_fragmented_seekable.mp4.3.dump index feb56812d5..aaa5f5b969 100644 --- a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_fragmented_seekable.mp4.3.dump +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_fragmented_seekable.mp4.3.dump @@ -11,6 +11,8 @@ track 0: sample count = 30 track duration = 1068000 format 0: + averageBitrate = 686776 + peakBitrate = 0 id = 1 containerMimeType = video/mp4 sampleMimeType = video/avc diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_fragmented_seekable.mp4.reading_within_gop_sample_dependencies.0.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_fragmented_seekable.mp4.reading_within_gop_sample_dependencies.0.dump index a992d16add..348ea639b2 100644 --- a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_fragmented_seekable.mp4.reading_within_gop_sample_dependencies.0.dump +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_fragmented_seekable.mp4.reading_within_gop_sample_dependencies.0.dump @@ -11,6 +11,8 @@ track 0: sample count = 30 track duration = 1068000 format 0: + averageBitrate = 686776 + peakBitrate = 0 id = 1 containerMimeType = video/mp4 sampleMimeType = video/avc diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_fragmented_seekable.mp4.reading_within_gop_sample_dependencies.1.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_fragmented_seekable.mp4.reading_within_gop_sample_dependencies.1.dump index 3e7be9e082..ce895f82f1 100644 --- a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_fragmented_seekable.mp4.reading_within_gop_sample_dependencies.1.dump +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_fragmented_seekable.mp4.reading_within_gop_sample_dependencies.1.dump @@ -11,6 +11,8 @@ track 0: sample count = 30 track duration = 1068000 format 0: + averageBitrate = 686776 + peakBitrate = 0 id = 1 containerMimeType = video/mp4 sampleMimeType = video/avc diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_fragmented_seekable.mp4.reading_within_gop_sample_dependencies.2.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_fragmented_seekable.mp4.reading_within_gop_sample_dependencies.2.dump index e66acb5ade..5cb313a588 100644 --- a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_fragmented_seekable.mp4.reading_within_gop_sample_dependencies.2.dump +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_fragmented_seekable.mp4.reading_within_gop_sample_dependencies.2.dump @@ -11,6 +11,8 @@ track 0: sample count = 30 track duration = 1068000 format 0: + averageBitrate = 686776 + peakBitrate = 0 id = 1 containerMimeType = video/mp4 sampleMimeType = video/avc diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_fragmented_seekable.mp4.reading_within_gop_sample_dependencies.3.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_fragmented_seekable.mp4.reading_within_gop_sample_dependencies.3.dump index cb4e5afce8..9db25a1211 100644 --- a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_fragmented_seekable.mp4.reading_within_gop_sample_dependencies.3.dump +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_fragmented_seekable.mp4.reading_within_gop_sample_dependencies.3.dump @@ -11,6 +11,8 @@ track 0: sample count = 30 track duration = 1068000 format 0: + averageBitrate = 686776 + peakBitrate = 0 id = 1 containerMimeType = video/mp4 sampleMimeType = video/avc diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_fragmented_seekable.mp4.reading_within_gop_sample_dependencies.unknown_length.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_fragmented_seekable.mp4.reading_within_gop_sample_dependencies.unknown_length.dump index a992d16add..348ea639b2 100644 --- a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_fragmented_seekable.mp4.reading_within_gop_sample_dependencies.unknown_length.dump +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_fragmented_seekable.mp4.reading_within_gop_sample_dependencies.unknown_length.dump @@ -11,6 +11,8 @@ track 0: sample count = 30 track duration = 1068000 format 0: + averageBitrate = 686776 + peakBitrate = 0 id = 1 containerMimeType = video/mp4 sampleMimeType = video/avc diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_fragmented_seekable.mp4.unknown_length.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_fragmented_seekable.mp4.unknown_length.dump index bd7f4a1e50..9b67dd3555 100644 --- a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_fragmented_seekable.mp4.unknown_length.dump +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_fragmented_seekable.mp4.unknown_length.dump @@ -11,6 +11,8 @@ track 0: sample count = 30 track duration = 1068000 format 0: + averageBitrate = 686776 + peakBitrate = 0 id = 1 containerMimeType = video/mp4 sampleMimeType = video/avc diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_av1c.mp4.0.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_av1c.mp4.0.dump index 16692e6284..b6bb0fa25d 100644 --- a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_av1c.mp4.0.dump +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_av1c.mp4.0.dump @@ -11,6 +11,8 @@ track 0: sample count = 30 track duration = 1000000 format 0: + averageBitrate = 7536 + peakBitrate = 7536 id = 1 containerMimeType = video/mp4 sampleMimeType = video/av01 diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_av1c.mp4.1.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_av1c.mp4.1.dump index 16692e6284..b6bb0fa25d 100644 --- a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_av1c.mp4.1.dump +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_av1c.mp4.1.dump @@ -11,6 +11,8 @@ track 0: sample count = 30 track duration = 1000000 format 0: + averageBitrate = 7536 + peakBitrate = 7536 id = 1 containerMimeType = video/mp4 sampleMimeType = video/av01 diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_av1c.mp4.2.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_av1c.mp4.2.dump index 16692e6284..b6bb0fa25d 100644 --- a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_av1c.mp4.2.dump +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_av1c.mp4.2.dump @@ -11,6 +11,8 @@ track 0: sample count = 30 track duration = 1000000 format 0: + averageBitrate = 7536 + peakBitrate = 7536 id = 1 containerMimeType = video/mp4 sampleMimeType = video/av01 diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_av1c.mp4.3.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_av1c.mp4.3.dump index 16692e6284..b6bb0fa25d 100644 --- a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_av1c.mp4.3.dump +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_av1c.mp4.3.dump @@ -11,6 +11,8 @@ track 0: sample count = 30 track duration = 1000000 format 0: + averageBitrate = 7536 + peakBitrate = 7536 id = 1 containerMimeType = video/mp4 sampleMimeType = video/av01 diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_av1c.mp4.reading_within_gop_sample_dependencies.0.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_av1c.mp4.reading_within_gop_sample_dependencies.0.dump index 16692e6284..b6bb0fa25d 100644 --- a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_av1c.mp4.reading_within_gop_sample_dependencies.0.dump +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_av1c.mp4.reading_within_gop_sample_dependencies.0.dump @@ -11,6 +11,8 @@ track 0: sample count = 30 track duration = 1000000 format 0: + averageBitrate = 7536 + peakBitrate = 7536 id = 1 containerMimeType = video/mp4 sampleMimeType = video/av01 diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_av1c.mp4.reading_within_gop_sample_dependencies.1.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_av1c.mp4.reading_within_gop_sample_dependencies.1.dump index 16692e6284..b6bb0fa25d 100644 --- a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_av1c.mp4.reading_within_gop_sample_dependencies.1.dump +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_av1c.mp4.reading_within_gop_sample_dependencies.1.dump @@ -11,6 +11,8 @@ track 0: sample count = 30 track duration = 1000000 format 0: + averageBitrate = 7536 + peakBitrate = 7536 id = 1 containerMimeType = video/mp4 sampleMimeType = video/av01 diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_av1c.mp4.reading_within_gop_sample_dependencies.2.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_av1c.mp4.reading_within_gop_sample_dependencies.2.dump index 16692e6284..b6bb0fa25d 100644 --- a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_av1c.mp4.reading_within_gop_sample_dependencies.2.dump +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_av1c.mp4.reading_within_gop_sample_dependencies.2.dump @@ -11,6 +11,8 @@ track 0: sample count = 30 track duration = 1000000 format 0: + averageBitrate = 7536 + peakBitrate = 7536 id = 1 containerMimeType = video/mp4 sampleMimeType = video/av01 diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_av1c.mp4.reading_within_gop_sample_dependencies.3.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_av1c.mp4.reading_within_gop_sample_dependencies.3.dump index 16692e6284..b6bb0fa25d 100644 --- a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_av1c.mp4.reading_within_gop_sample_dependencies.3.dump +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_av1c.mp4.reading_within_gop_sample_dependencies.3.dump @@ -11,6 +11,8 @@ track 0: sample count = 30 track duration = 1000000 format 0: + averageBitrate = 7536 + peakBitrate = 7536 id = 1 containerMimeType = video/mp4 sampleMimeType = video/av01 diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_av1c.mp4.reading_within_gop_sample_dependencies.unknown_length.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_av1c.mp4.reading_within_gop_sample_dependencies.unknown_length.dump index 16692e6284..b6bb0fa25d 100644 --- a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_av1c.mp4.reading_within_gop_sample_dependencies.unknown_length.dump +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_av1c.mp4.reading_within_gop_sample_dependencies.unknown_length.dump @@ -11,6 +11,8 @@ track 0: sample count = 30 track duration = 1000000 format 0: + averageBitrate = 7536 + peakBitrate = 7536 id = 1 containerMimeType = video/mp4 sampleMimeType = video/av01 diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_av1c.mp4.unknown_length.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_av1c.mp4.unknown_length.dump index 16692e6284..b6bb0fa25d 100644 --- a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_av1c.mp4.unknown_length.dump +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_av1c.mp4.unknown_length.dump @@ -11,6 +11,8 @@ track 0: sample count = 30 track duration = 1000000 format 0: + averageBitrate = 7536 + peakBitrate = 7536 id = 1 containerMimeType = video/mp4 sampleMimeType = video/av01 diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_btrt.mp4.0.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_btrt.mp4.0.dump new file mode 100644 index 0000000000..db9b2132fe --- /dev/null +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_btrt.mp4.0.dump @@ -0,0 +1,350 @@ +seekMap: + isSeekable = true + duration = 1089000 + getPosition(0) = [[timeUs=0, position=48]] + getPosition(1) = [[timeUs=0, position=48]] + getPosition(544500) = [[timeUs=0, position=48]] + getPosition(1089000) = [[timeUs=0, position=48]] +numberOfTracks = 2 +track 0: + total output bytes = 89876 + sample count = 30 + track duration = 1001000 + format 0: + averageBitrate = 718289 + peakBitrate = 718289 + 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=[Lavf61.7.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 C98BC6A8 + sample 29: + time = 934266 + flags = 536870912 + data = length 568, hash 4FE5C8EA +track 1: + total output bytes = 9529 + sample count = 45 + track duration = 1089000 + format 0: + averageBitrate = 72956 + peakBitrate = 74502 + id = 2 + containerMimeType = video/mp4 + sampleMimeType = audio/mp4a-latm + codecs = mp4a.40.2 + maxInputSize = 294 + channelCount = 1 + sampleRate = 44100 + language = und + metadata = entries=[TSSE: description=null: values=[Lavf61.7.100], Mp4Timestamp: creation time=0, modification time=0, timescale=1000] + initializationData: + data = length 2, hash 5F7 + sample 0: + time = 43000 + flags = 1 + data = length 23, hash 47DE9131 + sample 1: + time = 66219 + flags = 1 + data = length 6, hash 31EC5206 + sample 2: + time = 89439 + flags = 1 + data = length 148, hash 894A176B + sample 3: + time = 112659 + flags = 1 + data = length 189, hash CEF235A1 + sample 4: + time = 135879 + flags = 1 + data = length 205, hash BBF5F7B0 + sample 5: + time = 159099 + flags = 1 + data = length 210, hash F278B193 + sample 6: + time = 182319 + flags = 1 + data = length 210, hash 82DA1589 + sample 7: + time = 205539 + flags = 1 + data = length 207, hash 5BE231DF + sample 8: + time = 228759 + flags = 1 + data = length 225, hash 18819EE1 + sample 9: + time = 251979 + flags = 1 + data = length 215, hash CA7FA67B + sample 10: + time = 275199 + flags = 1 + data = length 211, hash 581A1C18 + sample 11: + time = 298419 + flags = 1 + data = length 216, hash ADB88187 + sample 12: + time = 321639 + flags = 1 + data = length 229, hash 2E8BA4DC + sample 13: + time = 344859 + flags = 1 + data = length 232, hash 22F0C510 + sample 14: + time = 368079 + flags = 1 + data = length 235, hash 867AD0DC + sample 15: + time = 391299 + flags = 1 + data = length 231, hash 84E823A8 + sample 16: + time = 414519 + flags = 1 + data = length 226, hash 1BEF3A95 + sample 17: + time = 437739 + flags = 1 + data = length 216, hash EAA345AE + sample 18: + time = 460959 + flags = 1 + data = length 229, hash 6957411F + sample 19: + time = 484179 + flags = 1 + data = length 219, hash 41275022 + sample 20: + time = 507399 + flags = 1 + data = length 241, hash 6495DF96 + sample 21: + time = 530619 + flags = 1 + data = length 228, hash 63D95906 + sample 22: + time = 553839 + flags = 1 + data = length 238, hash 34F676F9 + sample 23: + time = 577058 + flags = 1 + data = length 234, hash E5CBC045 + sample 24: + time = 600278 + flags = 1 + data = length 231, hash 5FC43661 + sample 25: + time = 623498 + flags = 1 + data = length 217, hash 682708ED + sample 26: + time = 646718 + flags = 1 + data = length 239, hash D43780FC + sample 27: + time = 669938 + flags = 1 + data = length 243, hash C5E17980 + sample 28: + time = 693158 + flags = 1 + data = length 231, hash AC5837BA + sample 29: + time = 716378 + flags = 1 + data = length 230, hash 169EE895 + sample 30: + time = 739598 + flags = 1 + data = length 238, hash C48FF3F1 + sample 31: + time = 762818 + flags = 1 + data = length 225, hash 531E4599 + sample 32: + time = 786038 + flags = 1 + data = length 232, hash CB3C6B8D + sample 33: + time = 809258 + flags = 1 + data = length 243, hash F8C94C7 + sample 34: + time = 832478 + flags = 1 + data = length 232, hash A646A7D0 + sample 35: + time = 855698 + flags = 1 + data = length 237, hash E8B787A5 + sample 36: + time = 878918 + flags = 1 + data = length 228, hash 3FA7A29F + sample 37: + time = 902138 + flags = 1 + data = length 235, hash B9B33B0A + sample 38: + time = 925358 + flags = 1 + data = length 264, hash 71A4869E + sample 39: + time = 948578 + flags = 1 + data = length 257, hash D049B54C + sample 40: + time = 971798 + flags = 1 + data = length 227, hash 66757231 + sample 41: + time = 995018 + flags = 1 + data = length 227, hash BD374F1B + sample 42: + time = 1018238 + flags = 1 + data = length 235, hash 999477F6 + sample 43: + time = 1041458 + flags = 1 + data = length 229, hash FFF98DF0 + sample 44: + time = 1064678 + flags = 536870913 + data = length 6, hash 31B22286 +tracksEnded = true diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_btrt.mp4.1.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_btrt.mp4.1.dump new file mode 100644 index 0000000000..1ecc1ee320 --- /dev/null +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_btrt.mp4.1.dump @@ -0,0 +1,298 @@ +seekMap: + isSeekable = true + duration = 1089000 + getPosition(0) = [[timeUs=0, position=48]] + getPosition(1) = [[timeUs=0, position=48]] + getPosition(544500) = [[timeUs=0, position=48]] + getPosition(1089000) = [[timeUs=0, position=48]] +numberOfTracks = 2 +track 0: + total output bytes = 89876 + sample count = 30 + track duration = 1001000 + format 0: + averageBitrate = 718289 + peakBitrate = 718289 + 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=[Lavf61.7.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 C98BC6A8 + sample 29: + time = 934266 + flags = 536870912 + data = length 568, hash 4FE5C8EA +track 1: + total output bytes = 7235 + sample count = 32 + track duration = 1089000 + format 0: + averageBitrate = 72956 + peakBitrate = 74502 + id = 2 + containerMimeType = video/mp4 + sampleMimeType = audio/mp4a-latm + codecs = mp4a.40.2 + maxInputSize = 294 + channelCount = 1 + sampleRate = 44100 + language = und + metadata = entries=[TSSE: description=null: values=[Lavf61.7.100], Mp4Timestamp: creation time=0, modification time=0, timescale=1000] + initializationData: + data = length 2, hash 5F7 + sample 0: + time = 344859 + flags = 1 + data = length 232, hash 22F0C510 + sample 1: + time = 368079 + flags = 1 + data = length 235, hash 867AD0DC + sample 2: + time = 391299 + flags = 1 + data = length 231, hash 84E823A8 + sample 3: + time = 414519 + flags = 1 + data = length 226, hash 1BEF3A95 + sample 4: + time = 437739 + flags = 1 + data = length 216, hash EAA345AE + sample 5: + time = 460959 + flags = 1 + data = length 229, hash 6957411F + sample 6: + time = 484179 + flags = 1 + data = length 219, hash 41275022 + sample 7: + time = 507399 + flags = 1 + data = length 241, hash 6495DF96 + sample 8: + time = 530619 + flags = 1 + data = length 228, hash 63D95906 + sample 9: + time = 553839 + flags = 1 + data = length 238, hash 34F676F9 + sample 10: + time = 577058 + flags = 1 + data = length 234, hash E5CBC045 + sample 11: + time = 600278 + flags = 1 + data = length 231, hash 5FC43661 + sample 12: + time = 623498 + flags = 1 + data = length 217, hash 682708ED + sample 13: + time = 646718 + flags = 1 + data = length 239, hash D43780FC + sample 14: + time = 669938 + flags = 1 + data = length 243, hash C5E17980 + sample 15: + time = 693158 + flags = 1 + data = length 231, hash AC5837BA + sample 16: + time = 716378 + flags = 1 + data = length 230, hash 169EE895 + sample 17: + time = 739598 + flags = 1 + data = length 238, hash C48FF3F1 + sample 18: + time = 762818 + flags = 1 + data = length 225, hash 531E4599 + sample 19: + time = 786038 + flags = 1 + data = length 232, hash CB3C6B8D + sample 20: + time = 809258 + flags = 1 + data = length 243, hash F8C94C7 + sample 21: + time = 832478 + flags = 1 + data = length 232, hash A646A7D0 + sample 22: + time = 855698 + flags = 1 + data = length 237, hash E8B787A5 + sample 23: + time = 878918 + flags = 1 + data = length 228, hash 3FA7A29F + sample 24: + time = 902138 + flags = 1 + data = length 235, hash B9B33B0A + sample 25: + time = 925358 + flags = 1 + data = length 264, hash 71A4869E + sample 26: + time = 948578 + flags = 1 + data = length 257, hash D049B54C + sample 27: + time = 971798 + flags = 1 + data = length 227, hash 66757231 + sample 28: + time = 995018 + flags = 1 + data = length 227, hash BD374F1B + sample 29: + time = 1018238 + flags = 1 + data = length 235, hash 999477F6 + sample 30: + time = 1041458 + flags = 1 + data = length 229, hash FFF98DF0 + sample 31: + time = 1064678 + flags = 536870913 + data = length 6, hash 31B22286 +tracksEnded = true diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_btrt.mp4.2.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_btrt.mp4.2.dump new file mode 100644 index 0000000000..e5fb82301b --- /dev/null +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_btrt.mp4.2.dump @@ -0,0 +1,234 @@ +seekMap: + isSeekable = true + duration = 1089000 + getPosition(0) = [[timeUs=0, position=48]] + getPosition(1) = [[timeUs=0, position=48]] + getPosition(544500) = [[timeUs=0, position=48]] + getPosition(1089000) = [[timeUs=0, position=48]] +numberOfTracks = 2 +track 0: + total output bytes = 89876 + sample count = 30 + track duration = 1001000 + format 0: + averageBitrate = 718289 + peakBitrate = 718289 + 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=[Lavf61.7.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 C98BC6A8 + sample 29: + time = 934266 + flags = 536870912 + data = length 568, hash 4FE5C8EA +track 1: + total output bytes = 3545 + sample count = 16 + track duration = 1089000 + format 0: + averageBitrate = 72956 + peakBitrate = 74502 + id = 2 + containerMimeType = video/mp4 + sampleMimeType = audio/mp4a-latm + codecs = mp4a.40.2 + maxInputSize = 294 + channelCount = 1 + sampleRate = 44100 + language = und + metadata = entries=[TSSE: description=null: values=[Lavf61.7.100], Mp4Timestamp: creation time=0, modification time=0, timescale=1000] + initializationData: + data = length 2, hash 5F7 + sample 0: + time = 716378 + flags = 1 + data = length 230, hash 169EE895 + sample 1: + time = 739598 + flags = 1 + data = length 238, hash C48FF3F1 + sample 2: + time = 762818 + flags = 1 + data = length 225, hash 531E4599 + sample 3: + time = 786038 + flags = 1 + data = length 232, hash CB3C6B8D + sample 4: + time = 809258 + flags = 1 + data = length 243, hash F8C94C7 + sample 5: + time = 832478 + flags = 1 + data = length 232, hash A646A7D0 + sample 6: + time = 855698 + flags = 1 + data = length 237, hash E8B787A5 + sample 7: + time = 878918 + flags = 1 + data = length 228, hash 3FA7A29F + sample 8: + time = 902138 + flags = 1 + data = length 235, hash B9B33B0A + sample 9: + time = 925358 + flags = 1 + data = length 264, hash 71A4869E + sample 10: + time = 948578 + flags = 1 + data = length 257, hash D049B54C + sample 11: + time = 971798 + flags = 1 + data = length 227, hash 66757231 + sample 12: + time = 995018 + flags = 1 + data = length 227, hash BD374F1B + sample 13: + time = 1018238 + flags = 1 + data = length 235, hash 999477F6 + sample 14: + time = 1041458 + flags = 1 + data = length 229, hash FFF98DF0 + sample 15: + time = 1064678 + flags = 536870913 + data = length 6, hash 31B22286 +tracksEnded = true diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_btrt.mp4.3.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_btrt.mp4.3.dump new file mode 100644 index 0000000000..722633bf65 --- /dev/null +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_btrt.mp4.3.dump @@ -0,0 +1,174 @@ +seekMap: + isSeekable = true + duration = 1089000 + getPosition(0) = [[timeUs=0, position=48]] + getPosition(1) = [[timeUs=0, position=48]] + getPosition(544500) = [[timeUs=0, position=48]] + getPosition(1089000) = [[timeUs=0, position=48]] +numberOfTracks = 2 +track 0: + total output bytes = 89876 + sample count = 30 + track duration = 1001000 + format 0: + averageBitrate = 718289 + peakBitrate = 718289 + 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=[Lavf61.7.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 C98BC6A8 + sample 29: + time = 934266 + flags = 536870912 + data = length 568, hash 4FE5C8EA +track 1: + total output bytes = 6 + sample count = 1 + track duration = 1089000 + format 0: + averageBitrate = 72956 + peakBitrate = 74502 + id = 2 + containerMimeType = video/mp4 + sampleMimeType = audio/mp4a-latm + codecs = mp4a.40.2 + maxInputSize = 294 + channelCount = 1 + sampleRate = 44100 + language = und + metadata = entries=[TSSE: description=null: values=[Lavf61.7.100], Mp4Timestamp: creation time=0, modification time=0, timescale=1000] + initializationData: + data = length 2, hash 5F7 + sample 0: + time = 1064678 + flags = 536870913 + data = length 6, hash 31B22286 +tracksEnded = true diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_btrt.mp4.reading_within_gop_sample_dependencies.0.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_btrt.mp4.reading_within_gop_sample_dependencies.0.dump new file mode 100644 index 0000000000..768f9f8e60 --- /dev/null +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_btrt.mp4.reading_within_gop_sample_dependencies.0.dump @@ -0,0 +1,350 @@ +seekMap: + isSeekable = true + duration = 1089000 + getPosition(0) = [[timeUs=0, position=48]] + getPosition(1) = [[timeUs=0, position=48]] + getPosition(544500) = [[timeUs=0, position=48]] + getPosition(1089000) = [[timeUs=0, position=48]] +numberOfTracks = 2 +track 0: + total output bytes = 89876 + sample count = 30 + track duration = 1001000 + format 0: + averageBitrate = 718289 + peakBitrate = 718289 + 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=[Lavf61.7.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 C98BC6A8 + sample 29: + time = 934266 + flags = 603979776 + data = length 568, hash 4FE5C8EA +track 1: + total output bytes = 9529 + sample count = 45 + track duration = 1089000 + format 0: + averageBitrate = 72956 + peakBitrate = 74502 + id = 2 + containerMimeType = video/mp4 + sampleMimeType = audio/mp4a-latm + codecs = mp4a.40.2 + maxInputSize = 294 + channelCount = 1 + sampleRate = 44100 + language = und + metadata = entries=[TSSE: description=null: values=[Lavf61.7.100], Mp4Timestamp: creation time=0, modification time=0, timescale=1000] + initializationData: + data = length 2, hash 5F7 + sample 0: + time = 43000 + flags = 1 + data = length 23, hash 47DE9131 + sample 1: + time = 66219 + flags = 1 + data = length 6, hash 31EC5206 + sample 2: + time = 89439 + flags = 1 + data = length 148, hash 894A176B + sample 3: + time = 112659 + flags = 1 + data = length 189, hash CEF235A1 + sample 4: + time = 135879 + flags = 1 + data = length 205, hash BBF5F7B0 + sample 5: + time = 159099 + flags = 1 + data = length 210, hash F278B193 + sample 6: + time = 182319 + flags = 1 + data = length 210, hash 82DA1589 + sample 7: + time = 205539 + flags = 1 + data = length 207, hash 5BE231DF + sample 8: + time = 228759 + flags = 1 + data = length 225, hash 18819EE1 + sample 9: + time = 251979 + flags = 1 + data = length 215, hash CA7FA67B + sample 10: + time = 275199 + flags = 1 + data = length 211, hash 581A1C18 + sample 11: + time = 298419 + flags = 1 + data = length 216, hash ADB88187 + sample 12: + time = 321639 + flags = 1 + data = length 229, hash 2E8BA4DC + sample 13: + time = 344859 + flags = 1 + data = length 232, hash 22F0C510 + sample 14: + time = 368079 + flags = 1 + data = length 235, hash 867AD0DC + sample 15: + time = 391299 + flags = 1 + data = length 231, hash 84E823A8 + sample 16: + time = 414519 + flags = 1 + data = length 226, hash 1BEF3A95 + sample 17: + time = 437739 + flags = 1 + data = length 216, hash EAA345AE + sample 18: + time = 460959 + flags = 1 + data = length 229, hash 6957411F + sample 19: + time = 484179 + flags = 1 + data = length 219, hash 41275022 + sample 20: + time = 507399 + flags = 1 + data = length 241, hash 6495DF96 + sample 21: + time = 530619 + flags = 1 + data = length 228, hash 63D95906 + sample 22: + time = 553839 + flags = 1 + data = length 238, hash 34F676F9 + sample 23: + time = 577058 + flags = 1 + data = length 234, hash E5CBC045 + sample 24: + time = 600278 + flags = 1 + data = length 231, hash 5FC43661 + sample 25: + time = 623498 + flags = 1 + data = length 217, hash 682708ED + sample 26: + time = 646718 + flags = 1 + data = length 239, hash D43780FC + sample 27: + time = 669938 + flags = 1 + data = length 243, hash C5E17980 + sample 28: + time = 693158 + flags = 1 + data = length 231, hash AC5837BA + sample 29: + time = 716378 + flags = 1 + data = length 230, hash 169EE895 + sample 30: + time = 739598 + flags = 1 + data = length 238, hash C48FF3F1 + sample 31: + time = 762818 + flags = 1 + data = length 225, hash 531E4599 + sample 32: + time = 786038 + flags = 1 + data = length 232, hash CB3C6B8D + sample 33: + time = 809258 + flags = 1 + data = length 243, hash F8C94C7 + sample 34: + time = 832478 + flags = 1 + data = length 232, hash A646A7D0 + sample 35: + time = 855698 + flags = 1 + data = length 237, hash E8B787A5 + sample 36: + time = 878918 + flags = 1 + data = length 228, hash 3FA7A29F + sample 37: + time = 902138 + flags = 1 + data = length 235, hash B9B33B0A + sample 38: + time = 925358 + flags = 1 + data = length 264, hash 71A4869E + sample 39: + time = 948578 + flags = 1 + data = length 257, hash D049B54C + sample 40: + time = 971798 + flags = 1 + data = length 227, hash 66757231 + sample 41: + time = 995018 + flags = 1 + data = length 227, hash BD374F1B + sample 42: + time = 1018238 + flags = 1 + data = length 235, hash 999477F6 + sample 43: + time = 1041458 + flags = 1 + data = length 229, hash FFF98DF0 + sample 44: + time = 1064678 + flags = 536870913 + data = length 6, hash 31B22286 +tracksEnded = true diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_btrt.mp4.reading_within_gop_sample_dependencies.1.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_btrt.mp4.reading_within_gop_sample_dependencies.1.dump new file mode 100644 index 0000000000..e1b7d16a54 --- /dev/null +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_btrt.mp4.reading_within_gop_sample_dependencies.1.dump @@ -0,0 +1,298 @@ +seekMap: + isSeekable = true + duration = 1089000 + getPosition(0) = [[timeUs=0, position=48]] + getPosition(1) = [[timeUs=0, position=48]] + getPosition(544500) = [[timeUs=0, position=48]] + getPosition(1089000) = [[timeUs=0, position=48]] +numberOfTracks = 2 +track 0: + total output bytes = 89876 + sample count = 30 + track duration = 1001000 + format 0: + averageBitrate = 718289 + peakBitrate = 718289 + 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=[Lavf61.7.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 C98BC6A8 + sample 29: + time = 934266 + flags = 603979776 + data = length 568, hash 4FE5C8EA +track 1: + total output bytes = 7235 + sample count = 32 + track duration = 1089000 + format 0: + averageBitrate = 72956 + peakBitrate = 74502 + id = 2 + containerMimeType = video/mp4 + sampleMimeType = audio/mp4a-latm + codecs = mp4a.40.2 + maxInputSize = 294 + channelCount = 1 + sampleRate = 44100 + language = und + metadata = entries=[TSSE: description=null: values=[Lavf61.7.100], Mp4Timestamp: creation time=0, modification time=0, timescale=1000] + initializationData: + data = length 2, hash 5F7 + sample 0: + time = 344859 + flags = 1 + data = length 232, hash 22F0C510 + sample 1: + time = 368079 + flags = 1 + data = length 235, hash 867AD0DC + sample 2: + time = 391299 + flags = 1 + data = length 231, hash 84E823A8 + sample 3: + time = 414519 + flags = 1 + data = length 226, hash 1BEF3A95 + sample 4: + time = 437739 + flags = 1 + data = length 216, hash EAA345AE + sample 5: + time = 460959 + flags = 1 + data = length 229, hash 6957411F + sample 6: + time = 484179 + flags = 1 + data = length 219, hash 41275022 + sample 7: + time = 507399 + flags = 1 + data = length 241, hash 6495DF96 + sample 8: + time = 530619 + flags = 1 + data = length 228, hash 63D95906 + sample 9: + time = 553839 + flags = 1 + data = length 238, hash 34F676F9 + sample 10: + time = 577058 + flags = 1 + data = length 234, hash E5CBC045 + sample 11: + time = 600278 + flags = 1 + data = length 231, hash 5FC43661 + sample 12: + time = 623498 + flags = 1 + data = length 217, hash 682708ED + sample 13: + time = 646718 + flags = 1 + data = length 239, hash D43780FC + sample 14: + time = 669938 + flags = 1 + data = length 243, hash C5E17980 + sample 15: + time = 693158 + flags = 1 + data = length 231, hash AC5837BA + sample 16: + time = 716378 + flags = 1 + data = length 230, hash 169EE895 + sample 17: + time = 739598 + flags = 1 + data = length 238, hash C48FF3F1 + sample 18: + time = 762818 + flags = 1 + data = length 225, hash 531E4599 + sample 19: + time = 786038 + flags = 1 + data = length 232, hash CB3C6B8D + sample 20: + time = 809258 + flags = 1 + data = length 243, hash F8C94C7 + sample 21: + time = 832478 + flags = 1 + data = length 232, hash A646A7D0 + sample 22: + time = 855698 + flags = 1 + data = length 237, hash E8B787A5 + sample 23: + time = 878918 + flags = 1 + data = length 228, hash 3FA7A29F + sample 24: + time = 902138 + flags = 1 + data = length 235, hash B9B33B0A + sample 25: + time = 925358 + flags = 1 + data = length 264, hash 71A4869E + sample 26: + time = 948578 + flags = 1 + data = length 257, hash D049B54C + sample 27: + time = 971798 + flags = 1 + data = length 227, hash 66757231 + sample 28: + time = 995018 + flags = 1 + data = length 227, hash BD374F1B + sample 29: + time = 1018238 + flags = 1 + data = length 235, hash 999477F6 + sample 30: + time = 1041458 + flags = 1 + data = length 229, hash FFF98DF0 + sample 31: + time = 1064678 + flags = 536870913 + data = length 6, hash 31B22286 +tracksEnded = true diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_btrt.mp4.reading_within_gop_sample_dependencies.2.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_btrt.mp4.reading_within_gop_sample_dependencies.2.dump new file mode 100644 index 0000000000..262c8795f2 --- /dev/null +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_btrt.mp4.reading_within_gop_sample_dependencies.2.dump @@ -0,0 +1,234 @@ +seekMap: + isSeekable = true + duration = 1089000 + getPosition(0) = [[timeUs=0, position=48]] + getPosition(1) = [[timeUs=0, position=48]] + getPosition(544500) = [[timeUs=0, position=48]] + getPosition(1089000) = [[timeUs=0, position=48]] +numberOfTracks = 2 +track 0: + total output bytes = 89876 + sample count = 30 + track duration = 1001000 + format 0: + averageBitrate = 718289 + peakBitrate = 718289 + 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=[Lavf61.7.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 C98BC6A8 + sample 29: + time = 934266 + flags = 603979776 + data = length 568, hash 4FE5C8EA +track 1: + total output bytes = 3545 + sample count = 16 + track duration = 1089000 + format 0: + averageBitrate = 72956 + peakBitrate = 74502 + id = 2 + containerMimeType = video/mp4 + sampleMimeType = audio/mp4a-latm + codecs = mp4a.40.2 + maxInputSize = 294 + channelCount = 1 + sampleRate = 44100 + language = und + metadata = entries=[TSSE: description=null: values=[Lavf61.7.100], Mp4Timestamp: creation time=0, modification time=0, timescale=1000] + initializationData: + data = length 2, hash 5F7 + sample 0: + time = 716378 + flags = 1 + data = length 230, hash 169EE895 + sample 1: + time = 739598 + flags = 1 + data = length 238, hash C48FF3F1 + sample 2: + time = 762818 + flags = 1 + data = length 225, hash 531E4599 + sample 3: + time = 786038 + flags = 1 + data = length 232, hash CB3C6B8D + sample 4: + time = 809258 + flags = 1 + data = length 243, hash F8C94C7 + sample 5: + time = 832478 + flags = 1 + data = length 232, hash A646A7D0 + sample 6: + time = 855698 + flags = 1 + data = length 237, hash E8B787A5 + sample 7: + time = 878918 + flags = 1 + data = length 228, hash 3FA7A29F + sample 8: + time = 902138 + flags = 1 + data = length 235, hash B9B33B0A + sample 9: + time = 925358 + flags = 1 + data = length 264, hash 71A4869E + sample 10: + time = 948578 + flags = 1 + data = length 257, hash D049B54C + sample 11: + time = 971798 + flags = 1 + data = length 227, hash 66757231 + sample 12: + time = 995018 + flags = 1 + data = length 227, hash BD374F1B + sample 13: + time = 1018238 + flags = 1 + data = length 235, hash 999477F6 + sample 14: + time = 1041458 + flags = 1 + data = length 229, hash FFF98DF0 + sample 15: + time = 1064678 + flags = 536870913 + data = length 6, hash 31B22286 +tracksEnded = true diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_btrt.mp4.reading_within_gop_sample_dependencies.3.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_btrt.mp4.reading_within_gop_sample_dependencies.3.dump new file mode 100644 index 0000000000..4e0ce712d0 --- /dev/null +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_btrt.mp4.reading_within_gop_sample_dependencies.3.dump @@ -0,0 +1,174 @@ +seekMap: + isSeekable = true + duration = 1089000 + getPosition(0) = [[timeUs=0, position=48]] + getPosition(1) = [[timeUs=0, position=48]] + getPosition(544500) = [[timeUs=0, position=48]] + getPosition(1089000) = [[timeUs=0, position=48]] +numberOfTracks = 2 +track 0: + total output bytes = 89876 + sample count = 30 + track duration = 1001000 + format 0: + averageBitrate = 718289 + peakBitrate = 718289 + 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=[Lavf61.7.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 C98BC6A8 + sample 29: + time = 934266 + flags = 603979776 + data = length 568, hash 4FE5C8EA +track 1: + total output bytes = 6 + sample count = 1 + track duration = 1089000 + format 0: + averageBitrate = 72956 + peakBitrate = 74502 + id = 2 + containerMimeType = video/mp4 + sampleMimeType = audio/mp4a-latm + codecs = mp4a.40.2 + maxInputSize = 294 + channelCount = 1 + sampleRate = 44100 + language = und + metadata = entries=[TSSE: description=null: values=[Lavf61.7.100], Mp4Timestamp: creation time=0, modification time=0, timescale=1000] + initializationData: + data = length 2, hash 5F7 + sample 0: + time = 1064678 + flags = 536870913 + data = length 6, hash 31B22286 +tracksEnded = true diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_btrt.mp4.reading_within_gop_sample_dependencies.unknown_length.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_btrt.mp4.reading_within_gop_sample_dependencies.unknown_length.dump new file mode 100644 index 0000000000..768f9f8e60 --- /dev/null +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_btrt.mp4.reading_within_gop_sample_dependencies.unknown_length.dump @@ -0,0 +1,350 @@ +seekMap: + isSeekable = true + duration = 1089000 + getPosition(0) = [[timeUs=0, position=48]] + getPosition(1) = [[timeUs=0, position=48]] + getPosition(544500) = [[timeUs=0, position=48]] + getPosition(1089000) = [[timeUs=0, position=48]] +numberOfTracks = 2 +track 0: + total output bytes = 89876 + sample count = 30 + track duration = 1001000 + format 0: + averageBitrate = 718289 + peakBitrate = 718289 + 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=[Lavf61.7.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 C98BC6A8 + sample 29: + time = 934266 + flags = 603979776 + data = length 568, hash 4FE5C8EA +track 1: + total output bytes = 9529 + sample count = 45 + track duration = 1089000 + format 0: + averageBitrate = 72956 + peakBitrate = 74502 + id = 2 + containerMimeType = video/mp4 + sampleMimeType = audio/mp4a-latm + codecs = mp4a.40.2 + maxInputSize = 294 + channelCount = 1 + sampleRate = 44100 + language = und + metadata = entries=[TSSE: description=null: values=[Lavf61.7.100], Mp4Timestamp: creation time=0, modification time=0, timescale=1000] + initializationData: + data = length 2, hash 5F7 + sample 0: + time = 43000 + flags = 1 + data = length 23, hash 47DE9131 + sample 1: + time = 66219 + flags = 1 + data = length 6, hash 31EC5206 + sample 2: + time = 89439 + flags = 1 + data = length 148, hash 894A176B + sample 3: + time = 112659 + flags = 1 + data = length 189, hash CEF235A1 + sample 4: + time = 135879 + flags = 1 + data = length 205, hash BBF5F7B0 + sample 5: + time = 159099 + flags = 1 + data = length 210, hash F278B193 + sample 6: + time = 182319 + flags = 1 + data = length 210, hash 82DA1589 + sample 7: + time = 205539 + flags = 1 + data = length 207, hash 5BE231DF + sample 8: + time = 228759 + flags = 1 + data = length 225, hash 18819EE1 + sample 9: + time = 251979 + flags = 1 + data = length 215, hash CA7FA67B + sample 10: + time = 275199 + flags = 1 + data = length 211, hash 581A1C18 + sample 11: + time = 298419 + flags = 1 + data = length 216, hash ADB88187 + sample 12: + time = 321639 + flags = 1 + data = length 229, hash 2E8BA4DC + sample 13: + time = 344859 + flags = 1 + data = length 232, hash 22F0C510 + sample 14: + time = 368079 + flags = 1 + data = length 235, hash 867AD0DC + sample 15: + time = 391299 + flags = 1 + data = length 231, hash 84E823A8 + sample 16: + time = 414519 + flags = 1 + data = length 226, hash 1BEF3A95 + sample 17: + time = 437739 + flags = 1 + data = length 216, hash EAA345AE + sample 18: + time = 460959 + flags = 1 + data = length 229, hash 6957411F + sample 19: + time = 484179 + flags = 1 + data = length 219, hash 41275022 + sample 20: + time = 507399 + flags = 1 + data = length 241, hash 6495DF96 + sample 21: + time = 530619 + flags = 1 + data = length 228, hash 63D95906 + sample 22: + time = 553839 + flags = 1 + data = length 238, hash 34F676F9 + sample 23: + time = 577058 + flags = 1 + data = length 234, hash E5CBC045 + sample 24: + time = 600278 + flags = 1 + data = length 231, hash 5FC43661 + sample 25: + time = 623498 + flags = 1 + data = length 217, hash 682708ED + sample 26: + time = 646718 + flags = 1 + data = length 239, hash D43780FC + sample 27: + time = 669938 + flags = 1 + data = length 243, hash C5E17980 + sample 28: + time = 693158 + flags = 1 + data = length 231, hash AC5837BA + sample 29: + time = 716378 + flags = 1 + data = length 230, hash 169EE895 + sample 30: + time = 739598 + flags = 1 + data = length 238, hash C48FF3F1 + sample 31: + time = 762818 + flags = 1 + data = length 225, hash 531E4599 + sample 32: + time = 786038 + flags = 1 + data = length 232, hash CB3C6B8D + sample 33: + time = 809258 + flags = 1 + data = length 243, hash F8C94C7 + sample 34: + time = 832478 + flags = 1 + data = length 232, hash A646A7D0 + sample 35: + time = 855698 + flags = 1 + data = length 237, hash E8B787A5 + sample 36: + time = 878918 + flags = 1 + data = length 228, hash 3FA7A29F + sample 37: + time = 902138 + flags = 1 + data = length 235, hash B9B33B0A + sample 38: + time = 925358 + flags = 1 + data = length 264, hash 71A4869E + sample 39: + time = 948578 + flags = 1 + data = length 257, hash D049B54C + sample 40: + time = 971798 + flags = 1 + data = length 227, hash 66757231 + sample 41: + time = 995018 + flags = 1 + data = length 227, hash BD374F1B + sample 42: + time = 1018238 + flags = 1 + data = length 235, hash 999477F6 + sample 43: + time = 1041458 + flags = 1 + data = length 229, hash FFF98DF0 + sample 44: + time = 1064678 + flags = 536870913 + data = length 6, hash 31B22286 +tracksEnded = true diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_btrt.mp4.unknown_length.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_btrt.mp4.unknown_length.dump new file mode 100644 index 0000000000..db9b2132fe --- /dev/null +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_btrt.mp4.unknown_length.dump @@ -0,0 +1,350 @@ +seekMap: + isSeekable = true + duration = 1089000 + getPosition(0) = [[timeUs=0, position=48]] + getPosition(1) = [[timeUs=0, position=48]] + getPosition(544500) = [[timeUs=0, position=48]] + getPosition(1089000) = [[timeUs=0, position=48]] +numberOfTracks = 2 +track 0: + total output bytes = 89876 + sample count = 30 + track duration = 1001000 + format 0: + averageBitrate = 718289 + peakBitrate = 718289 + 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=[Lavf61.7.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 C98BC6A8 + sample 29: + time = 934266 + flags = 536870912 + data = length 568, hash 4FE5C8EA +track 1: + total output bytes = 9529 + sample count = 45 + track duration = 1089000 + format 0: + averageBitrate = 72956 + peakBitrate = 74502 + id = 2 + containerMimeType = video/mp4 + sampleMimeType = audio/mp4a-latm + codecs = mp4a.40.2 + maxInputSize = 294 + channelCount = 1 + sampleRate = 44100 + language = und + metadata = entries=[TSSE: description=null: values=[Lavf61.7.100], Mp4Timestamp: creation time=0, modification time=0, timescale=1000] + initializationData: + data = length 2, hash 5F7 + sample 0: + time = 43000 + flags = 1 + data = length 23, hash 47DE9131 + sample 1: + time = 66219 + flags = 1 + data = length 6, hash 31EC5206 + sample 2: + time = 89439 + flags = 1 + data = length 148, hash 894A176B + sample 3: + time = 112659 + flags = 1 + data = length 189, hash CEF235A1 + sample 4: + time = 135879 + flags = 1 + data = length 205, hash BBF5F7B0 + sample 5: + time = 159099 + flags = 1 + data = length 210, hash F278B193 + sample 6: + time = 182319 + flags = 1 + data = length 210, hash 82DA1589 + sample 7: + time = 205539 + flags = 1 + data = length 207, hash 5BE231DF + sample 8: + time = 228759 + flags = 1 + data = length 225, hash 18819EE1 + sample 9: + time = 251979 + flags = 1 + data = length 215, hash CA7FA67B + sample 10: + time = 275199 + flags = 1 + data = length 211, hash 581A1C18 + sample 11: + time = 298419 + flags = 1 + data = length 216, hash ADB88187 + sample 12: + time = 321639 + flags = 1 + data = length 229, hash 2E8BA4DC + sample 13: + time = 344859 + flags = 1 + data = length 232, hash 22F0C510 + sample 14: + time = 368079 + flags = 1 + data = length 235, hash 867AD0DC + sample 15: + time = 391299 + flags = 1 + data = length 231, hash 84E823A8 + sample 16: + time = 414519 + flags = 1 + data = length 226, hash 1BEF3A95 + sample 17: + time = 437739 + flags = 1 + data = length 216, hash EAA345AE + sample 18: + time = 460959 + flags = 1 + data = length 229, hash 6957411F + sample 19: + time = 484179 + flags = 1 + data = length 219, hash 41275022 + sample 20: + time = 507399 + flags = 1 + data = length 241, hash 6495DF96 + sample 21: + time = 530619 + flags = 1 + data = length 228, hash 63D95906 + sample 22: + time = 553839 + flags = 1 + data = length 238, hash 34F676F9 + sample 23: + time = 577058 + flags = 1 + data = length 234, hash E5CBC045 + sample 24: + time = 600278 + flags = 1 + data = length 231, hash 5FC43661 + sample 25: + time = 623498 + flags = 1 + data = length 217, hash 682708ED + sample 26: + time = 646718 + flags = 1 + data = length 239, hash D43780FC + sample 27: + time = 669938 + flags = 1 + data = length 243, hash C5E17980 + sample 28: + time = 693158 + flags = 1 + data = length 231, hash AC5837BA + sample 29: + time = 716378 + flags = 1 + data = length 230, hash 169EE895 + sample 30: + time = 739598 + flags = 1 + data = length 238, hash C48FF3F1 + sample 31: + time = 762818 + flags = 1 + data = length 225, hash 531E4599 + sample 32: + time = 786038 + flags = 1 + data = length 232, hash CB3C6B8D + sample 33: + time = 809258 + flags = 1 + data = length 243, hash F8C94C7 + sample 34: + time = 832478 + flags = 1 + data = length 232, hash A646A7D0 + sample 35: + time = 855698 + flags = 1 + data = length 237, hash E8B787A5 + sample 36: + time = 878918 + flags = 1 + data = length 228, hash 3FA7A29F + sample 37: + time = 902138 + flags = 1 + data = length 235, hash B9B33B0A + sample 38: + time = 925358 + flags = 1 + data = length 264, hash 71A4869E + sample 39: + time = 948578 + flags = 1 + data = length 257, hash D049B54C + sample 40: + time = 971798 + flags = 1 + data = length 227, hash 66757231 + sample 41: + time = 995018 + flags = 1 + data = length 227, hash BD374F1B + sample 42: + time = 1018238 + flags = 1 + data = length 235, hash 999477F6 + sample 43: + time = 1041458 + flags = 1 + data = length 229, hash FFF98DF0 + sample 44: + time = 1064678 + flags = 536870913 + data = length 6, hash 31B22286 +tracksEnded = true diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_colr_mdcv_and_clli.mp4.0.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_colr_mdcv_and_clli.mp4.0.dump index 82ce3d211d..d1db749549 100644 --- a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_colr_mdcv_and_clli.mp4.0.dump +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_colr_mdcv_and_clli.mp4.0.dump @@ -11,6 +11,8 @@ track 0: sample count = 60 track duration = 1001000 format 0: + averageBitrate = 2126601 + peakBitrate = 2514227 id = 1 containerMimeType = video/mp4 sampleMimeType = video/av01 diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_colr_mdcv_and_clli.mp4.1.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_colr_mdcv_and_clli.mp4.1.dump index 6c51b45bd6..188e27ea0b 100644 --- a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_colr_mdcv_and_clli.mp4.1.dump +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_colr_mdcv_and_clli.mp4.1.dump @@ -11,6 +11,8 @@ track 0: sample count = 60 track duration = 1001000 format 0: + averageBitrate = 2126601 + peakBitrate = 2514227 id = 1 containerMimeType = video/mp4 sampleMimeType = video/av01 diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_colr_mdcv_and_clli.mp4.2.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_colr_mdcv_and_clli.mp4.2.dump index c5482fbcbe..fa1dd07cd7 100644 --- a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_colr_mdcv_and_clli.mp4.2.dump +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_colr_mdcv_and_clli.mp4.2.dump @@ -11,6 +11,8 @@ track 0: sample count = 60 track duration = 1001000 format 0: + averageBitrate = 2126601 + peakBitrate = 2514227 id = 1 containerMimeType = video/mp4 sampleMimeType = video/av01 diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_colr_mdcv_and_clli.mp4.3.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_colr_mdcv_and_clli.mp4.3.dump index 322d0da46d..3a7360ae08 100644 --- a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_colr_mdcv_and_clli.mp4.3.dump +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_colr_mdcv_and_clli.mp4.3.dump @@ -11,6 +11,8 @@ track 0: sample count = 60 track duration = 1001000 format 0: + averageBitrate = 2126601 + peakBitrate = 2514227 id = 1 containerMimeType = video/mp4 sampleMimeType = video/av01 diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_colr_mdcv_and_clli.mp4.reading_within_gop_sample_dependencies.0.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_colr_mdcv_and_clli.mp4.reading_within_gop_sample_dependencies.0.dump index 82ce3d211d..d1db749549 100644 --- a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_colr_mdcv_and_clli.mp4.reading_within_gop_sample_dependencies.0.dump +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_colr_mdcv_and_clli.mp4.reading_within_gop_sample_dependencies.0.dump @@ -11,6 +11,8 @@ track 0: sample count = 60 track duration = 1001000 format 0: + averageBitrate = 2126601 + peakBitrate = 2514227 id = 1 containerMimeType = video/mp4 sampleMimeType = video/av01 diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_colr_mdcv_and_clli.mp4.reading_within_gop_sample_dependencies.1.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_colr_mdcv_and_clli.mp4.reading_within_gop_sample_dependencies.1.dump index 6c51b45bd6..188e27ea0b 100644 --- a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_colr_mdcv_and_clli.mp4.reading_within_gop_sample_dependencies.1.dump +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_colr_mdcv_and_clli.mp4.reading_within_gop_sample_dependencies.1.dump @@ -11,6 +11,8 @@ track 0: sample count = 60 track duration = 1001000 format 0: + averageBitrate = 2126601 + peakBitrate = 2514227 id = 1 containerMimeType = video/mp4 sampleMimeType = video/av01 diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_colr_mdcv_and_clli.mp4.reading_within_gop_sample_dependencies.2.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_colr_mdcv_and_clli.mp4.reading_within_gop_sample_dependencies.2.dump index c5482fbcbe..fa1dd07cd7 100644 --- a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_colr_mdcv_and_clli.mp4.reading_within_gop_sample_dependencies.2.dump +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_colr_mdcv_and_clli.mp4.reading_within_gop_sample_dependencies.2.dump @@ -11,6 +11,8 @@ track 0: sample count = 60 track duration = 1001000 format 0: + averageBitrate = 2126601 + peakBitrate = 2514227 id = 1 containerMimeType = video/mp4 sampleMimeType = video/av01 diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_colr_mdcv_and_clli.mp4.reading_within_gop_sample_dependencies.3.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_colr_mdcv_and_clli.mp4.reading_within_gop_sample_dependencies.3.dump index 322d0da46d..3a7360ae08 100644 --- a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_colr_mdcv_and_clli.mp4.reading_within_gop_sample_dependencies.3.dump +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_colr_mdcv_and_clli.mp4.reading_within_gop_sample_dependencies.3.dump @@ -11,6 +11,8 @@ track 0: sample count = 60 track duration = 1001000 format 0: + averageBitrate = 2126601 + peakBitrate = 2514227 id = 1 containerMimeType = video/mp4 sampleMimeType = video/av01 diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_colr_mdcv_and_clli.mp4.reading_within_gop_sample_dependencies.unknown_length.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_colr_mdcv_and_clli.mp4.reading_within_gop_sample_dependencies.unknown_length.dump index 82ce3d211d..d1db749549 100644 --- a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_colr_mdcv_and_clli.mp4.reading_within_gop_sample_dependencies.unknown_length.dump +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_colr_mdcv_and_clli.mp4.reading_within_gop_sample_dependencies.unknown_length.dump @@ -11,6 +11,8 @@ track 0: sample count = 60 track duration = 1001000 format 0: + averageBitrate = 2126601 + peakBitrate = 2514227 id = 1 containerMimeType = video/mp4 sampleMimeType = video/av01 diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_colr_mdcv_and_clli.mp4.unknown_length.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_colr_mdcv_and_clli.mp4.unknown_length.dump index 82ce3d211d..d1db749549 100644 --- a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_colr_mdcv_and_clli.mp4.unknown_length.dump +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_colr_mdcv_and_clli.mp4.unknown_length.dump @@ -11,6 +11,8 @@ track 0: sample count = 60 track duration = 1001000 format 0: + averageBitrate = 2126601 + peakBitrate = 2514227 id = 1 containerMimeType = video/mp4 sampleMimeType = video/av01 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 index a73a901d33..ef29c135fb 100644 --- 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 @@ -11,6 +11,8 @@ track 0: sample count = 30 track duration = 1001000 format 0: + averageBitrate = 718289 + peakBitrate = 718289 id = 1 containerMimeType = video/mp4 sampleMimeType = video/avc 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 index a73a901d33..ef29c135fb 100644 --- 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 @@ -11,6 +11,8 @@ track 0: sample count = 30 track duration = 1001000 format 0: + averageBitrate = 718289 + peakBitrate = 718289 id = 1 containerMimeType = video/mp4 sampleMimeType = video/avc 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 index a73a901d33..ef29c135fb 100644 --- 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 @@ -11,6 +11,8 @@ track 0: sample count = 30 track duration = 1001000 format 0: + averageBitrate = 718289 + peakBitrate = 718289 id = 1 containerMimeType = video/mp4 sampleMimeType = video/avc 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 index a73a901d33..ef29c135fb 100644 --- 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 @@ -11,6 +11,8 @@ track 0: sample count = 30 track duration = 1001000 format 0: + averageBitrate = 718289 + peakBitrate = 718289 id = 1 containerMimeType = video/mp4 sampleMimeType = video/avc 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 index 994a533ace..db2fc85ff1 100644 --- 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 @@ -11,6 +11,8 @@ track 0: sample count = 30 track duration = 1001000 format 0: + averageBitrate = 718289 + peakBitrate = 718289 id = 1 containerMimeType = video/mp4 sampleMimeType = video/avc 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 index 994a533ace..db2fc85ff1 100644 --- 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 @@ -11,6 +11,8 @@ track 0: sample count = 30 track duration = 1001000 format 0: + averageBitrate = 718289 + peakBitrate = 718289 id = 1 containerMimeType = video/mp4 sampleMimeType = video/avc 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 index 994a533ace..db2fc85ff1 100644 --- 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 @@ -11,6 +11,8 @@ track 0: sample count = 30 track duration = 1001000 format 0: + averageBitrate = 718289 + peakBitrate = 718289 id = 1 containerMimeType = video/mp4 sampleMimeType = video/avc 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 index 994a533ace..db2fc85ff1 100644 --- 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 @@ -11,6 +11,8 @@ track 0: sample count = 30 track duration = 1001000 format 0: + averageBitrate = 718289 + peakBitrate = 718289 id = 1 containerMimeType = video/mp4 sampleMimeType = video/avc 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 index 994a533ace..db2fc85ff1 100644 --- 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 @@ -11,6 +11,8 @@ track 0: sample count = 30 track duration = 1001000 format 0: + averageBitrate = 718289 + peakBitrate = 718289 id = 1 containerMimeType = video/mp4 sampleMimeType = video/avc 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 index a73a901d33..ef29c135fb 100644 --- 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 @@ -11,6 +11,8 @@ track 0: sample count = 30 track duration = 1001000 format 0: + averageBitrate = 718289 + peakBitrate = 718289 id = 1 containerMimeType = video/mp4 sampleMimeType = video/avc diff --git a/libraries/test_data/src/test/assets/media/mp4/sample_with_btrt.mp4 b/libraries/test_data/src/test/assets/media/mp4/sample_with_btrt.mp4 new file mode 100644 index 0000000000..2c02ea80b1 Binary files /dev/null and b/libraries/test_data/src/test/assets/media/mp4/sample_with_btrt.mp4 differ diff --git a/libraries/test_data/src/test/assets/transformerdumps/mp3/test-cbr-info-header.mp3/looping_mixedWith_sample_18byte_nclx_colr.mp4.dump b/libraries/test_data/src/test/assets/transformerdumps/mp3/test-cbr-info-header.mp3/looping_mixedWith_sample_18byte_nclx_colr.mp4.dump index eb9db021d3..9a5cf7dc10 100644 --- a/libraries/test_data/src/test/assets/transformerdumps/mp3/test-cbr-info-header.mp3/looping_mixedWith_sample_18byte_nclx_colr.mp4.dump +++ b/libraries/test_data/src/test/assets/transformerdumps/mp3/test-cbr-info-header.mp3/looping_mixedWith_sample_18byte_nclx_colr.mp4.dump @@ -9,6 +9,8 @@ format audio: encoderPadding = 1404 metadata = entries=[TSSE: description=null: values=[Lavf58.45.100]] format video: + averageBitrate = 718288 + peakBitrate = 718288 id = 1 containerMimeType = video/mp4 sampleMimeType = video/avc diff --git a/libraries/test_data/src/test/assets/transformerdumps/mp4/iibbibb_editlist_videoonly.mp4/transmuxed.dump b/libraries/test_data/src/test/assets/transformerdumps/mp4/iibbibb_editlist_videoonly.mp4/transmuxed.dump index e3dd029d4c..30c7f2d212 100644 --- a/libraries/test_data/src/test/assets/transformerdumps/mp4/iibbibb_editlist_videoonly.mp4/transmuxed.dump +++ b/libraries/test_data/src/test/assets/transformerdumps/mp4/iibbibb_editlist_videoonly.mp4/transmuxed.dump @@ -1,4 +1,6 @@ format video: + averageBitrate = 29211 + peakBitrate = 29211 id = 1 containerMimeType = video/mp4 sampleMimeType = video/avc diff --git a/libraries/test_data/src/test/assets/transformerdumps/mp4/sample_18byte_nclx_colr.mp4/looping_mixedWith_test-cbr-info-header.mp3.dump b/libraries/test_data/src/test/assets/transformerdumps/mp4/sample_18byte_nclx_colr.mp4/looping_mixedWith_test-cbr-info-header.mp3.dump index 444435f4e3..f92b024d82 100644 --- a/libraries/test_data/src/test/assets/transformerdumps/mp4/sample_18byte_nclx_colr.mp4/looping_mixedWith_test-cbr-info-header.mp3.dump +++ b/libraries/test_data/src/test/assets/transformerdumps/mp4/sample_18byte_nclx_colr.mp4/looping_mixedWith_test-cbr-info-header.mp3.dump @@ -9,6 +9,8 @@ format audio: encoderPadding = 1404 metadata = entries=[TSSE: description=null: values=[Lavf58.45.100]] format video: + averageBitrate = 718288 + peakBitrate = 718288 id = 1 containerMimeType = video/mp4 sampleMimeType = video/avc diff --git a/libraries/test_data/src/test/assets/transformerdumps/mp4/sample_18byte_nclx_colr.mp4/original.dump b/libraries/test_data/src/test/assets/transformerdumps/mp4/sample_18byte_nclx_colr.mp4/original.dump index 7c719bcb9e..78366c9e23 100644 --- a/libraries/test_data/src/test/assets/transformerdumps/mp4/sample_18byte_nclx_colr.mp4/original.dump +++ b/libraries/test_data/src/test/assets/transformerdumps/mp4/sample_18byte_nclx_colr.mp4/original.dump @@ -1,4 +1,6 @@ format video: + averageBitrate = 718288 + peakBitrate = 718288 id = 1 containerMimeType = video/mp4 sampleMimeType = video/avc diff --git a/libraries/test_data/src/test/assets/transformerdumps/mp4/sample_18byte_nclx_colr.mp4/silence.dump b/libraries/test_data/src/test/assets/transformerdumps/mp4/sample_18byte_nclx_colr.mp4/silence.dump index f4fa2a52ca..5112d5af93 100644 --- a/libraries/test_data/src/test/assets/transformerdumps/mp4/sample_18byte_nclx_colr.mp4/silence.dump +++ b/libraries/test_data/src/test/assets/transformerdumps/mp4/sample_18byte_nclx_colr.mp4/silence.dump @@ -5,6 +5,8 @@ format audio: sampleRate = 44100 pcmEncoding = 2 format video: + averageBitrate = 718288 + peakBitrate = 718288 id = 1 containerMimeType = video/mp4 sampleMimeType = video/avc diff --git a/libraries/test_data/src/test/assets/transformerdumps/mp4/sample_with_increasing_timestamps_320w_240h.mp4/clipped.dump b/libraries/test_data/src/test/assets/transformerdumps/mp4/sample_with_increasing_timestamps_320w_240h.mp4/clipped.dump index cd9cb5bf42..f2342f644b 100644 --- a/libraries/test_data/src/test/assets/transformerdumps/mp4/sample_with_increasing_timestamps_320w_240h.mp4/clipped.dump +++ b/libraries/test_data/src/test/assets/transformerdumps/mp4/sample_with_increasing_timestamps_320w_240h.mp4/clipped.dump @@ -13,6 +13,8 @@ format audio: initializationData: data = length 2, hash 560 format video: + averageBitrate = 656560 + peakBitrate = 656560 id = 1 containerMimeType = video/mp4 sampleMimeType = video/avc diff --git a/libraries/test_data/src/test/assets/transformerdumps/mp4/sample_with_increasing_timestamps_320w_240h.mp4/clipped_clipped_transmux.dump b/libraries/test_data/src/test/assets/transformerdumps/mp4/sample_with_increasing_timestamps_320w_240h.mp4/clipped_clipped_transmux.dump index 5df1964ba1..221b0de04a 100644 --- a/libraries/test_data/src/test/assets/transformerdumps/mp4/sample_with_increasing_timestamps_320w_240h.mp4/clipped_clipped_transmux.dump +++ b/libraries/test_data/src/test/assets/transformerdumps/mp4/sample_with_increasing_timestamps_320w_240h.mp4/clipped_clipped_transmux.dump @@ -13,6 +13,8 @@ format audio: initializationData: data = length 2, hash 560 format video: + averageBitrate = 656560 + peakBitrate = 656560 id = 1 containerMimeType = video/mp4 sampleMimeType = video/avc diff --git a/libraries/test_data/src/test/assets/transformerdumps/mp4/sample_with_increasing_timestamps_320w_240h.mp4/clipped_to_empty.dump b/libraries/test_data/src/test/assets/transformerdumps/mp4/sample_with_increasing_timestamps_320w_240h.mp4/clipped_to_empty.dump index ee14ae0997..2dffb3d4fc 100644 --- a/libraries/test_data/src/test/assets/transformerdumps/mp4/sample_with_increasing_timestamps_320w_240h.mp4/clipped_to_empty.dump +++ b/libraries/test_data/src/test/assets/transformerdumps/mp4/sample_with_increasing_timestamps_320w_240h.mp4/clipped_to_empty.dump @@ -13,6 +13,8 @@ format audio: initializationData: data = length 2, hash 560 format video: + averageBitrate = 656560 + peakBitrate = 656560 id = 1 containerMimeType = video/mp4 sampleMimeType = video/avc