Use av_get_default_channel_layout for unknown channel layouts

loadfix
scrawl 10 years ago
parent efa4d09c48
commit 17cb181f88

@ -307,19 +307,7 @@ void FFmpeg_Decoder::getInfo(int *samplerate, ChannelConfig *chans, SampleType *
int64_t ch_layout = (*mStream)->codec->channel_layout; int64_t ch_layout = (*mStream)->codec->channel_layout;
if(ch_layout == 0) if(ch_layout == 0)
{ ch_layout = av_get_default_channel_layout((*mStream)->codec->channels);
/* Unknown channel layout. Try to guess. */
if((*mStream)->codec->channels == 1)
ch_layout = AV_CH_LAYOUT_MONO;
else if((*mStream)->codec->channels == 2)
ch_layout = AV_CH_LAYOUT_STEREO;
else
{
std::stringstream sstr("Unsupported raw channel count: ");
sstr << (*mStream)->codec->channels;
fail(sstr.str());
}
}
mOutputChannelLayout = ch_layout; mOutputChannelLayout = ch_layout;
if (ch_layout == AV_CH_LAYOUT_5POINT1 || ch_layout == AV_CH_LAYOUT_7POINT1 if (ch_layout == AV_CH_LAYOUT_5POINT1 || ch_layout == AV_CH_LAYOUT_7POINT1

@ -94,19 +94,7 @@ void MovieAudioDecoder::setupFormat()
uint64_t inputChannelLayout = mAVStream->codec->channel_layout; uint64_t inputChannelLayout = mAVStream->codec->channel_layout;
if (inputChannelLayout == 0) if (inputChannelLayout == 0)
{ inputChannelLayout = av_get_default_channel_layout(mAVStream->codec->channels);
/* Unknown channel layout. Try to guess. */
if(mAVStream->codec->channels == 1)
inputChannelLayout = AV_CH_LAYOUT_MONO;
else if(mAVStream->codec->channels == 2)
inputChannelLayout = AV_CH_LAYOUT_STEREO;
else
{
std::stringstream sstr("Unsupported raw channel count: ");
sstr << mAVStream->codec->channels;
fail(sstr.str());
}
}
int inputSampleRate = mAVStream->codec->sample_rate; int inputSampleRate = mAVStream->codec->sample_rate;

Loading…
Cancel
Save