From 6682e6235c5107db66dfe32fea43a6fa7021f18d Mon Sep 17 00:00:00 2001 From: xufuji456 Date: Thu, 19 Nov 2020 19:31:43 +0800 Subject: [PATCH] Compat video coding with mpeg1video in Mp4Extractor --- .../com/google/android/exoplayer2/extractor/mp4/Atom.java | 3 +++ .../android/exoplayer2/extractor/mp4/AtomParsers.java | 7 ++++++- 2 files changed, 9 insertions(+), 1 deletion(-) 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 325dc24aeca..16a304027a0 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 @@ -385,6 +385,9 @@ @SuppressWarnings("ConstantCaseForConstants") public static final int TYPE_twos = 0x74776f73; + @SuppressWarnings("ConstantCaseForConstants") + public static final int TYPE__m1v = 0x6d317620; + public final int type; public Atom(int type) { 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 5c86876abd9..5faabff5236 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 @@ -869,7 +869,8 @@ private static StsdData parseStsd( || childAtomType == Atom.TYPE_dvav || childAtomType == Atom.TYPE_dva1 || childAtomType == Atom.TYPE_dvhe - || childAtomType == Atom.TYPE_dvh1) { + || childAtomType == Atom.TYPE_dvh1 + || childAtomType == Atom.TYPE__m1v) { parseVideoSampleEntry(stsd, childAtomType, childStartPosition, childAtomSize, trackId, rotationDegrees, drmInitData, out, i); } else if (childAtomType == Atom.TYPE_mp4a @@ -1087,6 +1088,10 @@ private static void parseVideoSampleEntry( childPosition += childAtomSize; } + if (mimeType == null && atomType == Atom.TYPE__m1v) { + mimeType = MimeTypes.VIDEO_MPEG; + } + // If the media type was not recognized, ignore the track. if (mimeType == null) { return;