Only use ALAC workaround if sample rate is 0

This prevents the workaround from occuring once FFmpeg has the bug
patched.
This commit is contained in:
Devin Tuchsen 2017-01-28 15:15:41 -06:00
parent f7b2452d46
commit 6becba8c42
No known key found for this signature in database
GPG Key ID: 5699C0E30E109ECE

View File

@ -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;
}