From 6becba8c42ae87b715b822a01781eed6301ca2fb Mon Sep 17 00:00:00 2001 From: Devin Tuchsen Date: Sat, 28 Jan 2017 15:15:41 -0600 Subject: [PATCH] Only use ALAC workaround if sample rate is 0 This prevents the workaround from occuring once FFmpeg has the bug patched. --- .../google/android/exoplayer2/ext/ffmpeg/FfmpegDecoder.java | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/extensions/ffmpeg/src/main/java/com/google/android/exoplayer2/ext/ffmpeg/FfmpegDecoder.java b/extensions/ffmpeg/src/main/java/com/google/android/exoplayer2/ext/ffmpeg/FfmpegDecoder.java index 4c9eaa49c4..2af2101ee7 100644 --- a/extensions/ffmpeg/src/main/java/com/google/android/exoplayer2/ext/ffmpeg/FfmpegDecoder.java +++ b/extensions/ffmpeg/src/main/java/com/google/android/exoplayer2/ext/ffmpeg/FfmpegDecoder.java @@ -88,14 +88,13 @@ import java.util.List; } if (!hasOutputFormat) { channelCount = ffmpegGetChannelCount(nativeContext); - if ("alac".equals(codecName)) { + sampleRate = ffmpegGetSampleRate(nativeContext); + if (sampleRate == 0 && "alac".equals(codecName)) { // ALAC decoder did not set the sample rate in earlier versions of FFMPEG. // See https://trac.ffmpeg.org/ticket/6096 ParsableByteArray parsableExtraData = new ParsableByteArray(extraData); parsableExtraData.setPosition(extraData.length - 4); sampleRate = parsableExtraData.readUnsignedIntToInt(); - } else { - sampleRate = ffmpegGetSampleRate(nativeContext); } hasOutputFormat = true; }