diff options
author | Anton Khirnov <anton@khirnov.net> | 2019-05-29 09:36:27 +0200 |
---|---|---|
committer | James Almer <jamrial@gmail.com> | 2022-03-15 09:42:43 -0300 |
commit | 53d25983bf2e9db8a9b8107fde9a82aad5259d8a (patch) | |
tree | 18cbc2a88e093bfc18eda3bc79e5c2572c2d553f /libavcodec/mpegaudiodec_template.c | |
parent | a96c94bbd809e1bf56cab276498f7efc2869fbd2 (diff) |
mpegaudio: convert to new channel layout API
Signed-off-by: James Almer <jamrial@gmail.com>
Diffstat (limited to 'libavcodec/mpegaudiodec_template.c')
-rw-r--r-- | libavcodec/mpegaudiodec_template.c | 22 |
1 files changed, 12 insertions, 10 deletions
diff --git a/libavcodec/mpegaudiodec_template.c b/libavcodec/mpegaudiodec_template.c index bbb6ff1120..30b315c450 100644 --- a/libavcodec/mpegaudiodec_template.c +++ b/libavcodec/mpegaudiodec_template.c @@ -1580,8 +1580,9 @@ static int decode_frame(AVCodecContext * avctx, void *data, int *got_frame_ptr, return AVERROR_INVALIDDATA; } /* update codec info */ - avctx->channels = s->nb_channels; - avctx->channel_layout = s->nb_channels == 1 ? AV_CH_LAYOUT_MONO : AV_CH_LAYOUT_STEREO; + av_channel_layout_uninit(&avctx->ch_layout); + avctx->ch_layout = s->nb_channels == 1 ? (AVChannelLayout)AV_CHANNEL_LAYOUT_MONO : + (AVChannelLayout)AV_CHANNEL_LAYOUT_STEREO; if (!avctx->bit_rate) avctx->bit_rate = s->bit_rate; @@ -1661,8 +1662,9 @@ static int decode_frame_adu(AVCodecContext *avctx, void *data, } /* update codec info */ avctx->sample_rate = s->sample_rate; - avctx->channels = s->nb_channels; - avctx->channel_layout = s->nb_channels == 1 ? AV_CH_LAYOUT_MONO : AV_CH_LAYOUT_STEREO; + av_channel_layout_uninit(&avctx->ch_layout); + avctx->ch_layout = s->nb_channels == 1 ? (AVChannelLayout)AV_CHANNEL_LAYOUT_MONO : + (AVChannelLayout)AV_CHANNEL_LAYOUT_STEREO; if (!avctx->bit_rate) avctx->bit_rate = s->bit_rate; @@ -1756,8 +1758,8 @@ static av_cold int decode_init_mp3on4(AVCodecContext * avctx) } s->frames = mp3Frames[cfg.chan_config]; s->coff = chan_offset[cfg.chan_config]; - avctx->channels = ff_mpeg4audio_channels[cfg.chan_config]; - avctx->channel_layout = chan_layout[cfg.chan_config]; + av_channel_layout_uninit(&avctx->ch_layout); + av_channel_layout_from_mask(&avctx->ch_layout, chan_layout[cfg.chan_config]); if (cfg.sample_rate < 16000) s->syncword = 0xffe00000; @@ -1854,8 +1856,8 @@ static int decode_frame_mp3on4(AVCodecContext *avctx, void *data, return AVERROR_INVALIDDATA; } - if (ch + m->nb_channels > avctx->channels || - s->coff[fr] + m->nb_channels > avctx->channels) { + if (ch + m->nb_channels > avctx->ch_layout.nb_channels || + s->coff[fr] + m->nb_channels > avctx->ch_layout.nb_channels) { av_log(avctx, AV_LOG_ERROR, "frame channel count exceeds codec " "channel count\n"); return AVERROR_INVALIDDATA; @@ -1880,7 +1882,7 @@ static int decode_frame_mp3on4(AVCodecContext *avctx, void *data, avctx->bit_rate += m->bit_rate; } - if (ch != avctx->channels) { + if (ch != avctx->ch_layout.nb_channels) { av_log(avctx, AV_LOG_ERROR, "failed to decode all channels\n"); return AVERROR_INVALIDDATA; } @@ -1888,7 +1890,7 @@ static int decode_frame_mp3on4(AVCodecContext *avctx, void *data, /* update codec info */ avctx->sample_rate = s->mp3decctx[0]->sample_rate; - frame->nb_samples = out_size / (avctx->channels * sizeof(OUT_INT)); + frame->nb_samples = out_size / (avctx->ch_layout.nb_channels * sizeof(OUT_INT)); *got_frame_ptr = 1; return buf_size; |