Commit 6becba8c by Devin Tuchsen

Only use ALAC workaround if sample rate is 0

This prevents the workaround from occuring once FFmpeg has the bug
patched.
parent f7b2452d
...@@ -88,14 +88,13 @@ import java.util.List; ...@@ -88,14 +88,13 @@ import java.util.List;
} }
if (!hasOutputFormat) { if (!hasOutputFormat) {
channelCount = ffmpegGetChannelCount(nativeContext); 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. // ALAC decoder did not set the sample rate in earlier versions of FFMPEG.
// See https://trac.ffmpeg.org/ticket/6096 // See https://trac.ffmpeg.org/ticket/6096
ParsableByteArray parsableExtraData = new ParsableByteArray(extraData); ParsableByteArray parsableExtraData = new ParsableByteArray(extraData);
parsableExtraData.setPosition(extraData.length - 4); parsableExtraData.setPosition(extraData.length - 4);
sampleRate = parsableExtraData.readUnsignedIntToInt(); sampleRate = parsableExtraData.readUnsignedIntToInt();
} else {
sampleRate = ffmpegGetSampleRate(nativeContext);
} }
hasOutputFormat = true; hasOutputFormat = true;
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment