diff --git a/RELEASENOTES.md b/RELEASENOTES.md index a319fa6ca49..0d86c4fbd35 100644 --- a/RELEASENOTES.md +++ b/RELEASENOTES.md @@ -95,6 +95,8 @@ is malformed and should be re-encoded. * Improve support for truncated Ogg streams ([#7608](https://github.com/google/ExoPlayer/issues/7608)). + * Add support for MP4 H263 atom type + ([#9158](https://github.com/google/ExoPlayer/issues/9158)). * HLS: * Fix issue where playback of a live event could become stuck rather than transitioning to `STATE_ENDED` when the event ends diff --git a/library/extractor/src/main/java/com/google/android/exoplayer2/extractor/mp4/Atom.java b/library/extractor/src/main/java/com/google/android/exoplayer2/extractor/mp4/Atom.java index 1cb554151f1..83aeadd01da 100644 --- a/library/extractor/src/main/java/com/google/android/exoplayer2/extractor/mp4/Atom.java +++ b/library/extractor/src/main/java/com/google/android/exoplayer2/extractor/mp4/Atom.java @@ -99,6 +99,8 @@ @SuppressWarnings("ConstantCaseForConstants") public static final int TYPE_s263 = 0x73323633; + public static final int TYPE_H263 = 0x48323633; + @SuppressWarnings("ConstantCaseForConstants") public static final int TYPE_d263 = 0x64323633; 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 5da35527a5e..957bc4b4abc 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 @@ -938,6 +938,7 @@ private static StsdData parseStsd( || childAtomType == Atom.TYPE_hvc1 || childAtomType == Atom.TYPE_hev1 || childAtomType == Atom.TYPE_s263 + || childAtomType == Atom.TYPE_H263 || childAtomType == Atom.TYPE_vp08 || childAtomType == Atom.TYPE_vp09 || childAtomType == Atom.TYPE_av01 @@ -1100,6 +1101,8 @@ private static void parseVideoSampleEntry( @Nullable String mimeType = null; if (atomType == Atom.TYPE_m1v_) { mimeType = MimeTypes.VIDEO_MPEG; + } else if (atomType == Atom.TYPE_H263) { + mimeType = MimeTypes.VIDEO_H263; } @Nullable List initializationData = null;