From b54d8737cff84d7178a5cb85fac13767e899e60f Mon Sep 17 00:00:00 2001 From: dancho Date: Wed, 8 Jan 2025 04:48:03 -0800 Subject: [PATCH] Add number of temporal layers to Format The number of temporal sub-layers is required for H.265 non-reference frame identification as only frames from the highest temporal sub-layer can be discarded. PiperOrigin-RevId: 713247354 --- .../java/androidx/media3/common/Format.java | 33 ++++++++++++++++++- .../media3/extractor/mp4/BoxParser.java | 3 ++ .../media3/extractor/ts/H265Reader.java | 1 + ...ixel-motion-photo-2-hevc-tracks.jpg.0.dump | 2 ++ ...ixel-motion-photo-2-hevc-tracks.jpg.1.dump | 2 ++ ...ixel-motion-photo-2-hevc-tracks.jpg.2.dump | 2 ++ ...ixel-motion-photo-2-hevc-tracks.jpg.3.dump | 2 ++ ...ixel-motion-photo-2-hevc-tracks.mp4.0.dump | 2 ++ ...ixel-motion-photo-2-hevc-tracks.mp4.1.dump | 2 ++ ...ixel-motion-photo-2-hevc-tracks.mp4.2.dump | 2 ++ ...ixel-motion-photo-2-hevc-tracks.mp4.3.dump | 2 ++ ...ding_within_gop_sample_dependencies.0.dump | 2 ++ ...ding_within_gop_sample_dependencies.1.dump | 2 ++ ...ding_within_gop_sample_dependencies.2.dump | 2 ++ ...ding_within_gop_sample_dependencies.3.dump | 2 ++ ...op_sample_dependencies.unknown_length.dump | 2 ++ ...hoto-2-hevc-tracks.mp4.unknown_length.dump | 2 ++ .../mp4/sample_edit_list.mp4.0.dump | 1 + .../mp4/sample_edit_list.mp4.1.dump | 1 + .../mp4/sample_edit_list.mp4.2.dump | 1 + .../mp4/sample_edit_list.mp4.3.dump | 1 + ...ding_within_gop_sample_dependencies.0.dump | 1 + ...ding_within_gop_sample_dependencies.1.dump | 1 + ...ding_within_gop_sample_dependencies.2.dump | 1 + ...ding_within_gop_sample_dependencies.3.dump | 1 + ...op_sample_dependencies.unknown_length.dump | 1 + .../sample_edit_list.mp4.unknown_length.dump | 1 + .../mp4/sample_with_color_info.mp4.0.dump | 1 + .../mp4/sample_with_color_info.mp4.1.dump | 1 + .../mp4/sample_with_color_info.mp4.2.dump | 1 + .../mp4/sample_with_color_info.mp4.3.dump | 1 + ...ding_within_gop_sample_dependencies.0.dump | 1 + ...ding_within_gop_sample_dependencies.1.dump | 1 + ...ding_within_gop_sample_dependencies.2.dump | 1 + ...ding_within_gop_sample_dependencies.3.dump | 1 + ...op_sample_dependencies.unknown_length.dump | 1 + ...le_with_color_info.mp4.unknown_length.dump | 1 + ...riginal_quicktime_specification.mov.0.dump | 1 + ...riginal_quicktime_specification.mov.1.dump | 1 + ...riginal_quicktime_specification.mov.2.dump | 1 + ...riginal_quicktime_specification.mov.3.dump | 1 + ...ding_within_gop_sample_dependencies.0.dump | 1 + ...ding_within_gop_sample_dependencies.1.dump | 1 + ...ding_within_gop_sample_dependencies.2.dump | 1 + ...ding_within_gop_sample_dependencies.3.dump | 1 + ...op_sample_dependencies.unknown_length.dump | 1 + ...time_specification.mov.unknown_length.dump | 1 + .../mp4/water_180_mvhevc_5frames.mov.0.dump | 1 + .../mp4/water_180_mvhevc_5frames.mov.1.dump | 1 + .../mp4/water_180_mvhevc_5frames.mov.2.dump | 1 + .../mp4/water_180_mvhevc_5frames.mov.3.dump | 1 + ...ding_within_gop_sample_dependencies.0.dump | 1 + ...ding_within_gop_sample_dependencies.1.dump | 1 + ...ding_within_gop_sample_dependencies.2.dump | 1 + ...ding_within_gop_sample_dependencies.3.dump | 1 + ...op_sample_dependencies.unknown_length.dump | 1 + ...180_mvhevc_5frames.mov.unknown_length.dump | 1 + .../extractordumps/ts/sample_h265.ts.0.dump | 1 + .../extractordumps/ts/sample_h265.ts.1.dump | 1 + .../extractordumps/ts/sample_h265.ts.2.dump | 1 + .../extractordumps/ts/sample_h265.ts.3.dump | 1 + .../ts/sample_h265.ts.unknown_length.dump | 1 + .../ts/sample_h265_rps_pred.ts.0.dump | 1 + .../ts/sample_h265_rps_pred.ts.1.dump | 1 + .../ts/sample_h265_rps_pred.ts.2.dump | 1 + .../ts/sample_h265_rps_pred.ts.3.dump | 1 + ...ample_h265_rps_pred.ts.unknown_length.dump | 1 + .../h265_with_metadata_track.mp4.dump | 1 + .../assets/muxerdumps/hdr10-720p.mp4.dump | 1 + .../muxerdumps/hdr10-720p.mp4_fragmented.dump | 1 + .../muxerdumps/partial_hdr10-720p.mp4.dump | 1 + ...amable_output_disabled_hdr10-720p.mp4.dump | 1 + ...mple_batching_disabled_hdr10-720p.mp4.dump | 1 + .../transmuxed_with_inappmuxer.dump | 1 + .../transmuxed_with_inappmuxer.dump | 1 + .../media3/test/utils/DumpableFormat.java | 1 + 76 files changed, 123 insertions(+), 1 deletion(-) diff --git a/libraries/common/src/main/java/androidx/media3/common/Format.java b/libraries/common/src/main/java/androidx/media3/common/Format.java index cfbfb3e4d7..fcb98f7e94 100644 --- a/libraries/common/src/main/java/androidx/media3/common/Format.java +++ b/libraries/common/src/main/java/androidx/media3/common/Format.java @@ -103,6 +103,7 @@ import java.util.UUID; *
  • {@link #projectionData} *
  • {@link #stereoMode} *
  • {@link #colorInfo} + *
  • {@link #maxSubLayers} * * *

    Fields relevant to audio formats

    @@ -179,6 +180,7 @@ public final class Format { @Nullable private byte[] projectionData; private @C.StereoMode int stereoMode; @Nullable private ColorInfo colorInfo; + private int maxSubLayers; // Audio specific. @@ -217,6 +219,7 @@ public final class Format { frameRate = NO_VALUE; pixelWidthHeightRatio = 1.0f; stereoMode = NO_VALUE; + maxSubLayers = NO_VALUE; // Audio specific. channelCount = NO_VALUE; sampleRate = NO_VALUE; @@ -268,6 +271,7 @@ public final class Format { this.projectionData = format.projectionData; this.stereoMode = format.stereoMode; this.colorInfo = format.colorInfo; + this.maxSubLayers = format.maxSubLayers; // Audio specific. this.channelCount = format.channelCount; this.sampleRate = format.sampleRate; @@ -656,6 +660,18 @@ public final class Format { return this; } + /** + * Sets {@link Format#maxSubLayers}. The default value is {@link #NO_VALUE}. + * + * @param maxSubLayers The {@link Format#maxSubLayers}. + * @return The builder. + */ + @CanIgnoreReturnValue + public Builder setMaxSubLayers(int maxSubLayers) { + this.maxSubLayers = maxSubLayers; + return this; + } + // Audio specific. /** @@ -1009,6 +1025,12 @@ public final class Format { /** The color metadata associated with the video, or null if not applicable. */ @UnstableApi @Nullable public final ColorInfo colorInfo; + /** + * The maximum number of temporal scalable sub-layers in the video bitstream, or {@link #NO_VALUE} + * if not applicable. + */ + @UnstableApi public final int maxSubLayers; + // Audio specific. /** The number of audio channels, or {@link #NO_VALUE} if unknown or not applicable. */ @@ -1127,6 +1149,7 @@ public final class Format { projectionData = builder.projectionData; stereoMode = builder.stereoMode; colorInfo = builder.colorInfo; + maxSubLayers = builder.maxSubLayers; // Audio specific. channelCount = builder.channelCount; sampleRate = builder.sampleRate; @@ -1309,6 +1332,7 @@ public final class Format { // [Omitted] projectionData. result = 31 * result + stereoMode; // [Omitted] colorInfo. + result = 31 * result + maxSubLayers; // Audio specific. result = 31 * result + channelCount; result = 31 * result + sampleRate; @@ -1351,6 +1375,7 @@ public final class Format { && height == other.height && rotationDegrees == other.rotationDegrees && stereoMode == other.stereoMode + && maxSubLayers == other.maxSubLayers && channelCount == other.channelCount && sampleRate == other.sampleRate && pcmEncoding == other.pcmEncoding @@ -1452,6 +1477,9 @@ public final class Format { if (format.frameRate != NO_VALUE) { builder.append(", fps=").append(format.frameRate); } + if (format.maxSubLayers != NO_VALUE) { + builder.append(", maxSubLayers=").append(format.maxSubLayers); + } if (format.channelCount != NO_VALUE) { builder.append(", channels=").append(format.channelCount); } @@ -1523,6 +1551,7 @@ public final class Format { private static final String FIELD_TILE_COUNT_VERTICAL = Util.intToStringMaxRadix(31); private static final String FIELD_LABELS = Util.intToStringMaxRadix(32); private static final String FIELD_AUXILIARY_TRACK_TYPE = Util.intToStringMaxRadix(33); + private static final String FIELD_MAX_SUB_LAYERS = Util.intToStringMaxRadix(34); /** * Returns a {@link Bundle} representing the information stored in this object. If {@code @@ -1568,6 +1597,7 @@ public final class Format { if (colorInfo != null) { bundle.putBundle(FIELD_COLOR_INFO, colorInfo.toBundle()); } + bundle.putInt(FIELD_MAX_SUB_LAYERS, maxSubLayers); // Audio specific. bundle.putInt(FIELD_CHANNEL_COUNT, channelCount); bundle.putInt(FIELD_SAMPLE_RATE, sampleRate); @@ -1635,7 +1665,8 @@ public final class Format { .setPixelWidthHeightRatio( bundle.getFloat(FIELD_PIXEL_WIDTH_HEIGHT_RATIO, DEFAULT.pixelWidthHeightRatio)) .setProjectionData(bundle.getByteArray(FIELD_PROJECTION_DATA)) - .setStereoMode(bundle.getInt(FIELD_STEREO_MODE, DEFAULT.stereoMode)); + .setStereoMode(bundle.getInt(FIELD_STEREO_MODE, DEFAULT.stereoMode)) + .setMaxSubLayers(bundle.getInt(FIELD_MAX_SUB_LAYERS, DEFAULT.maxSubLayers)); Bundle colorInfoBundle = bundle.getBundle(FIELD_COLOR_INFO); if (colorInfoBundle != null) { builder.setColorInfo(ColorInfo.fromBundle(colorInfoBundle)); 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 aae61d4db8..c78987105a 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 @@ -1211,6 +1211,7 @@ public final class BoxParser { @C.StereoMode int stereoMode = Format.NO_VALUE; @Nullable EsdsData esdsData = null; int maxNumReorderSamples = Format.NO_VALUE; + int maxSubLayers = Format.NO_VALUE; @Nullable NalUnitUtil.H265VpsData vpsData = null; // HDR related metadata. @@ -1258,6 +1259,7 @@ public final class BoxParser { pixelWidthHeightRatio = hevcConfig.pixelWidthHeightRatio; } maxNumReorderSamples = hevcConfig.maxNumReorderPics; + maxSubLayers = hevcConfig.maxSubLayers; codecs = hevcConfig.codecs; if (hevcConfig.stereoMode != Format.NO_VALUE) { // HEVCDecoderConfigurationRecord may include 3D reference displays information SEI. @@ -1526,6 +1528,7 @@ public final class BoxParser { .setStereoMode(stereoMode) .setInitializationData(initializationData) .setMaxNumReorderSamples(maxNumReorderSamples) + .setMaxSubLayers(maxSubLayers) .setDrmInitData(drmInitData) // Note that if either mdcv or clli are missing, we leave the corresponding HDR static // metadata bytes with value zero. See [Internal ref: b/194535665]. diff --git a/libraries/extractor/src/main/java/androidx/media3/extractor/ts/H265Reader.java b/libraries/extractor/src/main/java/androidx/media3/extractor/ts/H265Reader.java index ce9b75ad03..e34ac3355d 100644 --- a/libraries/extractor/src/main/java/androidx/media3/extractor/ts/H265Reader.java +++ b/libraries/extractor/src/main/java/androidx/media3/extractor/ts/H265Reader.java @@ -275,6 +275,7 @@ public final class H265Reader implements ElementaryStreamReader { .build()) .setPixelWidthHeightRatio(spsData.pixelWidthHeightRatio) .setMaxNumReorderSamples(spsData.maxNumReorderPics) + .setMaxSubLayers(spsData.maxSubLayersMinus1 + 1) .setInitializationData(Collections.singletonList(csdData)) .build(); } diff --git a/libraries/test_data/src/test/assets/extractordumps/jpeg/pixel-motion-photo-2-hevc-tracks.jpg.0.dump b/libraries/test_data/src/test/assets/extractordumps/jpeg/pixel-motion-photo-2-hevc-tracks.jpg.0.dump index fc47d14348..430ce1651a 100644 --- a/libraries/test_data/src/test/assets/extractordumps/jpeg/pixel-motion-photo-2-hevc-tracks.jpg.0.dump +++ b/libraries/test_data/src/test/assets/extractordumps/jpeg/pixel-motion-photo-2-hevc-tracks.jpg.0.dump @@ -21,6 +21,7 @@ track 0: height = 768 frameRate = 27.61 rotationDegrees = 90 + maxSubLayers = 1 colorInfo: colorSpace = 1 colorRange = 1 @@ -278,6 +279,7 @@ track 1: height = 1536 frameRate = 2.14 rotationDegrees = 90 + maxSubLayers = 1 colorInfo: colorSpace = 1 colorRange = 1 diff --git a/libraries/test_data/src/test/assets/extractordumps/jpeg/pixel-motion-photo-2-hevc-tracks.jpg.1.dump b/libraries/test_data/src/test/assets/extractordumps/jpeg/pixel-motion-photo-2-hevc-tracks.jpg.1.dump index 983cf13d8c..319d59568b 100644 --- a/libraries/test_data/src/test/assets/extractordumps/jpeg/pixel-motion-photo-2-hevc-tracks.jpg.1.dump +++ b/libraries/test_data/src/test/assets/extractordumps/jpeg/pixel-motion-photo-2-hevc-tracks.jpg.1.dump @@ -21,6 +21,7 @@ track 0: height = 768 frameRate = 27.61 rotationDegrees = 90 + maxSubLayers = 1 colorInfo: colorSpace = 1 colorRange = 1 @@ -222,6 +223,7 @@ track 1: height = 1536 frameRate = 2.14 rotationDegrees = 90 + maxSubLayers = 1 colorInfo: colorSpace = 1 colorRange = 1 diff --git a/libraries/test_data/src/test/assets/extractordumps/jpeg/pixel-motion-photo-2-hevc-tracks.jpg.2.dump b/libraries/test_data/src/test/assets/extractordumps/jpeg/pixel-motion-photo-2-hevc-tracks.jpg.2.dump index 030e99216f..2b6a37d60f 100644 --- a/libraries/test_data/src/test/assets/extractordumps/jpeg/pixel-motion-photo-2-hevc-tracks.jpg.2.dump +++ b/libraries/test_data/src/test/assets/extractordumps/jpeg/pixel-motion-photo-2-hevc-tracks.jpg.2.dump @@ -21,6 +21,7 @@ track 0: height = 768 frameRate = 27.61 rotationDegrees = 90 + maxSubLayers = 1 colorInfo: colorSpace = 1 colorRange = 1 @@ -138,6 +139,7 @@ track 1: height = 1536 frameRate = 2.14 rotationDegrees = 90 + maxSubLayers = 1 colorInfo: colorSpace = 1 colorRange = 1 diff --git a/libraries/test_data/src/test/assets/extractordumps/jpeg/pixel-motion-photo-2-hevc-tracks.jpg.3.dump b/libraries/test_data/src/test/assets/extractordumps/jpeg/pixel-motion-photo-2-hevc-tracks.jpg.3.dump index 476b939c85..538f86a21d 100644 --- a/libraries/test_data/src/test/assets/extractordumps/jpeg/pixel-motion-photo-2-hevc-tracks.jpg.3.dump +++ b/libraries/test_data/src/test/assets/extractordumps/jpeg/pixel-motion-photo-2-hevc-tracks.jpg.3.dump @@ -21,6 +21,7 @@ track 0: height = 768 frameRate = 27.61 rotationDegrees = 90 + maxSubLayers = 1 colorInfo: colorSpace = 1 colorRange = 1 @@ -54,6 +55,7 @@ track 1: height = 1536 frameRate = 2.14 rotationDegrees = 90 + maxSubLayers = 1 colorInfo: colorSpace = 1 colorRange = 1 diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/pixel-motion-photo-2-hevc-tracks.mp4.0.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/pixel-motion-photo-2-hevc-tracks.mp4.0.dump index cbb9444460..a52c367791 100644 --- a/libraries/test_data/src/test/assets/extractordumps/mp4/pixel-motion-photo-2-hevc-tracks.mp4.0.dump +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/pixel-motion-photo-2-hevc-tracks.mp4.0.dump @@ -21,6 +21,7 @@ track 0: height = 768 frameRate = 27.61 rotationDegrees = 90 + maxSubLayers = 1 colorInfo: colorSpace = 1 colorRange = 1 @@ -277,6 +278,7 @@ track 1: height = 1536 frameRate = 2.14 rotationDegrees = 90 + maxSubLayers = 1 colorInfo: colorSpace = 1 colorRange = 1 diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/pixel-motion-photo-2-hevc-tracks.mp4.1.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/pixel-motion-photo-2-hevc-tracks.mp4.1.dump index 1e9a0b9c05..c6dd781377 100644 --- a/libraries/test_data/src/test/assets/extractordumps/mp4/pixel-motion-photo-2-hevc-tracks.mp4.1.dump +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/pixel-motion-photo-2-hevc-tracks.mp4.1.dump @@ -21,6 +21,7 @@ track 0: height = 768 frameRate = 27.61 rotationDegrees = 90 + maxSubLayers = 1 colorInfo: colorSpace = 1 colorRange = 1 @@ -221,6 +222,7 @@ track 1: height = 1536 frameRate = 2.14 rotationDegrees = 90 + maxSubLayers = 1 colorInfo: colorSpace = 1 colorRange = 1 diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/pixel-motion-photo-2-hevc-tracks.mp4.2.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/pixel-motion-photo-2-hevc-tracks.mp4.2.dump index 7321164e03..40dfe60e61 100644 --- a/libraries/test_data/src/test/assets/extractordumps/mp4/pixel-motion-photo-2-hevc-tracks.mp4.2.dump +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/pixel-motion-photo-2-hevc-tracks.mp4.2.dump @@ -21,6 +21,7 @@ track 0: height = 768 frameRate = 27.61 rotationDegrees = 90 + maxSubLayers = 1 colorInfo: colorSpace = 1 colorRange = 1 @@ -137,6 +138,7 @@ track 1: height = 1536 frameRate = 2.14 rotationDegrees = 90 + maxSubLayers = 1 colorInfo: colorSpace = 1 colorRange = 1 diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/pixel-motion-photo-2-hevc-tracks.mp4.3.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/pixel-motion-photo-2-hevc-tracks.mp4.3.dump index 7064089a21..235c7cc121 100644 --- a/libraries/test_data/src/test/assets/extractordumps/mp4/pixel-motion-photo-2-hevc-tracks.mp4.3.dump +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/pixel-motion-photo-2-hevc-tracks.mp4.3.dump @@ -21,6 +21,7 @@ track 0: height = 768 frameRate = 27.61 rotationDegrees = 90 + maxSubLayers = 1 colorInfo: colorSpace = 1 colorRange = 1 @@ -53,6 +54,7 @@ track 1: height = 1536 frameRate = 2.14 rotationDegrees = 90 + maxSubLayers = 1 colorInfo: colorSpace = 1 colorRange = 1 diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/pixel-motion-photo-2-hevc-tracks.mp4.reading_within_gop_sample_dependencies.0.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/pixel-motion-photo-2-hevc-tracks.mp4.reading_within_gop_sample_dependencies.0.dump index cbb9444460..a52c367791 100644 --- a/libraries/test_data/src/test/assets/extractordumps/mp4/pixel-motion-photo-2-hevc-tracks.mp4.reading_within_gop_sample_dependencies.0.dump +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/pixel-motion-photo-2-hevc-tracks.mp4.reading_within_gop_sample_dependencies.0.dump @@ -21,6 +21,7 @@ track 0: height = 768 frameRate = 27.61 rotationDegrees = 90 + maxSubLayers = 1 colorInfo: colorSpace = 1 colorRange = 1 @@ -277,6 +278,7 @@ track 1: height = 1536 frameRate = 2.14 rotationDegrees = 90 + maxSubLayers = 1 colorInfo: colorSpace = 1 colorRange = 1 diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/pixel-motion-photo-2-hevc-tracks.mp4.reading_within_gop_sample_dependencies.1.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/pixel-motion-photo-2-hevc-tracks.mp4.reading_within_gop_sample_dependencies.1.dump index 1e9a0b9c05..c6dd781377 100644 --- a/libraries/test_data/src/test/assets/extractordumps/mp4/pixel-motion-photo-2-hevc-tracks.mp4.reading_within_gop_sample_dependencies.1.dump +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/pixel-motion-photo-2-hevc-tracks.mp4.reading_within_gop_sample_dependencies.1.dump @@ -21,6 +21,7 @@ track 0: height = 768 frameRate = 27.61 rotationDegrees = 90 + maxSubLayers = 1 colorInfo: colorSpace = 1 colorRange = 1 @@ -221,6 +222,7 @@ track 1: height = 1536 frameRate = 2.14 rotationDegrees = 90 + maxSubLayers = 1 colorInfo: colorSpace = 1 colorRange = 1 diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/pixel-motion-photo-2-hevc-tracks.mp4.reading_within_gop_sample_dependencies.2.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/pixel-motion-photo-2-hevc-tracks.mp4.reading_within_gop_sample_dependencies.2.dump index 7321164e03..40dfe60e61 100644 --- a/libraries/test_data/src/test/assets/extractordumps/mp4/pixel-motion-photo-2-hevc-tracks.mp4.reading_within_gop_sample_dependencies.2.dump +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/pixel-motion-photo-2-hevc-tracks.mp4.reading_within_gop_sample_dependencies.2.dump @@ -21,6 +21,7 @@ track 0: height = 768 frameRate = 27.61 rotationDegrees = 90 + maxSubLayers = 1 colorInfo: colorSpace = 1 colorRange = 1 @@ -137,6 +138,7 @@ track 1: height = 1536 frameRate = 2.14 rotationDegrees = 90 + maxSubLayers = 1 colorInfo: colorSpace = 1 colorRange = 1 diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/pixel-motion-photo-2-hevc-tracks.mp4.reading_within_gop_sample_dependencies.3.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/pixel-motion-photo-2-hevc-tracks.mp4.reading_within_gop_sample_dependencies.3.dump index 7064089a21..235c7cc121 100644 --- a/libraries/test_data/src/test/assets/extractordumps/mp4/pixel-motion-photo-2-hevc-tracks.mp4.reading_within_gop_sample_dependencies.3.dump +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/pixel-motion-photo-2-hevc-tracks.mp4.reading_within_gop_sample_dependencies.3.dump @@ -21,6 +21,7 @@ track 0: height = 768 frameRate = 27.61 rotationDegrees = 90 + maxSubLayers = 1 colorInfo: colorSpace = 1 colorRange = 1 @@ -53,6 +54,7 @@ track 1: height = 1536 frameRate = 2.14 rotationDegrees = 90 + maxSubLayers = 1 colorInfo: colorSpace = 1 colorRange = 1 diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/pixel-motion-photo-2-hevc-tracks.mp4.reading_within_gop_sample_dependencies.unknown_length.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/pixel-motion-photo-2-hevc-tracks.mp4.reading_within_gop_sample_dependencies.unknown_length.dump index cbb9444460..a52c367791 100644 --- a/libraries/test_data/src/test/assets/extractordumps/mp4/pixel-motion-photo-2-hevc-tracks.mp4.reading_within_gop_sample_dependencies.unknown_length.dump +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/pixel-motion-photo-2-hevc-tracks.mp4.reading_within_gop_sample_dependencies.unknown_length.dump @@ -21,6 +21,7 @@ track 0: height = 768 frameRate = 27.61 rotationDegrees = 90 + maxSubLayers = 1 colorInfo: colorSpace = 1 colorRange = 1 @@ -277,6 +278,7 @@ track 1: height = 1536 frameRate = 2.14 rotationDegrees = 90 + maxSubLayers = 1 colorInfo: colorSpace = 1 colorRange = 1 diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/pixel-motion-photo-2-hevc-tracks.mp4.unknown_length.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/pixel-motion-photo-2-hevc-tracks.mp4.unknown_length.dump index cbb9444460..a52c367791 100644 --- a/libraries/test_data/src/test/assets/extractordumps/mp4/pixel-motion-photo-2-hevc-tracks.mp4.unknown_length.dump +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/pixel-motion-photo-2-hevc-tracks.mp4.unknown_length.dump @@ -21,6 +21,7 @@ track 0: height = 768 frameRate = 27.61 rotationDegrees = 90 + maxSubLayers = 1 colorInfo: colorSpace = 1 colorRange = 1 @@ -277,6 +278,7 @@ track 1: height = 1536 frameRate = 2.14 rotationDegrees = 90 + maxSubLayers = 1 colorInfo: colorSpace = 1 colorRange = 1 diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_edit_list.mp4.0.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_edit_list.mp4.0.dump index 562858157b..7794e19016 100644 --- a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_edit_list.mp4.0.dump +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_edit_list.mp4.0.dump @@ -21,6 +21,7 @@ track 0: height = 1080 frameRate = 28.03 rotationDegrees = 90 + maxSubLayers = 1 colorInfo: colorSpace = 6 colorRange = 2 diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_edit_list.mp4.1.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_edit_list.mp4.1.dump index b6e32820ee..3125db4554 100644 --- a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_edit_list.mp4.1.dump +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_edit_list.mp4.1.dump @@ -21,6 +21,7 @@ track 0: height = 1080 frameRate = 28.03 rotationDegrees = 90 + maxSubLayers = 1 colorInfo: colorSpace = 6 colorRange = 2 diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_edit_list.mp4.2.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_edit_list.mp4.2.dump index 2f22401f57..b32a65cdca 100644 --- a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_edit_list.mp4.2.dump +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_edit_list.mp4.2.dump @@ -21,6 +21,7 @@ track 0: height = 1080 frameRate = 28.03 rotationDegrees = 90 + maxSubLayers = 1 colorInfo: colorSpace = 6 colorRange = 2 diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_edit_list.mp4.3.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_edit_list.mp4.3.dump index be9895f354..f00ee5aae3 100644 --- a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_edit_list.mp4.3.dump +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_edit_list.mp4.3.dump @@ -21,6 +21,7 @@ track 0: height = 1080 frameRate = 28.03 rotationDegrees = 90 + maxSubLayers = 1 colorInfo: colorSpace = 6 colorRange = 2 diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_edit_list.mp4.reading_within_gop_sample_dependencies.0.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_edit_list.mp4.reading_within_gop_sample_dependencies.0.dump index 562858157b..7794e19016 100644 --- a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_edit_list.mp4.reading_within_gop_sample_dependencies.0.dump +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_edit_list.mp4.reading_within_gop_sample_dependencies.0.dump @@ -21,6 +21,7 @@ track 0: height = 1080 frameRate = 28.03 rotationDegrees = 90 + maxSubLayers = 1 colorInfo: colorSpace = 6 colorRange = 2 diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_edit_list.mp4.reading_within_gop_sample_dependencies.1.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_edit_list.mp4.reading_within_gop_sample_dependencies.1.dump index b6e32820ee..3125db4554 100644 --- a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_edit_list.mp4.reading_within_gop_sample_dependencies.1.dump +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_edit_list.mp4.reading_within_gop_sample_dependencies.1.dump @@ -21,6 +21,7 @@ track 0: height = 1080 frameRate = 28.03 rotationDegrees = 90 + maxSubLayers = 1 colorInfo: colorSpace = 6 colorRange = 2 diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_edit_list.mp4.reading_within_gop_sample_dependencies.2.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_edit_list.mp4.reading_within_gop_sample_dependencies.2.dump index 2f22401f57..b32a65cdca 100644 --- a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_edit_list.mp4.reading_within_gop_sample_dependencies.2.dump +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_edit_list.mp4.reading_within_gop_sample_dependencies.2.dump @@ -21,6 +21,7 @@ track 0: height = 1080 frameRate = 28.03 rotationDegrees = 90 + maxSubLayers = 1 colorInfo: colorSpace = 6 colorRange = 2 diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_edit_list.mp4.reading_within_gop_sample_dependencies.3.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_edit_list.mp4.reading_within_gop_sample_dependencies.3.dump index be9895f354..f00ee5aae3 100644 --- a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_edit_list.mp4.reading_within_gop_sample_dependencies.3.dump +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_edit_list.mp4.reading_within_gop_sample_dependencies.3.dump @@ -21,6 +21,7 @@ track 0: height = 1080 frameRate = 28.03 rotationDegrees = 90 + maxSubLayers = 1 colorInfo: colorSpace = 6 colorRange = 2 diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_edit_list.mp4.reading_within_gop_sample_dependencies.unknown_length.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_edit_list.mp4.reading_within_gop_sample_dependencies.unknown_length.dump index 562858157b..7794e19016 100644 --- a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_edit_list.mp4.reading_within_gop_sample_dependencies.unknown_length.dump +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_edit_list.mp4.reading_within_gop_sample_dependencies.unknown_length.dump @@ -21,6 +21,7 @@ track 0: height = 1080 frameRate = 28.03 rotationDegrees = 90 + maxSubLayers = 1 colorInfo: colorSpace = 6 colorRange = 2 diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_edit_list.mp4.unknown_length.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_edit_list.mp4.unknown_length.dump index 562858157b..7794e19016 100644 --- a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_edit_list.mp4.unknown_length.dump +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_edit_list.mp4.unknown_length.dump @@ -21,6 +21,7 @@ track 0: height = 1080 frameRate = 28.03 rotationDegrees = 90 + maxSubLayers = 1 colorInfo: colorSpace = 6 colorRange = 2 diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_color_info.mp4.0.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_color_info.mp4.0.dump index 3c92611ee0..840c1a29f6 100644 --- a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_color_info.mp4.0.dump +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_color_info.mp4.0.dump @@ -21,6 +21,7 @@ track 0: height = 1080 frameRate = 30.00 rotationDegrees = 90 + maxSubLayers = 1 colorInfo: colorSpace = 6 colorRange = 2 diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_color_info.mp4.1.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_color_info.mp4.1.dump index da89c03c3e..c2f271050f 100644 --- a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_color_info.mp4.1.dump +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_color_info.mp4.1.dump @@ -21,6 +21,7 @@ track 0: height = 1080 frameRate = 30.00 rotationDegrees = 90 + maxSubLayers = 1 colorInfo: colorSpace = 6 colorRange = 2 diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_color_info.mp4.2.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_color_info.mp4.2.dump index 6e971000b2..455ccdfd66 100644 --- a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_color_info.mp4.2.dump +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_color_info.mp4.2.dump @@ -21,6 +21,7 @@ track 0: height = 1080 frameRate = 30.00 rotationDegrees = 90 + maxSubLayers = 1 colorInfo: colorSpace = 6 colorRange = 2 diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_color_info.mp4.3.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_color_info.mp4.3.dump index 4a1a3bc888..a6385a51fe 100644 --- a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_color_info.mp4.3.dump +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_color_info.mp4.3.dump @@ -21,6 +21,7 @@ track 0: height = 1080 frameRate = 30.00 rotationDegrees = 90 + maxSubLayers = 1 colorInfo: colorSpace = 6 colorRange = 2 diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_color_info.mp4.reading_within_gop_sample_dependencies.0.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_color_info.mp4.reading_within_gop_sample_dependencies.0.dump index 3c92611ee0..840c1a29f6 100644 --- a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_color_info.mp4.reading_within_gop_sample_dependencies.0.dump +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_color_info.mp4.reading_within_gop_sample_dependencies.0.dump @@ -21,6 +21,7 @@ track 0: height = 1080 frameRate = 30.00 rotationDegrees = 90 + maxSubLayers = 1 colorInfo: colorSpace = 6 colorRange = 2 diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_color_info.mp4.reading_within_gop_sample_dependencies.1.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_color_info.mp4.reading_within_gop_sample_dependencies.1.dump index da89c03c3e..c2f271050f 100644 --- a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_color_info.mp4.reading_within_gop_sample_dependencies.1.dump +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_color_info.mp4.reading_within_gop_sample_dependencies.1.dump @@ -21,6 +21,7 @@ track 0: height = 1080 frameRate = 30.00 rotationDegrees = 90 + maxSubLayers = 1 colorInfo: colorSpace = 6 colorRange = 2 diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_color_info.mp4.reading_within_gop_sample_dependencies.2.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_color_info.mp4.reading_within_gop_sample_dependencies.2.dump index 6e971000b2..455ccdfd66 100644 --- a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_color_info.mp4.reading_within_gop_sample_dependencies.2.dump +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_color_info.mp4.reading_within_gop_sample_dependencies.2.dump @@ -21,6 +21,7 @@ track 0: height = 1080 frameRate = 30.00 rotationDegrees = 90 + maxSubLayers = 1 colorInfo: colorSpace = 6 colorRange = 2 diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_color_info.mp4.reading_within_gop_sample_dependencies.3.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_color_info.mp4.reading_within_gop_sample_dependencies.3.dump index 4a1a3bc888..a6385a51fe 100644 --- a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_color_info.mp4.reading_within_gop_sample_dependencies.3.dump +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_color_info.mp4.reading_within_gop_sample_dependencies.3.dump @@ -21,6 +21,7 @@ track 0: height = 1080 frameRate = 30.00 rotationDegrees = 90 + maxSubLayers = 1 colorInfo: colorSpace = 6 colorRange = 2 diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_color_info.mp4.reading_within_gop_sample_dependencies.unknown_length.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_color_info.mp4.reading_within_gop_sample_dependencies.unknown_length.dump index 3c92611ee0..840c1a29f6 100644 --- a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_color_info.mp4.reading_within_gop_sample_dependencies.unknown_length.dump +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_color_info.mp4.reading_within_gop_sample_dependencies.unknown_length.dump @@ -21,6 +21,7 @@ track 0: height = 1080 frameRate = 30.00 rotationDegrees = 90 + maxSubLayers = 1 colorInfo: colorSpace = 6 colorRange = 2 diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_color_info.mp4.unknown_length.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_color_info.mp4.unknown_length.dump index 3c92611ee0..840c1a29f6 100644 --- a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_color_info.mp4.unknown_length.dump +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_color_info.mp4.unknown_length.dump @@ -21,6 +21,7 @@ track 0: height = 1080 frameRate = 30.00 rotationDegrees = 90 + maxSubLayers = 1 colorInfo: colorSpace = 6 colorRange = 2 diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_original_quicktime_specification.mov.0.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_original_quicktime_specification.mov.0.dump index 8affc9273b..47ffe4b8c6 100644 --- a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_original_quicktime_specification.mov.0.dump +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_original_quicktime_specification.mov.0.dump @@ -21,6 +21,7 @@ track 0: height = 1440 frameRate = 28.81 rotationDegrees = 90 + maxSubLayers = 1 colorInfo: colorRange = 1 colorTransfer = 3 diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_original_quicktime_specification.mov.1.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_original_quicktime_specification.mov.1.dump index c70735befc..3b95c1cfd4 100644 --- a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_original_quicktime_specification.mov.1.dump +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_original_quicktime_specification.mov.1.dump @@ -21,6 +21,7 @@ track 0: height = 1440 frameRate = 28.81 rotationDegrees = 90 + maxSubLayers = 1 colorInfo: colorRange = 1 colorTransfer = 3 diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_original_quicktime_specification.mov.2.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_original_quicktime_specification.mov.2.dump index e201ad2a53..19f37a3c57 100644 --- a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_original_quicktime_specification.mov.2.dump +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_original_quicktime_specification.mov.2.dump @@ -21,6 +21,7 @@ track 0: height = 1440 frameRate = 28.81 rotationDegrees = 90 + maxSubLayers = 1 colorInfo: colorRange = 1 colorTransfer = 3 diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_original_quicktime_specification.mov.3.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_original_quicktime_specification.mov.3.dump index 491d33e906..77d1ad3ad1 100644 --- a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_original_quicktime_specification.mov.3.dump +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_original_quicktime_specification.mov.3.dump @@ -21,6 +21,7 @@ track 0: height = 1440 frameRate = 28.81 rotationDegrees = 90 + maxSubLayers = 1 colorInfo: colorRange = 1 colorTransfer = 3 diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_original_quicktime_specification.mov.reading_within_gop_sample_dependencies.0.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_original_quicktime_specification.mov.reading_within_gop_sample_dependencies.0.dump index 8affc9273b..47ffe4b8c6 100644 --- a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_original_quicktime_specification.mov.reading_within_gop_sample_dependencies.0.dump +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_original_quicktime_specification.mov.reading_within_gop_sample_dependencies.0.dump @@ -21,6 +21,7 @@ track 0: height = 1440 frameRate = 28.81 rotationDegrees = 90 + maxSubLayers = 1 colorInfo: colorRange = 1 colorTransfer = 3 diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_original_quicktime_specification.mov.reading_within_gop_sample_dependencies.1.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_original_quicktime_specification.mov.reading_within_gop_sample_dependencies.1.dump index c70735befc..3b95c1cfd4 100644 --- a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_original_quicktime_specification.mov.reading_within_gop_sample_dependencies.1.dump +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_original_quicktime_specification.mov.reading_within_gop_sample_dependencies.1.dump @@ -21,6 +21,7 @@ track 0: height = 1440 frameRate = 28.81 rotationDegrees = 90 + maxSubLayers = 1 colorInfo: colorRange = 1 colorTransfer = 3 diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_original_quicktime_specification.mov.reading_within_gop_sample_dependencies.2.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_original_quicktime_specification.mov.reading_within_gop_sample_dependencies.2.dump index e201ad2a53..19f37a3c57 100644 --- a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_original_quicktime_specification.mov.reading_within_gop_sample_dependencies.2.dump +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_original_quicktime_specification.mov.reading_within_gop_sample_dependencies.2.dump @@ -21,6 +21,7 @@ track 0: height = 1440 frameRate = 28.81 rotationDegrees = 90 + maxSubLayers = 1 colorInfo: colorRange = 1 colorTransfer = 3 diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_original_quicktime_specification.mov.reading_within_gop_sample_dependencies.3.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_original_quicktime_specification.mov.reading_within_gop_sample_dependencies.3.dump index 491d33e906..77d1ad3ad1 100644 --- a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_original_quicktime_specification.mov.reading_within_gop_sample_dependencies.3.dump +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_original_quicktime_specification.mov.reading_within_gop_sample_dependencies.3.dump @@ -21,6 +21,7 @@ track 0: height = 1440 frameRate = 28.81 rotationDegrees = 90 + maxSubLayers = 1 colorInfo: colorRange = 1 colorTransfer = 3 diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_original_quicktime_specification.mov.reading_within_gop_sample_dependencies.unknown_length.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_original_quicktime_specification.mov.reading_within_gop_sample_dependencies.unknown_length.dump index 8affc9273b..47ffe4b8c6 100644 --- a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_original_quicktime_specification.mov.reading_within_gop_sample_dependencies.unknown_length.dump +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_original_quicktime_specification.mov.reading_within_gop_sample_dependencies.unknown_length.dump @@ -21,6 +21,7 @@ track 0: height = 1440 frameRate = 28.81 rotationDegrees = 90 + maxSubLayers = 1 colorInfo: colorRange = 1 colorTransfer = 3 diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_original_quicktime_specification.mov.unknown_length.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_original_quicktime_specification.mov.unknown_length.dump index 8affc9273b..47ffe4b8c6 100644 --- a/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_original_quicktime_specification.mov.unknown_length.dump +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/sample_with_original_quicktime_specification.mov.unknown_length.dump @@ -21,6 +21,7 @@ track 0: height = 1440 frameRate = 28.81 rotationDegrees = 90 + maxSubLayers = 1 colorInfo: colorRange = 1 colorTransfer = 3 diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/water_180_mvhevc_5frames.mov.0.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/water_180_mvhevc_5frames.mov.0.dump index 147ced1239..468d51cb90 100644 --- a/libraries/test_data/src/test/assets/extractordumps/mp4/water_180_mvhevc_5frames.mov.0.dump +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/water_180_mvhevc_5frames.mov.0.dump @@ -20,6 +20,7 @@ track 0: width = 1934 height = 2160 frameRate = 90.00 + maxSubLayers = 1 colorInfo: colorSpace = 1 colorRange = 2 diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/water_180_mvhevc_5frames.mov.1.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/water_180_mvhevc_5frames.mov.1.dump index 147ced1239..468d51cb90 100644 --- a/libraries/test_data/src/test/assets/extractordumps/mp4/water_180_mvhevc_5frames.mov.1.dump +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/water_180_mvhevc_5frames.mov.1.dump @@ -20,6 +20,7 @@ track 0: width = 1934 height = 2160 frameRate = 90.00 + maxSubLayers = 1 colorInfo: colorSpace = 1 colorRange = 2 diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/water_180_mvhevc_5frames.mov.2.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/water_180_mvhevc_5frames.mov.2.dump index 147ced1239..468d51cb90 100644 --- a/libraries/test_data/src/test/assets/extractordumps/mp4/water_180_mvhevc_5frames.mov.2.dump +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/water_180_mvhevc_5frames.mov.2.dump @@ -20,6 +20,7 @@ track 0: width = 1934 height = 2160 frameRate = 90.00 + maxSubLayers = 1 colorInfo: colorSpace = 1 colorRange = 2 diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/water_180_mvhevc_5frames.mov.3.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/water_180_mvhevc_5frames.mov.3.dump index 147ced1239..468d51cb90 100644 --- a/libraries/test_data/src/test/assets/extractordumps/mp4/water_180_mvhevc_5frames.mov.3.dump +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/water_180_mvhevc_5frames.mov.3.dump @@ -20,6 +20,7 @@ track 0: width = 1934 height = 2160 frameRate = 90.00 + maxSubLayers = 1 colorInfo: colorSpace = 1 colorRange = 2 diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/water_180_mvhevc_5frames.mov.reading_within_gop_sample_dependencies.0.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/water_180_mvhevc_5frames.mov.reading_within_gop_sample_dependencies.0.dump index 147ced1239..468d51cb90 100644 --- a/libraries/test_data/src/test/assets/extractordumps/mp4/water_180_mvhevc_5frames.mov.reading_within_gop_sample_dependencies.0.dump +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/water_180_mvhevc_5frames.mov.reading_within_gop_sample_dependencies.0.dump @@ -20,6 +20,7 @@ track 0: width = 1934 height = 2160 frameRate = 90.00 + maxSubLayers = 1 colorInfo: colorSpace = 1 colorRange = 2 diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/water_180_mvhevc_5frames.mov.reading_within_gop_sample_dependencies.1.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/water_180_mvhevc_5frames.mov.reading_within_gop_sample_dependencies.1.dump index 147ced1239..468d51cb90 100644 --- a/libraries/test_data/src/test/assets/extractordumps/mp4/water_180_mvhevc_5frames.mov.reading_within_gop_sample_dependencies.1.dump +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/water_180_mvhevc_5frames.mov.reading_within_gop_sample_dependencies.1.dump @@ -20,6 +20,7 @@ track 0: width = 1934 height = 2160 frameRate = 90.00 + maxSubLayers = 1 colorInfo: colorSpace = 1 colorRange = 2 diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/water_180_mvhevc_5frames.mov.reading_within_gop_sample_dependencies.2.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/water_180_mvhevc_5frames.mov.reading_within_gop_sample_dependencies.2.dump index 147ced1239..468d51cb90 100644 --- a/libraries/test_data/src/test/assets/extractordumps/mp4/water_180_mvhevc_5frames.mov.reading_within_gop_sample_dependencies.2.dump +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/water_180_mvhevc_5frames.mov.reading_within_gop_sample_dependencies.2.dump @@ -20,6 +20,7 @@ track 0: width = 1934 height = 2160 frameRate = 90.00 + maxSubLayers = 1 colorInfo: colorSpace = 1 colorRange = 2 diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/water_180_mvhevc_5frames.mov.reading_within_gop_sample_dependencies.3.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/water_180_mvhevc_5frames.mov.reading_within_gop_sample_dependencies.3.dump index 147ced1239..468d51cb90 100644 --- a/libraries/test_data/src/test/assets/extractordumps/mp4/water_180_mvhevc_5frames.mov.reading_within_gop_sample_dependencies.3.dump +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/water_180_mvhevc_5frames.mov.reading_within_gop_sample_dependencies.3.dump @@ -20,6 +20,7 @@ track 0: width = 1934 height = 2160 frameRate = 90.00 + maxSubLayers = 1 colorInfo: colorSpace = 1 colorRange = 2 diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/water_180_mvhevc_5frames.mov.reading_within_gop_sample_dependencies.unknown_length.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/water_180_mvhevc_5frames.mov.reading_within_gop_sample_dependencies.unknown_length.dump index 147ced1239..468d51cb90 100644 --- a/libraries/test_data/src/test/assets/extractordumps/mp4/water_180_mvhevc_5frames.mov.reading_within_gop_sample_dependencies.unknown_length.dump +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/water_180_mvhevc_5frames.mov.reading_within_gop_sample_dependencies.unknown_length.dump @@ -20,6 +20,7 @@ track 0: width = 1934 height = 2160 frameRate = 90.00 + maxSubLayers = 1 colorInfo: colorSpace = 1 colorRange = 2 diff --git a/libraries/test_data/src/test/assets/extractordumps/mp4/water_180_mvhevc_5frames.mov.unknown_length.dump b/libraries/test_data/src/test/assets/extractordumps/mp4/water_180_mvhevc_5frames.mov.unknown_length.dump index 147ced1239..468d51cb90 100644 --- a/libraries/test_data/src/test/assets/extractordumps/mp4/water_180_mvhevc_5frames.mov.unknown_length.dump +++ b/libraries/test_data/src/test/assets/extractordumps/mp4/water_180_mvhevc_5frames.mov.unknown_length.dump @@ -20,6 +20,7 @@ track 0: width = 1934 height = 2160 frameRate = 90.00 + maxSubLayers = 1 colorInfo: colorSpace = 1 colorRange = 2 diff --git a/libraries/test_data/src/test/assets/extractordumps/ts/sample_h265.ts.0.dump b/libraries/test_data/src/test/assets/extractordumps/ts/sample_h265.ts.0.dump index d76ba6534d..a4a30d8d84 100644 --- a/libraries/test_data/src/test/assets/extractordumps/ts/sample_h265.ts.0.dump +++ b/libraries/test_data/src/test/assets/extractordumps/ts/sample_h265.ts.0.dump @@ -17,6 +17,7 @@ track 256: maxNumReorderSamples = 2 width = 854 height = 480 + maxSubLayers = 1 colorInfo: colorRange = 2 lumaBitdepth = 8 diff --git a/libraries/test_data/src/test/assets/extractordumps/ts/sample_h265.ts.1.dump b/libraries/test_data/src/test/assets/extractordumps/ts/sample_h265.ts.1.dump index 22b6561a76..9b10ad486a 100644 --- a/libraries/test_data/src/test/assets/extractordumps/ts/sample_h265.ts.1.dump +++ b/libraries/test_data/src/test/assets/extractordumps/ts/sample_h265.ts.1.dump @@ -17,6 +17,7 @@ track 256: maxNumReorderSamples = 2 width = 854 height = 480 + maxSubLayers = 1 colorInfo: colorRange = 2 lumaBitdepth = 8 diff --git a/libraries/test_data/src/test/assets/extractordumps/ts/sample_h265.ts.2.dump b/libraries/test_data/src/test/assets/extractordumps/ts/sample_h265.ts.2.dump index e846815e79..5d54fc95f3 100644 --- a/libraries/test_data/src/test/assets/extractordumps/ts/sample_h265.ts.2.dump +++ b/libraries/test_data/src/test/assets/extractordumps/ts/sample_h265.ts.2.dump @@ -17,6 +17,7 @@ track 256: maxNumReorderSamples = 2 width = 854 height = 480 + maxSubLayers = 1 colorInfo: colorRange = 2 lumaBitdepth = 8 diff --git a/libraries/test_data/src/test/assets/extractordumps/ts/sample_h265.ts.3.dump b/libraries/test_data/src/test/assets/extractordumps/ts/sample_h265.ts.3.dump index a1950d6c3e..dcd86c308e 100644 --- a/libraries/test_data/src/test/assets/extractordumps/ts/sample_h265.ts.3.dump +++ b/libraries/test_data/src/test/assets/extractordumps/ts/sample_h265.ts.3.dump @@ -17,6 +17,7 @@ track 256: maxNumReorderSamples = 2 width = 854 height = 480 + maxSubLayers = 1 colorInfo: colorRange = 2 lumaBitdepth = 8 diff --git a/libraries/test_data/src/test/assets/extractordumps/ts/sample_h265.ts.unknown_length.dump b/libraries/test_data/src/test/assets/extractordumps/ts/sample_h265.ts.unknown_length.dump index 76847cf55a..5717fadec8 100644 --- a/libraries/test_data/src/test/assets/extractordumps/ts/sample_h265.ts.unknown_length.dump +++ b/libraries/test_data/src/test/assets/extractordumps/ts/sample_h265.ts.unknown_length.dump @@ -14,6 +14,7 @@ track 256: maxNumReorderSamples = 2 width = 854 height = 480 + maxSubLayers = 1 colorInfo: colorRange = 2 lumaBitdepth = 8 diff --git a/libraries/test_data/src/test/assets/extractordumps/ts/sample_h265_rps_pred.ts.0.dump b/libraries/test_data/src/test/assets/extractordumps/ts/sample_h265_rps_pred.ts.0.dump index fc41d68958..5f5d845259 100644 --- a/libraries/test_data/src/test/assets/extractordumps/ts/sample_h265_rps_pred.ts.0.dump +++ b/libraries/test_data/src/test/assets/extractordumps/ts/sample_h265_rps_pred.ts.0.dump @@ -18,6 +18,7 @@ track 256: width = 914 height = 686 pixelWidthHeightRatio = 1.0003651 + maxSubLayers = 4 colorInfo: lumaBitdepth = 8 chromaBitdepth = 8 diff --git a/libraries/test_data/src/test/assets/extractordumps/ts/sample_h265_rps_pred.ts.1.dump b/libraries/test_data/src/test/assets/extractordumps/ts/sample_h265_rps_pred.ts.1.dump index 7fcf1600db..14e89c6a78 100644 --- a/libraries/test_data/src/test/assets/extractordumps/ts/sample_h265_rps_pred.ts.1.dump +++ b/libraries/test_data/src/test/assets/extractordumps/ts/sample_h265_rps_pred.ts.1.dump @@ -18,6 +18,7 @@ track 256: width = 914 height = 686 pixelWidthHeightRatio = 1.0003651 + maxSubLayers = 4 colorInfo: lumaBitdepth = 8 chromaBitdepth = 8 diff --git a/libraries/test_data/src/test/assets/extractordumps/ts/sample_h265_rps_pred.ts.2.dump b/libraries/test_data/src/test/assets/extractordumps/ts/sample_h265_rps_pred.ts.2.dump index 05c1694be8..d2d3a26271 100644 --- a/libraries/test_data/src/test/assets/extractordumps/ts/sample_h265_rps_pred.ts.2.dump +++ b/libraries/test_data/src/test/assets/extractordumps/ts/sample_h265_rps_pred.ts.2.dump @@ -18,6 +18,7 @@ track 256: width = 914 height = 686 pixelWidthHeightRatio = 1.0003651 + maxSubLayers = 4 colorInfo: lumaBitdepth = 8 chromaBitdepth = 8 diff --git a/libraries/test_data/src/test/assets/extractordumps/ts/sample_h265_rps_pred.ts.3.dump b/libraries/test_data/src/test/assets/extractordumps/ts/sample_h265_rps_pred.ts.3.dump index 998213733f..4ed3f0492e 100644 --- a/libraries/test_data/src/test/assets/extractordumps/ts/sample_h265_rps_pred.ts.3.dump +++ b/libraries/test_data/src/test/assets/extractordumps/ts/sample_h265_rps_pred.ts.3.dump @@ -18,6 +18,7 @@ track 256: width = 914 height = 686 pixelWidthHeightRatio = 1.0003651 + maxSubLayers = 4 colorInfo: lumaBitdepth = 8 chromaBitdepth = 8 diff --git a/libraries/test_data/src/test/assets/extractordumps/ts/sample_h265_rps_pred.ts.unknown_length.dump b/libraries/test_data/src/test/assets/extractordumps/ts/sample_h265_rps_pred.ts.unknown_length.dump index 86cdb8ef21..2c1d5c9ade 100644 --- a/libraries/test_data/src/test/assets/extractordumps/ts/sample_h265_rps_pred.ts.unknown_length.dump +++ b/libraries/test_data/src/test/assets/extractordumps/ts/sample_h265_rps_pred.ts.unknown_length.dump @@ -15,6 +15,7 @@ track 256: width = 914 height = 686 pixelWidthHeightRatio = 1.0003651 + maxSubLayers = 4 colorInfo: lumaBitdepth = 8 chromaBitdepth = 8 diff --git a/libraries/test_data/src/test/assets/muxerdumps/h265_with_metadata_track.mp4.dump b/libraries/test_data/src/test/assets/muxerdumps/h265_with_metadata_track.mp4.dump index 420a477442..cd13d47e49 100644 --- a/libraries/test_data/src/test/assets/muxerdumps/h265_with_metadata_track.mp4.dump +++ b/libraries/test_data/src/test/assets/muxerdumps/h265_with_metadata_track.mp4.dump @@ -72,6 +72,7 @@ track 2: width = 1920 height = 1080 frameRate = 29.98 + maxSubLayers = 1 colorInfo: colorSpace = 2 colorRange = 1 diff --git a/libraries/test_data/src/test/assets/muxerdumps/hdr10-720p.mp4.dump b/libraries/test_data/src/test/assets/muxerdumps/hdr10-720p.mp4.dump index ccd0e67e9b..ca8025375e 100644 --- a/libraries/test_data/src/test/assets/muxerdumps/hdr10-720p.mp4.dump +++ b/libraries/test_data/src/test/assets/muxerdumps/hdr10-720p.mp4.dump @@ -20,6 +20,7 @@ track 0: width = 1280 height = 720 frameRate = 29.98 + maxSubLayers = 1 colorInfo: colorSpace = 6 colorRange = 2 diff --git a/libraries/test_data/src/test/assets/muxerdumps/hdr10-720p.mp4_fragmented.dump b/libraries/test_data/src/test/assets/muxerdumps/hdr10-720p.mp4_fragmented.dump index 3109ca5c88..0ebdd2682c 100644 --- a/libraries/test_data/src/test/assets/muxerdumps/hdr10-720p.mp4_fragmented.dump +++ b/libraries/test_data/src/test/assets/muxerdumps/hdr10-720p.mp4_fragmented.dump @@ -14,6 +14,7 @@ track 0: maxNumReorderSamples = 0 width = 1280 height = 720 + maxSubLayers = 1 colorInfo: colorSpace = 6 colorRange = 2 diff --git a/libraries/test_data/src/test/assets/muxerdumps/partial_hdr10-720p.mp4.dump b/libraries/test_data/src/test/assets/muxerdumps/partial_hdr10-720p.mp4.dump index b224d331b3..75f96ca395 100644 --- a/libraries/test_data/src/test/assets/muxerdumps/partial_hdr10-720p.mp4.dump +++ b/libraries/test_data/src/test/assets/muxerdumps/partial_hdr10-720p.mp4.dump @@ -20,6 +20,7 @@ track 0: width = 1280 height = 720 frameRate = 29.96 + maxSubLayers = 1 colorInfo: colorSpace = 6 colorRange = 2 diff --git a/libraries/test_data/src/test/assets/muxerdumps/sample_batching_and_attempt_streamable_output_disabled_hdr10-720p.mp4.dump b/libraries/test_data/src/test/assets/muxerdumps/sample_batching_and_attempt_streamable_output_disabled_hdr10-720p.mp4.dump index 67f1e4d28c..5b38fcaf98 100644 --- a/libraries/test_data/src/test/assets/muxerdumps/sample_batching_and_attempt_streamable_output_disabled_hdr10-720p.mp4.dump +++ b/libraries/test_data/src/test/assets/muxerdumps/sample_batching_and_attempt_streamable_output_disabled_hdr10-720p.mp4.dump @@ -20,6 +20,7 @@ track 0: width = 1280 height = 720 frameRate = 29.98 + maxSubLayers = 1 colorInfo: colorSpace = 6 colorRange = 2 diff --git a/libraries/test_data/src/test/assets/muxerdumps/sample_batching_disabled_hdr10-720p.mp4.dump b/libraries/test_data/src/test/assets/muxerdumps/sample_batching_disabled_hdr10-720p.mp4.dump index cb3b0a5c13..c5ea5ef204 100644 --- a/libraries/test_data/src/test/assets/muxerdumps/sample_batching_disabled_hdr10-720p.mp4.dump +++ b/libraries/test_data/src/test/assets/muxerdumps/sample_batching_disabled_hdr10-720p.mp4.dump @@ -20,6 +20,7 @@ track 0: width = 1280 height = 720 frameRate = 29.98 + maxSubLayers = 1 colorInfo: colorSpace = 6 colorRange = 2 diff --git a/libraries/test_data/src/test/assets/transformerdumps/mp4/dolbyVision-hdr.MOV/transmuxed_with_inappmuxer.dump b/libraries/test_data/src/test/assets/transformerdumps/mp4/dolbyVision-hdr.MOV/transmuxed_with_inappmuxer.dump index d5105e74f2..8aed5a2972 100644 --- a/libraries/test_data/src/test/assets/transformerdumps/mp4/dolbyVision-hdr.MOV/transmuxed_with_inappmuxer.dump +++ b/libraries/test_data/src/test/assets/transformerdumps/mp4/dolbyVision-hdr.MOV/transmuxed_with_inappmuxer.dump @@ -21,6 +21,7 @@ track 0: height = 720 frameRate = 30.00 rotationDegrees = 90 + maxSubLayers = 1 colorInfo: colorSpace = 6 colorRange = 2 diff --git a/libraries/test_data/src/test/assets/transformerdumps/mp4/h265_with_metadata_track.mp4/transmuxed_with_inappmuxer.dump b/libraries/test_data/src/test/assets/transformerdumps/mp4/h265_with_metadata_track.mp4/transmuxed_with_inappmuxer.dump index 3b262eb219..0964c3ae1a 100644 --- a/libraries/test_data/src/test/assets/transformerdumps/mp4/h265_with_metadata_track.mp4/transmuxed_with_inappmuxer.dump +++ b/libraries/test_data/src/test/assets/transformerdumps/mp4/h265_with_metadata_track.mp4/transmuxed_with_inappmuxer.dump @@ -21,6 +21,7 @@ track 0: height = 1080 frameRate = 29.98 rotationDegrees = 90 + maxSubLayers = 1 colorInfo: colorSpace = 2 colorRange = 1 diff --git a/libraries/test_utils/src/main/java/androidx/media3/test/utils/DumpableFormat.java b/libraries/test_utils/src/main/java/androidx/media3/test/utils/DumpableFormat.java index 5d202c8e6e..09cf5b020a 100644 --- a/libraries/test_utils/src/main/java/androidx/media3/test/utils/DumpableFormat.java +++ b/libraries/test_utils/src/main/java/androidx/media3/test/utils/DumpableFormat.java @@ -65,6 +65,7 @@ public final class DumpableFormat implements Dumper.Dumpable { "rotationDegrees", format, DEFAULT_FORMAT, format -> format.rotationDegrees); dumper.addIfNonDefault( "pixelWidthHeightRatio", format, DEFAULT_FORMAT, format -> format.pixelWidthHeightRatio); + dumper.addIfNonDefault("maxSubLayers", format, DEFAULT_FORMAT, format -> format.maxSubLayers); @Nullable ColorInfo colorInfo = format.colorInfo; if (colorInfo != null) { dumper.startBlock("colorInfo");