From 0effffb89fa02ac711eadcf3e167c9ea65783ab1 Mon Sep 17 00:00:00 2001 From: andrewlewis Date: Tue, 15 Nov 2016 09:31:24 -0800 Subject: [PATCH] Add support for reading .mp3 boxes in stsd. This is used by Quicktime for MP3 tracks. Issue: #2066 ------------- Created by MOE: https://github.com/google/moe MOE_MIGRATED_REVID=139209989 --- .../com/google/android/exoplayer2/extractor/mp4/Atom.java | 1 + .../google/android/exoplayer2/extractor/mp4/AtomParsers.java | 5 ++++- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/library/src/main/java/com/google/android/exoplayer2/extractor/mp4/Atom.java b/library/src/main/java/com/google/android/exoplayer2/extractor/mp4/Atom.java index 749c9b3542b..8291fd5efce 100644 --- a/library/src/main/java/com/google/android/exoplayer2/extractor/mp4/Atom.java +++ b/library/src/main/java/com/google/android/exoplayer2/extractor/mp4/Atom.java @@ -52,6 +52,7 @@ public static final int TYPE_d263 = Util.getIntegerCodeForString("d263"); public static final int TYPE_mdat = Util.getIntegerCodeForString("mdat"); public static final int TYPE_mp4a = Util.getIntegerCodeForString("mp4a"); + public static final int TYPE__mp3 = Util.getIntegerCodeForString(".mp3"); public static final int TYPE_wave = Util.getIntegerCodeForString("wave"); public static final int TYPE_lpcm = Util.getIntegerCodeForString("lpcm"); public static final int TYPE_sowt = Util.getIntegerCodeForString("sowt"); diff --git a/library/src/main/java/com/google/android/exoplayer2/extractor/mp4/AtomParsers.java b/library/src/main/java/com/google/android/exoplayer2/extractor/mp4/AtomParsers.java index 47cb3262e1c..b8d5d634edc 100644 --- a/library/src/main/java/com/google/android/exoplayer2/extractor/mp4/AtomParsers.java +++ b/library/src/main/java/com/google/android/exoplayer2/extractor/mp4/AtomParsers.java @@ -600,7 +600,8 @@ private static StsdData parseStsd(ParsableByteArray stsd, int trackId, int rotat || childAtomType == Atom.TYPE_dtsc || childAtomType == Atom.TYPE_dtse || childAtomType == Atom.TYPE_dtsh || childAtomType == Atom.TYPE_dtsl || childAtomType == Atom.TYPE_samr || childAtomType == Atom.TYPE_sawb - || childAtomType == Atom.TYPE_lpcm || childAtomType == Atom.TYPE_sowt) { + || childAtomType == Atom.TYPE_lpcm || childAtomType == Atom.TYPE_sowt + || childAtomType == Atom.TYPE__mp3) { parseAudioSampleEntry(stsd, childAtomType, childStartPosition, childAtomSize, trackId, language, isQuickTime, drmInitData, out, i); } else if (childAtomType == Atom.TYPE_TTML) { @@ -829,6 +830,8 @@ private static void parseAudioSampleEntry(ParsableByteArray parent, int atomType mimeType = MimeTypes.AUDIO_AMR_WB; } else if (atomType == Atom.TYPE_lpcm || atomType == Atom.TYPE_sowt) { mimeType = MimeTypes.AUDIO_RAW; + } else if (atomType == Atom.TYPE__mp3) { + mimeType = MimeTypes.AUDIO_MPEG; } byte[] initializationData = null;