diff --git a/library/src/main/java/com/google/android/exoplayer/extractor/mp3/Mp3Extractor.java b/library/src/main/java/com/google/android/exoplayer/extractor/mp3/Mp3Extractor.java index 7e127ee1eb..fc9ee215cb 100644 --- a/library/src/main/java/com/google/android/exoplayer/extractor/mp3/Mp3Extractor.java +++ b/library/src/main/java/com/google/android/exoplayer/extractor/mp3/Mp3Extractor.java @@ -30,7 +30,6 @@ import com.google.android.exoplayer.util.Util; import java.io.EOFException; import java.io.IOException; -import java.util.Collections; /** * Extracts data from an MP3 file. @@ -247,7 +246,7 @@ public final class Mp3Extractor implements Extractor { extractorOutput.seekMap(seeker); trackOutput.format(MediaFormat.createAudioFormat(synchronizedHeader.mimeType, MpegAudioHeader.MAX_FRAME_SIZE_BYTES, seeker.getDurationUs(), synchronizedHeader.channels, - synchronizedHeader.sampleRate, Collections.emptyList())); + synchronizedHeader.sampleRate, null)); } return headerPosition; diff --git a/library/src/main/java/com/google/android/exoplayer/extractor/mp4/AtomParsers.java b/library/src/main/java/com/google/android/exoplayer/extractor/mp4/AtomParsers.java index 4b5f2ce7f3..37ed98d3cc 100644 --- a/library/src/main/java/com/google/android/exoplayer/extractor/mp4/AtomParsers.java +++ b/library/src/main/java/com/google/android/exoplayer/extractor/mp4/AtomParsers.java @@ -471,8 +471,7 @@ import java.util.List; } } - List initializationData = csdLength == 0 ? Collections.emptyList() - : Collections.singletonList(buffer); + List initializationData = csdLength == 0 ? null : Collections.singletonList(buffer); return Pair.create(initializationData, lengthSizeMinusOne + 1); } @@ -628,6 +627,10 @@ import java.util.List; int objectTypeIndication = parent.readUnsignedByte(); String mimeType; switch (objectTypeIndication) { + case 0x6B: + mimeType = MimeTypes.AUDIO_MPEG; + // Don't extract codec-specific data for MPEG audio tracks, as it is not needed. + return Pair.create(mimeType, null); case 0x20: mimeType = MimeTypes.VIDEO_MP4V; break; @@ -640,9 +643,6 @@ import java.util.List; case 0x40: mimeType = MimeTypes.AUDIO_AAC; break; - case 0x6B: - mimeType = MimeTypes.AUDIO_MPEG; - break; case 0xA5: mimeType = MimeTypes.AUDIO_AC3; break; diff --git a/library/src/main/java/com/google/android/exoplayer/extractor/ts/MpegAudioReader.java b/library/src/main/java/com/google/android/exoplayer/extractor/ts/MpegAudioReader.java index 005c687144..b2ee4ec7a9 100644 --- a/library/src/main/java/com/google/android/exoplayer/extractor/ts/MpegAudioReader.java +++ b/library/src/main/java/com/google/android/exoplayer/extractor/ts/MpegAudioReader.java @@ -21,8 +21,6 @@ import com.google.android.exoplayer.extractor.TrackOutput; import com.google.android.exoplayer.util.MpegAudioHeader; import com.google.android.exoplayer.util.ParsableByteArray; -import java.util.Collections; - /** * Parses a continuous MPEG Audio byte stream and extracts individual frames. */ @@ -164,7 +162,7 @@ import java.util.Collections; frameDurationUs = (C.MICROS_PER_SECOND * header.samplesPerFrame) / header.sampleRate; MediaFormat mediaFormat = MediaFormat.createAudioFormat(header.mimeType, MpegAudioHeader.MAX_FRAME_SIZE_BYTES, C.UNKNOWN_TIME_US, header.channels, - header.sampleRate, Collections.emptyList()); + header.sampleRate, null); output.format(mediaFormat); hasOutputFormat = true; } diff --git a/library/src/main/java/com/google/android/exoplayer/util/Ac3Util.java b/library/src/main/java/com/google/android/exoplayer/util/Ac3Util.java index 31efb37acd..01647e22ca 100644 --- a/library/src/main/java/com/google/android/exoplayer/util/Ac3Util.java +++ b/library/src/main/java/com/google/android/exoplayer/util/Ac3Util.java @@ -17,8 +17,6 @@ package com.google.android.exoplayer.util; import com.google.android.exoplayer.MediaFormat; -import java.util.Collections; - /** * Utility methods for parsing AC-3 headers. */ @@ -51,7 +49,7 @@ public final class Ac3Util { channelCount++; } return MediaFormat.createAudioFormat(MimeTypes.AUDIO_AC3, MediaFormat.NO_VALUE, - channelCount, sampleRate, Collections.emptyList()); + channelCount, sampleRate, null); } /** @@ -74,7 +72,7 @@ public final class Ac3Util { channelCount++; } return MediaFormat.createAudioFormat(MimeTypes.AUDIO_EC3, MediaFormat.NO_VALUE, - channelCount, sampleRate, Collections.emptyList()); + channelCount, sampleRate, null); } /** @@ -102,8 +100,7 @@ public final class Ac3Util { } boolean lfeon = data.readBit(); return MediaFormat.createAudioFormat(MimeTypes.AUDIO_AC3, MediaFormat.NO_VALUE, - CHANNEL_COUNTS[acmod] + (lfeon ? 1 : 0), SAMPLE_RATES[fscod], - Collections.emptyList()); + CHANNEL_COUNTS[acmod] + (lfeon ? 1 : 0), SAMPLE_RATES[fscod], null); } /**