diff options
Diffstat (limited to 'audio/decode/ad_lavc.c')
-rw-r--r-- | audio/decode/ad_lavc.c | 16 |
1 files changed, 7 insertions, 9 deletions
diff --git a/audio/decode/ad_lavc.c b/audio/decode/ad_lavc.c index 0f442cef52..45e06c8b3d 100644 --- a/audio/decode/ad_lavc.c +++ b/audio/decode/ad_lavc.c @@ -134,15 +134,15 @@ static int setup_format(struct dec_audio *da) AVCodecContext *lavc_context = priv->avctx; struct sh_audio *sh_audio = da->header->audio; - int sample_format = af_from_avformat(lavc_context->sample_fmt); - if (!sample_format) - return -1; + // Note: invalid parameters are rejected by dec_audio.c + + mp_audio_set_format(&da->decoded, af_from_avformat(lavc_context->sample_fmt)); - int samplerate = lavc_context->sample_rate; - if (!samplerate && sh_audio->wf) { + da->decoded.rate = lavc_context->sample_rate; + if (!da->decoded.rate && sh_audio->wf) { // If not set, try container samplerate. // (Maybe this can't happen, and it's an artifact from the past.) - samplerate = sh_audio->wf->nSamplesPerSec; + da->decoded.rate = sh_audio->wf->nSamplesPerSec; mp_tmsg(MSGT_DECAUDIO, MSGL_WARN, "ad_lavc: using container rate.\n"); } @@ -155,10 +155,8 @@ static int setup_format(struct dec_audio *da) if (lavc_chmap.num == sh_audio->channels.num) lavc_chmap = sh_audio->channels; } - mp_audio_set_channels(&da->decoded, &lavc_chmap); - mp_audio_set_format(&da->decoded, sample_format); - da->decoded.rate = samplerate; + return 0; } |