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}
*
*
*
@@ -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");