diff --git a/RELEASENOTES.md b/RELEASENOTES.md index 3be18633be..58bfec7c71 100644 --- a/RELEASENOTES.md +++ b/RELEASENOTES.md @@ -39,6 +39,9 @@ ([#8349](https://github.com/google/ExoPlayer/issues/8349)) * Add `DefaultHttpDataSource.Factory` and deprecate `DefaultHttpDataSourceFactory`. + * Populate codecs string for H.264/AVC in MP4, Matroska and FLV streams to + allow decoder capability checks based on codec profile/level + ([#8393](https://github.com/google/ExoPlayer/issues/8393)). * Track selection: * Add option to specify multiple preferred audio or text languages. * Forward `Timeline` and `MediaPeriodId` to `TrackSelection.Factory`. diff --git a/library/common/src/main/java/com/google/android/exoplayer2/video/AvcConfig.java b/library/common/src/main/java/com/google/android/exoplayer2/video/AvcConfig.java index b794d2db90..183cfe09df 100644 --- a/library/common/src/main/java/com/google/android/exoplayer2/video/AvcConfig.java +++ b/library/common/src/main/java/com/google/android/exoplayer2/video/AvcConfig.java @@ -15,6 +15,7 @@ */ package com.google.android.exoplayer2.video; +import androidx.annotation.Nullable; import com.google.android.exoplayer2.Format; import com.google.android.exoplayer2.ParserException; import com.google.android.exoplayer2.util.CodecSpecificDataUtil; @@ -34,13 +35,14 @@ public final class AvcConfig { public final int width; public final int height; public final float pixelWidthAspectRatio; + @Nullable public final String codecs; /** * Parses AVC configuration data. * * @param data A {@link ParsableByteArray}, whose position is set to the start of the AVC * configuration data to parse. - * @return A parsed representation of the HEVC configuration data. + * @return A parsed representation of the AVC configuration data. * @throws ParserException If an error occurred parsing the data. */ public static AvcConfig parse(ParsableByteArray data) throws ParserException { @@ -63,6 +65,7 @@ public final class AvcConfig { int width = Format.NO_VALUE; int height = Format.NO_VALUE; float pixelWidthAspectRatio = 1; + @Nullable String codecs = null; if (numSequenceParameterSets > 0) { byte[] sps = initializationData.get(0); SpsData spsData = NalUnitUtil.parseSpsNalUnit(initializationData.get(0), @@ -70,21 +73,36 @@ public final class AvcConfig { width = spsData.width; height = spsData.height; pixelWidthAspectRatio = spsData.pixelWidthAspectRatio; + codecs = + CodecSpecificDataUtil.buildAvcCodecString( + spsData.profileIdc, spsData.constraintsFlagsAndReservedZero2Bits, spsData.levelIdc); } - return new AvcConfig(initializationData, nalUnitLengthFieldLength, width, height, - pixelWidthAspectRatio); + + return new AvcConfig( + initializationData, + nalUnitLengthFieldLength, + width, + height, + pixelWidthAspectRatio, + codecs); } catch (ArrayIndexOutOfBoundsException e) { throw new ParserException("Error parsing AVC config", e); } } - private AvcConfig(List initializationData, int nalUnitLengthFieldLength, - int width, int height, float pixelWidthAspectRatio) { + private AvcConfig( + List initializationData, + int nalUnitLengthFieldLength, + int width, + int height, + float pixelWidthAspectRatio, + @Nullable String codecs) { this.initializationData = initializationData; this.nalUnitLengthFieldLength = nalUnitLengthFieldLength; this.width = width; this.height = height; this.pixelWidthAspectRatio = pixelWidthAspectRatio; + this.codecs = codecs; } private static byte[] buildNalUnitForChild(ParsableByteArray data) { diff --git a/library/extractor/src/main/java/com/google/android/exoplayer2/extractor/flv/VideoTagPayloadReader.java b/library/extractor/src/main/java/com/google/android/exoplayer2/extractor/flv/VideoTagPayloadReader.java index c91f6ce037..6ab4da1acf 100644 --- a/library/extractor/src/main/java/com/google/android/exoplayer2/extractor/flv/VideoTagPayloadReader.java +++ b/library/extractor/src/main/java/com/google/android/exoplayer2/extractor/flv/VideoTagPayloadReader.java @@ -93,6 +93,7 @@ import com.google.android.exoplayer2.video.AvcConfig; Format format = new Format.Builder() .setSampleMimeType(MimeTypes.VIDEO_H264) + .setCodecs(avcConfig.codecs) .setWidth(avcConfig.width) .setHeight(avcConfig.height) .setPixelWidthHeightRatio(avcConfig.pixelWidthAspectRatio) diff --git a/library/extractor/src/main/java/com/google/android/exoplayer2/extractor/mkv/MatroskaExtractor.java b/library/extractor/src/main/java/com/google/android/exoplayer2/extractor/mkv/MatroskaExtractor.java index 733d10e767..568385ad3b 100644 --- a/library/extractor/src/main/java/com/google/android/exoplayer2/extractor/mkv/MatroskaExtractor.java +++ b/library/extractor/src/main/java/com/google/android/exoplayer2/extractor/mkv/MatroskaExtractor.java @@ -2086,6 +2086,7 @@ public class MatroskaExtractor implements Extractor { AvcConfig avcConfig = AvcConfig.parse(new ParsableByteArray(getCodecPrivate(codecId))); initializationData = avcConfig.initializationData; nalUnitLengthFieldLength = avcConfig.nalUnitLengthFieldLength; + codecs = avcConfig.codecs; break; case CODEC_ID_H265: mimeType = MimeTypes.VIDEO_H265; diff --git a/library/extractor/src/main/java/com/google/android/exoplayer2/extractor/mp4/AtomParsers.java b/library/extractor/src/main/java/com/google/android/exoplayer2/extractor/mp4/AtomParsers.java index 2ff749db75..9d285fe8dc 100644 --- a/library/extractor/src/main/java/com/google/android/exoplayer2/extractor/mp4/AtomParsers.java +++ b/library/extractor/src/main/java/com/google/android/exoplayer2/extractor/mp4/AtomParsers.java @@ -1058,6 +1058,7 @@ import org.checkerframework.checker.nullness.compatqual.NullableType; if (!pixelWidthHeightRatioFromPasp) { pixelWidthHeightRatio = avcConfig.pixelWidthAspectRatio; } + codecs = avcConfig.codecs; } else if (childAtomType == Atom.TYPE_hvcC) { Assertions.checkState(mimeType == null); mimeType = MimeTypes.VIDEO_H265; diff --git a/testdata/src/test/assets/extractordumps/flv/sample-with-key-frame-index.flv.0.dump b/testdata/src/test/assets/extractordumps/flv/sample-with-key-frame-index.flv.0.dump index 387853091e..9c6955a2b9 100644 --- a/testdata/src/test/assets/extractordumps/flv/sample-with-key-frame-index.flv.0.dump +++ b/testdata/src/test/assets/extractordumps/flv/sample-with-key-frame-index.flv.0.dump @@ -11,6 +11,7 @@ track 9: sample count = 71 format 0: sampleMimeType = video/avc + codecs = avc1.64000C width = 320 height = 180 initializationData: diff --git a/testdata/src/test/assets/extractordumps/flv/sample-with-key-frame-index.flv.1.dump b/testdata/src/test/assets/extractordumps/flv/sample-with-key-frame-index.flv.1.dump index 4ed0bc703f..4b4b951052 100644 --- a/testdata/src/test/assets/extractordumps/flv/sample-with-key-frame-index.flv.1.dump +++ b/testdata/src/test/assets/extractordumps/flv/sample-with-key-frame-index.flv.1.dump @@ -11,6 +11,7 @@ track 9: sample count = 47 format 0: sampleMimeType = video/avc + codecs = avc1.64000C width = 320 height = 180 initializationData: diff --git a/testdata/src/test/assets/extractordumps/flv/sample-with-key-frame-index.flv.2.dump b/testdata/src/test/assets/extractordumps/flv/sample-with-key-frame-index.flv.2.dump index eced87adfc..b9224da535 100644 --- a/testdata/src/test/assets/extractordumps/flv/sample-with-key-frame-index.flv.2.dump +++ b/testdata/src/test/assets/extractordumps/flv/sample-with-key-frame-index.flv.2.dump @@ -11,6 +11,7 @@ track 9: sample count = 23 format 0: sampleMimeType = video/avc + codecs = avc1.64000C width = 320 height = 180 initializationData: diff --git a/testdata/src/test/assets/extractordumps/flv/sample-with-key-frame-index.flv.3.dump b/testdata/src/test/assets/extractordumps/flv/sample-with-key-frame-index.flv.3.dump index eced87adfc..b9224da535 100644 --- a/testdata/src/test/assets/extractordumps/flv/sample-with-key-frame-index.flv.3.dump +++ b/testdata/src/test/assets/extractordumps/flv/sample-with-key-frame-index.flv.3.dump @@ -11,6 +11,7 @@ track 9: sample count = 23 format 0: sampleMimeType = video/avc + codecs = avc1.64000C width = 320 height = 180 initializationData: diff --git a/testdata/src/test/assets/extractordumps/flv/sample-with-key-frame-index.flv.unknown_length.dump b/testdata/src/test/assets/extractordumps/flv/sample-with-key-frame-index.flv.unknown_length.dump index 387853091e..9c6955a2b9 100644 --- a/testdata/src/test/assets/extractordumps/flv/sample-with-key-frame-index.flv.unknown_length.dump +++ b/testdata/src/test/assets/extractordumps/flv/sample-with-key-frame-index.flv.unknown_length.dump @@ -11,6 +11,7 @@ track 9: sample count = 71 format 0: sampleMimeType = video/avc + codecs = avc1.64000C width = 320 height = 180 initializationData: diff --git a/testdata/src/test/assets/extractordumps/flv/sample.flv.0.dump b/testdata/src/test/assets/extractordumps/flv/sample.flv.0.dump index 8bf765bae3..d2a81d984c 100644 --- a/testdata/src/test/assets/extractordumps/flv/sample.flv.0.dump +++ b/testdata/src/test/assets/extractordumps/flv/sample.flv.0.dump @@ -198,6 +198,7 @@ track 9: sample count = 30 format 0: sampleMimeType = video/avc + codecs = avc1.640034 width = 1080 height = 720 initializationData: diff --git a/testdata/src/test/assets/extractordumps/flv/sample.flv.unknown_length.dump b/testdata/src/test/assets/extractordumps/flv/sample.flv.unknown_length.dump index 8bf765bae3..d2a81d984c 100644 --- a/testdata/src/test/assets/extractordumps/flv/sample.flv.unknown_length.dump +++ b/testdata/src/test/assets/extractordumps/flv/sample.flv.unknown_length.dump @@ -198,6 +198,7 @@ track 9: sample count = 30 format 0: sampleMimeType = video/avc + codecs = avc1.640034 width = 1080 height = 720 initializationData: diff --git a/testdata/src/test/assets/extractordumps/mkv/sample.mkv.0.dump b/testdata/src/test/assets/extractordumps/mkv/sample.mkv.0.dump index bb8c0632f3..61daa408d8 100644 --- a/testdata/src/test/assets/extractordumps/mkv/sample.mkv.0.dump +++ b/testdata/src/test/assets/extractordumps/mkv/sample.mkv.0.dump @@ -12,6 +12,7 @@ track 1: format 0: id = 1 sampleMimeType = video/avc + codecs = avc1.640034 width = 1080 height = 720 selectionFlags = 1 diff --git a/testdata/src/test/assets/extractordumps/mkv/sample.mkv.1.dump b/testdata/src/test/assets/extractordumps/mkv/sample.mkv.1.dump index 348f66e363..1bd0b7468d 100644 --- a/testdata/src/test/assets/extractordumps/mkv/sample.mkv.1.dump +++ b/testdata/src/test/assets/extractordumps/mkv/sample.mkv.1.dump @@ -12,6 +12,7 @@ track 1: format 0: id = 1 sampleMimeType = video/avc + codecs = avc1.640034 width = 1080 height = 720 selectionFlags = 1 diff --git a/testdata/src/test/assets/extractordumps/mkv/sample.mkv.2.dump b/testdata/src/test/assets/extractordumps/mkv/sample.mkv.2.dump index e965e5039c..7c862c7302 100644 --- a/testdata/src/test/assets/extractordumps/mkv/sample.mkv.2.dump +++ b/testdata/src/test/assets/extractordumps/mkv/sample.mkv.2.dump @@ -12,6 +12,7 @@ track 1: format 0: id = 1 sampleMimeType = video/avc + codecs = avc1.640034 width = 1080 height = 720 selectionFlags = 1 diff --git a/testdata/src/test/assets/extractordumps/mkv/sample.mkv.3.dump b/testdata/src/test/assets/extractordumps/mkv/sample.mkv.3.dump index ab6d8e06cd..09f073f8a8 100644 --- a/testdata/src/test/assets/extractordumps/mkv/sample.mkv.3.dump +++ b/testdata/src/test/assets/extractordumps/mkv/sample.mkv.3.dump @@ -12,6 +12,7 @@ track 1: format 0: id = 1 sampleMimeType = video/avc + codecs = avc1.640034 width = 1080 height = 720 selectionFlags = 1 diff --git a/testdata/src/test/assets/extractordumps/mkv/sample.mkv.unknown_length.dump b/testdata/src/test/assets/extractordumps/mkv/sample.mkv.unknown_length.dump index bb8c0632f3..61daa408d8 100644 --- a/testdata/src/test/assets/extractordumps/mkv/sample.mkv.unknown_length.dump +++ b/testdata/src/test/assets/extractordumps/mkv/sample.mkv.unknown_length.dump @@ -12,6 +12,7 @@ track 1: format 0: id = 1 sampleMimeType = video/avc + codecs = avc1.640034 width = 1080 height = 720 selectionFlags = 1 diff --git a/testdata/src/test/assets/extractordumps/mkv/sample_with_htc_rotation_track_name.mkv.0.dump b/testdata/src/test/assets/extractordumps/mkv/sample_with_htc_rotation_track_name.mkv.0.dump index 258efdc087..6d84df8b0c 100644 --- a/testdata/src/test/assets/extractordumps/mkv/sample_with_htc_rotation_track_name.mkv.0.dump +++ b/testdata/src/test/assets/extractordumps/mkv/sample_with_htc_rotation_track_name.mkv.0.dump @@ -12,6 +12,7 @@ track 1: format 0: id = 1 sampleMimeType = video/avc + codecs = avc1.640034 width = 1080 height = 720 rotationDegrees = 90 diff --git a/testdata/src/test/assets/extractordumps/mkv/sample_with_htc_rotation_track_name.mkv.1.dump b/testdata/src/test/assets/extractordumps/mkv/sample_with_htc_rotation_track_name.mkv.1.dump index 258efdc087..6d84df8b0c 100644 --- a/testdata/src/test/assets/extractordumps/mkv/sample_with_htc_rotation_track_name.mkv.1.dump +++ b/testdata/src/test/assets/extractordumps/mkv/sample_with_htc_rotation_track_name.mkv.1.dump @@ -12,6 +12,7 @@ track 1: format 0: id = 1 sampleMimeType = video/avc + codecs = avc1.640034 width = 1080 height = 720 rotationDegrees = 90 diff --git a/testdata/src/test/assets/extractordumps/mkv/sample_with_htc_rotation_track_name.mkv.2.dump b/testdata/src/test/assets/extractordumps/mkv/sample_with_htc_rotation_track_name.mkv.2.dump index 258efdc087..6d84df8b0c 100644 --- a/testdata/src/test/assets/extractordumps/mkv/sample_with_htc_rotation_track_name.mkv.2.dump +++ b/testdata/src/test/assets/extractordumps/mkv/sample_with_htc_rotation_track_name.mkv.2.dump @@ -12,6 +12,7 @@ track 1: format 0: id = 1 sampleMimeType = video/avc + codecs = avc1.640034 width = 1080 height = 720 rotationDegrees = 90 diff --git a/testdata/src/test/assets/extractordumps/mkv/sample_with_htc_rotation_track_name.mkv.3.dump b/testdata/src/test/assets/extractordumps/mkv/sample_with_htc_rotation_track_name.mkv.3.dump index 258efdc087..6d84df8b0c 100644 --- a/testdata/src/test/assets/extractordumps/mkv/sample_with_htc_rotation_track_name.mkv.3.dump +++ b/testdata/src/test/assets/extractordumps/mkv/sample_with_htc_rotation_track_name.mkv.3.dump @@ -12,6 +12,7 @@ track 1: format 0: id = 1 sampleMimeType = video/avc + codecs = avc1.640034 width = 1080 height = 720 rotationDegrees = 90 diff --git a/testdata/src/test/assets/extractordumps/mkv/sample_with_htc_rotation_track_name.mkv.unknown_length.dump b/testdata/src/test/assets/extractordumps/mkv/sample_with_htc_rotation_track_name.mkv.unknown_length.dump index 258efdc087..6d84df8b0c 100644 --- a/testdata/src/test/assets/extractordumps/mkv/sample_with_htc_rotation_track_name.mkv.unknown_length.dump +++ b/testdata/src/test/assets/extractordumps/mkv/sample_with_htc_rotation_track_name.mkv.unknown_length.dump @@ -12,6 +12,7 @@ track 1: format 0: id = 1 sampleMimeType = video/avc + codecs = avc1.640034 width = 1080 height = 720 rotationDegrees = 90 diff --git a/testdata/src/test/assets/extractordumps/mkv/sample_with_null_terminated_srt.mkv.0.dump b/testdata/src/test/assets/extractordumps/mkv/sample_with_null_terminated_srt.mkv.0.dump index ccf35b8c27..24d9ce7712 100644 --- a/testdata/src/test/assets/extractordumps/mkv/sample_with_null_terminated_srt.mkv.0.dump +++ b/testdata/src/test/assets/extractordumps/mkv/sample_with_null_terminated_srt.mkv.0.dump @@ -12,6 +12,7 @@ track 1: format 0: id = 1 sampleMimeType = video/avc + codecs = avc1.640034 width = 1080 height = 720 selectionFlags = 1 diff --git a/testdata/src/test/assets/extractordumps/mkv/sample_with_null_terminated_srt.mkv.1.dump b/testdata/src/test/assets/extractordumps/mkv/sample_with_null_terminated_srt.mkv.1.dump index ccf35b8c27..24d9ce7712 100644 --- a/testdata/src/test/assets/extractordumps/mkv/sample_with_null_terminated_srt.mkv.1.dump +++ b/testdata/src/test/assets/extractordumps/mkv/sample_with_null_terminated_srt.mkv.1.dump @@ -12,6 +12,7 @@ track 1: format 0: id = 1 sampleMimeType = video/avc + codecs = avc1.640034 width = 1080 height = 720 selectionFlags = 1 diff --git a/testdata/src/test/assets/extractordumps/mkv/sample_with_null_terminated_srt.mkv.2.dump b/testdata/src/test/assets/extractordumps/mkv/sample_with_null_terminated_srt.mkv.2.dump index ccf35b8c27..24d9ce7712 100644 --- a/testdata/src/test/assets/extractordumps/mkv/sample_with_null_terminated_srt.mkv.2.dump +++ b/testdata/src/test/assets/extractordumps/mkv/sample_with_null_terminated_srt.mkv.2.dump @@ -12,6 +12,7 @@ track 1: format 0: id = 1 sampleMimeType = video/avc + codecs = avc1.640034 width = 1080 height = 720 selectionFlags = 1 diff --git a/testdata/src/test/assets/extractordumps/mkv/sample_with_null_terminated_srt.mkv.3.dump b/testdata/src/test/assets/extractordumps/mkv/sample_with_null_terminated_srt.mkv.3.dump index ccf35b8c27..24d9ce7712 100644 --- a/testdata/src/test/assets/extractordumps/mkv/sample_with_null_terminated_srt.mkv.3.dump +++ b/testdata/src/test/assets/extractordumps/mkv/sample_with_null_terminated_srt.mkv.3.dump @@ -12,6 +12,7 @@ track 1: format 0: id = 1 sampleMimeType = video/avc + codecs = avc1.640034 width = 1080 height = 720 selectionFlags = 1 diff --git a/testdata/src/test/assets/extractordumps/mkv/sample_with_null_terminated_srt.mkv.unknown_length.dump b/testdata/src/test/assets/extractordumps/mkv/sample_with_null_terminated_srt.mkv.unknown_length.dump index ccf35b8c27..24d9ce7712 100644 --- a/testdata/src/test/assets/extractordumps/mkv/sample_with_null_terminated_srt.mkv.unknown_length.dump +++ b/testdata/src/test/assets/extractordumps/mkv/sample_with_null_terminated_srt.mkv.unknown_length.dump @@ -12,6 +12,7 @@ track 1: format 0: id = 1 sampleMimeType = video/avc + codecs = avc1.640034 width = 1080 height = 720 selectionFlags = 1 diff --git a/testdata/src/test/assets/extractordumps/mkv/sample_with_null_terminated_ssa_subtitles.mkv.0.dump b/testdata/src/test/assets/extractordumps/mkv/sample_with_null_terminated_ssa_subtitles.mkv.0.dump index ec1eaf729b..3f99d09758 100644 --- a/testdata/src/test/assets/extractordumps/mkv/sample_with_null_terminated_ssa_subtitles.mkv.0.dump +++ b/testdata/src/test/assets/extractordumps/mkv/sample_with_null_terminated_ssa_subtitles.mkv.0.dump @@ -12,6 +12,7 @@ track 1: format 0: id = 1 sampleMimeType = video/avc + codecs = avc1.640034 width = 1080 height = 720 selectionFlags = 1 diff --git a/testdata/src/test/assets/extractordumps/mkv/sample_with_null_terminated_ssa_subtitles.mkv.1.dump b/testdata/src/test/assets/extractordumps/mkv/sample_with_null_terminated_ssa_subtitles.mkv.1.dump index ec1eaf729b..3f99d09758 100644 --- a/testdata/src/test/assets/extractordumps/mkv/sample_with_null_terminated_ssa_subtitles.mkv.1.dump +++ b/testdata/src/test/assets/extractordumps/mkv/sample_with_null_terminated_ssa_subtitles.mkv.1.dump @@ -12,6 +12,7 @@ track 1: format 0: id = 1 sampleMimeType = video/avc + codecs = avc1.640034 width = 1080 height = 720 selectionFlags = 1 diff --git a/testdata/src/test/assets/extractordumps/mkv/sample_with_null_terminated_ssa_subtitles.mkv.2.dump b/testdata/src/test/assets/extractordumps/mkv/sample_with_null_terminated_ssa_subtitles.mkv.2.dump index ec1eaf729b..3f99d09758 100644 --- a/testdata/src/test/assets/extractordumps/mkv/sample_with_null_terminated_ssa_subtitles.mkv.2.dump +++ b/testdata/src/test/assets/extractordumps/mkv/sample_with_null_terminated_ssa_subtitles.mkv.2.dump @@ -12,6 +12,7 @@ track 1: format 0: id = 1 sampleMimeType = video/avc + codecs = avc1.640034 width = 1080 height = 720 selectionFlags = 1 diff --git a/testdata/src/test/assets/extractordumps/mkv/sample_with_null_terminated_ssa_subtitles.mkv.3.dump b/testdata/src/test/assets/extractordumps/mkv/sample_with_null_terminated_ssa_subtitles.mkv.3.dump index ec1eaf729b..3f99d09758 100644 --- a/testdata/src/test/assets/extractordumps/mkv/sample_with_null_terminated_ssa_subtitles.mkv.3.dump +++ b/testdata/src/test/assets/extractordumps/mkv/sample_with_null_terminated_ssa_subtitles.mkv.3.dump @@ -12,6 +12,7 @@ track 1: format 0: id = 1 sampleMimeType = video/avc + codecs = avc1.640034 width = 1080 height = 720 selectionFlags = 1 diff --git a/testdata/src/test/assets/extractordumps/mkv/sample_with_null_terminated_ssa_subtitles.mkv.unknown_length.dump b/testdata/src/test/assets/extractordumps/mkv/sample_with_null_terminated_ssa_subtitles.mkv.unknown_length.dump index ec1eaf729b..3f99d09758 100644 --- a/testdata/src/test/assets/extractordumps/mkv/sample_with_null_terminated_ssa_subtitles.mkv.unknown_length.dump +++ b/testdata/src/test/assets/extractordumps/mkv/sample_with_null_terminated_ssa_subtitles.mkv.unknown_length.dump @@ -12,6 +12,7 @@ track 1: format 0: id = 1 sampleMimeType = video/avc + codecs = avc1.640034 width = 1080 height = 720 selectionFlags = 1 diff --git a/testdata/src/test/assets/extractordumps/mkv/sample_with_srt.mkv.0.dump b/testdata/src/test/assets/extractordumps/mkv/sample_with_srt.mkv.0.dump index 94378b0f98..a5548a90cf 100644 --- a/testdata/src/test/assets/extractordumps/mkv/sample_with_srt.mkv.0.dump +++ b/testdata/src/test/assets/extractordumps/mkv/sample_with_srt.mkv.0.dump @@ -12,6 +12,7 @@ track 1: format 0: id = 1 sampleMimeType = video/avc + codecs = avc1.640034 width = 1080 height = 720 selectionFlags = 1 diff --git a/testdata/src/test/assets/extractordumps/mkv/sample_with_srt.mkv.1.dump b/testdata/src/test/assets/extractordumps/mkv/sample_with_srt.mkv.1.dump index 94378b0f98..a5548a90cf 100644 --- a/testdata/src/test/assets/extractordumps/mkv/sample_with_srt.mkv.1.dump +++ b/testdata/src/test/assets/extractordumps/mkv/sample_with_srt.mkv.1.dump @@ -12,6 +12,7 @@ track 1: format 0: id = 1 sampleMimeType = video/avc + codecs = avc1.640034 width = 1080 height = 720 selectionFlags = 1 diff --git a/testdata/src/test/assets/extractordumps/mkv/sample_with_srt.mkv.2.dump b/testdata/src/test/assets/extractordumps/mkv/sample_with_srt.mkv.2.dump index 94378b0f98..a5548a90cf 100644 --- a/testdata/src/test/assets/extractordumps/mkv/sample_with_srt.mkv.2.dump +++ b/testdata/src/test/assets/extractordumps/mkv/sample_with_srt.mkv.2.dump @@ -12,6 +12,7 @@ track 1: format 0: id = 1 sampleMimeType = video/avc + codecs = avc1.640034 width = 1080 height = 720 selectionFlags = 1 diff --git a/testdata/src/test/assets/extractordumps/mkv/sample_with_srt.mkv.3.dump b/testdata/src/test/assets/extractordumps/mkv/sample_with_srt.mkv.3.dump index 94378b0f98..a5548a90cf 100644 --- a/testdata/src/test/assets/extractordumps/mkv/sample_with_srt.mkv.3.dump +++ b/testdata/src/test/assets/extractordumps/mkv/sample_with_srt.mkv.3.dump @@ -12,6 +12,7 @@ track 1: format 0: id = 1 sampleMimeType = video/avc + codecs = avc1.640034 width = 1080 height = 720 selectionFlags = 1 diff --git a/testdata/src/test/assets/extractordumps/mkv/sample_with_srt.mkv.unknown_length.dump b/testdata/src/test/assets/extractordumps/mkv/sample_with_srt.mkv.unknown_length.dump index 94378b0f98..a5548a90cf 100644 --- a/testdata/src/test/assets/extractordumps/mkv/sample_with_srt.mkv.unknown_length.dump +++ b/testdata/src/test/assets/extractordumps/mkv/sample_with_srt.mkv.unknown_length.dump @@ -12,6 +12,7 @@ track 1: format 0: id = 1 sampleMimeType = video/avc + codecs = avc1.640034 width = 1080 height = 720 selectionFlags = 1 diff --git a/testdata/src/test/assets/extractordumps/mkv/sample_with_ssa_subtitles.mkv.0.dump b/testdata/src/test/assets/extractordumps/mkv/sample_with_ssa_subtitles.mkv.0.dump index 16df131ed3..93b557015c 100644 --- a/testdata/src/test/assets/extractordumps/mkv/sample_with_ssa_subtitles.mkv.0.dump +++ b/testdata/src/test/assets/extractordumps/mkv/sample_with_ssa_subtitles.mkv.0.dump @@ -12,6 +12,7 @@ track 1: format 0: id = 1 sampleMimeType = video/avc + codecs = avc1.640034 width = 1080 height = 720 selectionFlags = 1 diff --git a/testdata/src/test/assets/extractordumps/mkv/sample_with_ssa_subtitles.mkv.1.dump b/testdata/src/test/assets/extractordumps/mkv/sample_with_ssa_subtitles.mkv.1.dump index 16df131ed3..93b557015c 100644 --- a/testdata/src/test/assets/extractordumps/mkv/sample_with_ssa_subtitles.mkv.1.dump +++ b/testdata/src/test/assets/extractordumps/mkv/sample_with_ssa_subtitles.mkv.1.dump @@ -12,6 +12,7 @@ track 1: format 0: id = 1 sampleMimeType = video/avc + codecs = avc1.640034 width = 1080 height = 720 selectionFlags = 1 diff --git a/testdata/src/test/assets/extractordumps/mkv/sample_with_ssa_subtitles.mkv.2.dump b/testdata/src/test/assets/extractordumps/mkv/sample_with_ssa_subtitles.mkv.2.dump index 16df131ed3..93b557015c 100644 --- a/testdata/src/test/assets/extractordumps/mkv/sample_with_ssa_subtitles.mkv.2.dump +++ b/testdata/src/test/assets/extractordumps/mkv/sample_with_ssa_subtitles.mkv.2.dump @@ -12,6 +12,7 @@ track 1: format 0: id = 1 sampleMimeType = video/avc + codecs = avc1.640034 width = 1080 height = 720 selectionFlags = 1 diff --git a/testdata/src/test/assets/extractordumps/mkv/sample_with_ssa_subtitles.mkv.3.dump b/testdata/src/test/assets/extractordumps/mkv/sample_with_ssa_subtitles.mkv.3.dump index 16df131ed3..93b557015c 100644 --- a/testdata/src/test/assets/extractordumps/mkv/sample_with_ssa_subtitles.mkv.3.dump +++ b/testdata/src/test/assets/extractordumps/mkv/sample_with_ssa_subtitles.mkv.3.dump @@ -12,6 +12,7 @@ track 1: format 0: id = 1 sampleMimeType = video/avc + codecs = avc1.640034 width = 1080 height = 720 selectionFlags = 1 diff --git a/testdata/src/test/assets/extractordumps/mkv/sample_with_ssa_subtitles.mkv.unknown_length.dump b/testdata/src/test/assets/extractordumps/mkv/sample_with_ssa_subtitles.mkv.unknown_length.dump index 16df131ed3..93b557015c 100644 --- a/testdata/src/test/assets/extractordumps/mkv/sample_with_ssa_subtitles.mkv.unknown_length.dump +++ b/testdata/src/test/assets/extractordumps/mkv/sample_with_ssa_subtitles.mkv.unknown_length.dump @@ -12,6 +12,7 @@ track 1: format 0: id = 1 sampleMimeType = video/avc + codecs = avc1.640034 width = 1080 height = 720 selectionFlags = 1 diff --git a/testdata/src/test/assets/extractordumps/mp4/sample.mp4.0.dump b/testdata/src/test/assets/extractordumps/mp4/sample.mp4.0.dump index c1d6530965..78d2922cbf 100644 --- a/testdata/src/test/assets/extractordumps/mp4/sample.mp4.0.dump +++ b/testdata/src/test/assets/extractordumps/mp4/sample.mp4.0.dump @@ -12,6 +12,7 @@ track 0: format 0: id = 1 sampleMimeType = video/avc + codecs = avc1.64001F maxInputSize = 36722 width = 1080 height = 720 diff --git a/testdata/src/test/assets/extractordumps/mp4/sample.mp4.1.dump b/testdata/src/test/assets/extractordumps/mp4/sample.mp4.1.dump index 0cba489724..cbfab8edfd 100644 --- a/testdata/src/test/assets/extractordumps/mp4/sample.mp4.1.dump +++ b/testdata/src/test/assets/extractordumps/mp4/sample.mp4.1.dump @@ -12,6 +12,7 @@ track 0: format 0: id = 1 sampleMimeType = video/avc + codecs = avc1.64001F maxInputSize = 36722 width = 1080 height = 720 diff --git a/testdata/src/test/assets/extractordumps/mp4/sample.mp4.2.dump b/testdata/src/test/assets/extractordumps/mp4/sample.mp4.2.dump index 453c1677bf..bd8df24015 100644 --- a/testdata/src/test/assets/extractordumps/mp4/sample.mp4.2.dump +++ b/testdata/src/test/assets/extractordumps/mp4/sample.mp4.2.dump @@ -12,6 +12,7 @@ track 0: format 0: id = 1 sampleMimeType = video/avc + codecs = avc1.64001F maxInputSize = 36722 width = 1080 height = 720 diff --git a/testdata/src/test/assets/extractordumps/mp4/sample.mp4.3.dump b/testdata/src/test/assets/extractordumps/mp4/sample.mp4.3.dump index 0fe653ac2c..791aea54f7 100644 --- a/testdata/src/test/assets/extractordumps/mp4/sample.mp4.3.dump +++ b/testdata/src/test/assets/extractordumps/mp4/sample.mp4.3.dump @@ -12,6 +12,7 @@ track 0: format 0: id = 1 sampleMimeType = video/avc + codecs = avc1.64001F maxInputSize = 36722 width = 1080 height = 720 diff --git a/testdata/src/test/assets/extractordumps/mp4/sample.mp4.unknown_length.dump b/testdata/src/test/assets/extractordumps/mp4/sample.mp4.unknown_length.dump index c1d6530965..78d2922cbf 100644 --- a/testdata/src/test/assets/extractordumps/mp4/sample.mp4.unknown_length.dump +++ b/testdata/src/test/assets/extractordumps/mp4/sample.mp4.unknown_length.dump @@ -12,6 +12,7 @@ track 0: format 0: id = 1 sampleMimeType = video/avc + codecs = avc1.64001F maxInputSize = 36722 width = 1080 height = 720 diff --git a/testdata/src/test/assets/extractordumps/mp4/sample_android_slow_motion.mp4.0.dump b/testdata/src/test/assets/extractordumps/mp4/sample_android_slow_motion.mp4.0.dump index e8b96af424..481e177eb3 100644 --- a/testdata/src/test/assets/extractordumps/mp4/sample_android_slow_motion.mp4.0.dump +++ b/testdata/src/test/assets/extractordumps/mp4/sample_android_slow_motion.mp4.0.dump @@ -12,6 +12,7 @@ track 0: format 0: id = 1 sampleMimeType = video/avc + codecs = avc1.640033 maxInputSize = 34686 width = 1280 height = 720 diff --git a/testdata/src/test/assets/extractordumps/mp4/sample_android_slow_motion.mp4.1.dump b/testdata/src/test/assets/extractordumps/mp4/sample_android_slow_motion.mp4.1.dump index e8b96af424..481e177eb3 100644 --- a/testdata/src/test/assets/extractordumps/mp4/sample_android_slow_motion.mp4.1.dump +++ b/testdata/src/test/assets/extractordumps/mp4/sample_android_slow_motion.mp4.1.dump @@ -12,6 +12,7 @@ track 0: format 0: id = 1 sampleMimeType = video/avc + codecs = avc1.640033 maxInputSize = 34686 width = 1280 height = 720 diff --git a/testdata/src/test/assets/extractordumps/mp4/sample_android_slow_motion.mp4.2.dump b/testdata/src/test/assets/extractordumps/mp4/sample_android_slow_motion.mp4.2.dump index e8b96af424..481e177eb3 100644 --- a/testdata/src/test/assets/extractordumps/mp4/sample_android_slow_motion.mp4.2.dump +++ b/testdata/src/test/assets/extractordumps/mp4/sample_android_slow_motion.mp4.2.dump @@ -12,6 +12,7 @@ track 0: format 0: id = 1 sampleMimeType = video/avc + codecs = avc1.640033 maxInputSize = 34686 width = 1280 height = 720 diff --git a/testdata/src/test/assets/extractordumps/mp4/sample_android_slow_motion.mp4.3.dump b/testdata/src/test/assets/extractordumps/mp4/sample_android_slow_motion.mp4.3.dump index e8b96af424..481e177eb3 100644 --- a/testdata/src/test/assets/extractordumps/mp4/sample_android_slow_motion.mp4.3.dump +++ b/testdata/src/test/assets/extractordumps/mp4/sample_android_slow_motion.mp4.3.dump @@ -12,6 +12,7 @@ track 0: format 0: id = 1 sampleMimeType = video/avc + codecs = avc1.640033 maxInputSize = 34686 width = 1280 height = 720 diff --git a/testdata/src/test/assets/extractordumps/mp4/sample_android_slow_motion.mp4.unknown_length.dump b/testdata/src/test/assets/extractordumps/mp4/sample_android_slow_motion.mp4.unknown_length.dump index e8b96af424..481e177eb3 100644 --- a/testdata/src/test/assets/extractordumps/mp4/sample_android_slow_motion.mp4.unknown_length.dump +++ b/testdata/src/test/assets/extractordumps/mp4/sample_android_slow_motion.mp4.unknown_length.dump @@ -12,6 +12,7 @@ track 0: format 0: id = 1 sampleMimeType = video/avc + codecs = avc1.640033 maxInputSize = 34686 width = 1280 height = 720 diff --git a/testdata/src/test/assets/extractordumps/mp4/sample_fragmented.mp4.0.dump b/testdata/src/test/assets/extractordumps/mp4/sample_fragmented.mp4.0.dump index 001895e61e..3bb4239d8f 100644 --- a/testdata/src/test/assets/extractordumps/mp4/sample_fragmented.mp4.0.dump +++ b/testdata/src/test/assets/extractordumps/mp4/sample_fragmented.mp4.0.dump @@ -9,6 +9,7 @@ track 0: format 0: id = 1 sampleMimeType = video/avc + codecs = avc1.64001F width = 1080 height = 720 initializationData: diff --git a/testdata/src/test/assets/extractordumps/mp4/sample_fragmented.mp4.unknown_length.dump b/testdata/src/test/assets/extractordumps/mp4/sample_fragmented.mp4.unknown_length.dump index 001895e61e..3bb4239d8f 100644 --- a/testdata/src/test/assets/extractordumps/mp4/sample_fragmented.mp4.unknown_length.dump +++ b/testdata/src/test/assets/extractordumps/mp4/sample_fragmented.mp4.unknown_length.dump @@ -9,6 +9,7 @@ track 0: format 0: id = 1 sampleMimeType = video/avc + codecs = avc1.64001F width = 1080 height = 720 initializationData: diff --git a/testdata/src/test/assets/extractordumps/mp4/sample_fragmented_seekable.mp4.0.dump b/testdata/src/test/assets/extractordumps/mp4/sample_fragmented_seekable.mp4.0.dump index 5dc1f1db59..d6ff4a544c 100644 --- a/testdata/src/test/assets/extractordumps/mp4/sample_fragmented_seekable.mp4.0.dump +++ b/testdata/src/test/assets/extractordumps/mp4/sample_fragmented_seekable.mp4.0.dump @@ -12,6 +12,7 @@ track 0: format 0: id = 1 sampleMimeType = video/avc + codecs = avc1.64001F width = 1080 height = 720 initializationData: diff --git a/testdata/src/test/assets/extractordumps/mp4/sample_fragmented_seekable.mp4.1.dump b/testdata/src/test/assets/extractordumps/mp4/sample_fragmented_seekable.mp4.1.dump index aab2beb27c..4d5f324b4a 100644 --- a/testdata/src/test/assets/extractordumps/mp4/sample_fragmented_seekable.mp4.1.dump +++ b/testdata/src/test/assets/extractordumps/mp4/sample_fragmented_seekable.mp4.1.dump @@ -12,6 +12,7 @@ track 0: format 0: id = 1 sampleMimeType = video/avc + codecs = avc1.64001F width = 1080 height = 720 initializationData: diff --git a/testdata/src/test/assets/extractordumps/mp4/sample_fragmented_seekable.mp4.2.dump b/testdata/src/test/assets/extractordumps/mp4/sample_fragmented_seekable.mp4.2.dump index c1d569c0c9..4b23814b0a 100644 --- a/testdata/src/test/assets/extractordumps/mp4/sample_fragmented_seekable.mp4.2.dump +++ b/testdata/src/test/assets/extractordumps/mp4/sample_fragmented_seekable.mp4.2.dump @@ -12,6 +12,7 @@ track 0: format 0: id = 1 sampleMimeType = video/avc + codecs = avc1.64001F width = 1080 height = 720 initializationData: diff --git a/testdata/src/test/assets/extractordumps/mp4/sample_fragmented_seekable.mp4.3.dump b/testdata/src/test/assets/extractordumps/mp4/sample_fragmented_seekable.mp4.3.dump index dd915bcb08..d234a0f03f 100644 --- a/testdata/src/test/assets/extractordumps/mp4/sample_fragmented_seekable.mp4.3.dump +++ b/testdata/src/test/assets/extractordumps/mp4/sample_fragmented_seekable.mp4.3.dump @@ -12,6 +12,7 @@ track 0: format 0: id = 1 sampleMimeType = video/avc + codecs = avc1.64001F width = 1080 height = 720 initializationData: diff --git a/testdata/src/test/assets/extractordumps/mp4/sample_fragmented_seekable.mp4.unknown_length.dump b/testdata/src/test/assets/extractordumps/mp4/sample_fragmented_seekable.mp4.unknown_length.dump index 5dc1f1db59..d6ff4a544c 100644 --- a/testdata/src/test/assets/extractordumps/mp4/sample_fragmented_seekable.mp4.unknown_length.dump +++ b/testdata/src/test/assets/extractordumps/mp4/sample_fragmented_seekable.mp4.unknown_length.dump @@ -12,6 +12,7 @@ track 0: format 0: id = 1 sampleMimeType = video/avc + codecs = avc1.64001F width = 1080 height = 720 initializationData: diff --git a/testdata/src/test/assets/extractordumps/mp4/sample_fragmented_sei.mp4.0.dump b/testdata/src/test/assets/extractordumps/mp4/sample_fragmented_sei.mp4.0.dump index 34f271ce6a..dbcfe75f35 100644 --- a/testdata/src/test/assets/extractordumps/mp4/sample_fragmented_sei.mp4.0.dump +++ b/testdata/src/test/assets/extractordumps/mp4/sample_fragmented_sei.mp4.0.dump @@ -9,6 +9,7 @@ track 0: format 0: id = 1 sampleMimeType = video/avc + codecs = avc1.64001F width = 1080 height = 720 initializationData: diff --git a/testdata/src/test/assets/extractordumps/mp4/sample_fragmented_sei.mp4.unknown_length.dump b/testdata/src/test/assets/extractordumps/mp4/sample_fragmented_sei.mp4.unknown_length.dump index 34f271ce6a..dbcfe75f35 100644 --- a/testdata/src/test/assets/extractordumps/mp4/sample_fragmented_sei.mp4.unknown_length.dump +++ b/testdata/src/test/assets/extractordumps/mp4/sample_fragmented_sei.mp4.unknown_length.dump @@ -9,6 +9,7 @@ track 0: format 0: id = 1 sampleMimeType = video/avc + codecs = avc1.64001F width = 1080 height = 720 initializationData: diff --git a/testdata/src/test/assets/extractordumps/mp4/sample_mdat_too_long.mp4.0.dump b/testdata/src/test/assets/extractordumps/mp4/sample_mdat_too_long.mp4.0.dump index 287d52240f..0ce12c9a5c 100644 --- a/testdata/src/test/assets/extractordumps/mp4/sample_mdat_too_long.mp4.0.dump +++ b/testdata/src/test/assets/extractordumps/mp4/sample_mdat_too_long.mp4.0.dump @@ -12,6 +12,7 @@ track 0: format 0: id = 1 sampleMimeType = video/avc + codecs = avc1.64001F maxInputSize = 36722 width = 1080 height = 720 diff --git a/testdata/src/test/assets/extractordumps/mp4/sample_mdat_too_long.mp4.1.dump b/testdata/src/test/assets/extractordumps/mp4/sample_mdat_too_long.mp4.1.dump index 5c559c7a15..9dc2300bd9 100644 --- a/testdata/src/test/assets/extractordumps/mp4/sample_mdat_too_long.mp4.1.dump +++ b/testdata/src/test/assets/extractordumps/mp4/sample_mdat_too_long.mp4.1.dump @@ -12,6 +12,7 @@ track 0: format 0: id = 1 sampleMimeType = video/avc + codecs = avc1.64001F maxInputSize = 36722 width = 1080 height = 720 diff --git a/testdata/src/test/assets/extractordumps/mp4/sample_mdat_too_long.mp4.2.dump b/testdata/src/test/assets/extractordumps/mp4/sample_mdat_too_long.mp4.2.dump index 34b0c2099f..d1d819d94a 100644 --- a/testdata/src/test/assets/extractordumps/mp4/sample_mdat_too_long.mp4.2.dump +++ b/testdata/src/test/assets/extractordumps/mp4/sample_mdat_too_long.mp4.2.dump @@ -12,6 +12,7 @@ track 0: format 0: id = 1 sampleMimeType = video/avc + codecs = avc1.64001F maxInputSize = 36722 width = 1080 height = 720 diff --git a/testdata/src/test/assets/extractordumps/mp4/sample_mdat_too_long.mp4.3.dump b/testdata/src/test/assets/extractordumps/mp4/sample_mdat_too_long.mp4.3.dump index c1dc5e9a3f..2241b26787 100644 --- a/testdata/src/test/assets/extractordumps/mp4/sample_mdat_too_long.mp4.3.dump +++ b/testdata/src/test/assets/extractordumps/mp4/sample_mdat_too_long.mp4.3.dump @@ -12,6 +12,7 @@ track 0: format 0: id = 1 sampleMimeType = video/avc + codecs = avc1.64001F maxInputSize = 36722 width = 1080 height = 720 diff --git a/testdata/src/test/assets/extractordumps/mp4/sample_mdat_too_long.mp4.unknown_length.dump b/testdata/src/test/assets/extractordumps/mp4/sample_mdat_too_long.mp4.unknown_length.dump index 287d52240f..0ce12c9a5c 100644 --- a/testdata/src/test/assets/extractordumps/mp4/sample_mdat_too_long.mp4.unknown_length.dump +++ b/testdata/src/test/assets/extractordumps/mp4/sample_mdat_too_long.mp4.unknown_length.dump @@ -12,6 +12,7 @@ track 0: format 0: id = 1 sampleMimeType = video/avc + codecs = avc1.64001F maxInputSize = 36722 width = 1080 height = 720 diff --git a/testdata/src/test/assets/extractordumps/mp4/sample_partially_fragmented.mp4.0.dump b/testdata/src/test/assets/extractordumps/mp4/sample_partially_fragmented.mp4.0.dump index b3d57a3868..5bb4411a69 100644 --- a/testdata/src/test/assets/extractordumps/mp4/sample_partially_fragmented.mp4.0.dump +++ b/testdata/src/test/assets/extractordumps/mp4/sample_partially_fragmented.mp4.0.dump @@ -9,6 +9,7 @@ track 0: format 0: id = 1 sampleMimeType = video/avc + codecs = avc1.64001F width = 1080 height = 720 initializationData: diff --git a/testdata/src/test/assets/extractordumps/mp4/sample_partially_fragmented.mp4.unknown_length.dump b/testdata/src/test/assets/extractordumps/mp4/sample_partially_fragmented.mp4.unknown_length.dump index b3d57a3868..5bb4411a69 100644 --- a/testdata/src/test/assets/extractordumps/mp4/sample_partially_fragmented.mp4.unknown_length.dump +++ b/testdata/src/test/assets/extractordumps/mp4/sample_partially_fragmented.mp4.unknown_length.dump @@ -9,6 +9,7 @@ track 0: format 0: id = 1 sampleMimeType = video/avc + codecs = avc1.64001F width = 1080 height = 720 initializationData: