diff --git a/RELEASENOTES.md b/RELEASENOTES.md index 9011ac21bd..012468888d 100644 --- a/RELEASENOTES.md +++ b/RELEASENOTES.md @@ -25,6 +25,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 26f2211135..273421a813 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 @@ -106,6 +106,8 @@ import java.util.List; @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 fad93f5a15..dea3113b61 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 @@ -915,6 +915,7 @@ import org.checkerframework.checker.nullness.compatqual.NullableType; || 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 @@ -1056,6 +1057,8 @@ import org.checkerframework.checker.nullness.compatqual.NullableType; @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;