[FFmpeg-devel] [PATCH 198/281] cng: convert to new channel layout API

James Almer jamrial at gmail.com
Thu Jan 13 04:02:31 EET 2022


From: Anton Khirnov <anton at khirnov.net>

Signed-off-by: Vittorio Giovara <vittorio.giovara at gmail.com>
Signed-off-by: James Almer <jamrial at gmail.com>
---
 libavcodec/cngdec.c | 3 ++-
 libavcodec/cngenc.c | 6 +-----
 2 files changed, 3 insertions(+), 6 deletions(-)

diff --git a/libavcodec/cngdec.c b/libavcodec/cngdec.c
index ecfd4abfc9..30d36f7326 100644
--- a/libavcodec/cngdec.c
+++ b/libavcodec/cngdec.c
@@ -56,7 +56,8 @@ static av_cold int cng_decode_init(AVCodecContext *avctx)
     CNGContext *p = avctx->priv_data;
 
     avctx->sample_fmt  = AV_SAMPLE_FMT_S16;
-    avctx->channels    = 1;
+    av_channel_layout_uninit(&avctx->ch_layout);
+    avctx->ch_layout   = (AVChannelLayout)AV_CHANNEL_LAYOUT_MONO;
     avctx->sample_rate = 8000;
 
     p->order            = 12;
diff --git a/libavcodec/cngenc.c b/libavcodec/cngenc.c
index 830311f955..d77bbac40e 100644
--- a/libavcodec/cngenc.c
+++ b/libavcodec/cngenc.c
@@ -48,11 +48,6 @@ static av_cold int cng_encode_init(AVCodecContext *avctx)
     CNGContext *p = avctx->priv_data;
     int ret;
 
-    if (avctx->channels != 1) {
-        av_log(avctx, AV_LOG_ERROR, "Only mono supported\n");
-        return AVERROR(EINVAL);
-    }
-
     avctx->frame_size = 640;
     p->order = 10;
     if ((ret = ff_lpc_init(&p->lpc, avctx->frame_size, p->order, FF_LPC_TYPE_LEVINSON)) < 0)
@@ -113,5 +108,6 @@ const AVCodec ff_comfortnoise_encoder = {
     .close          = cng_encode_close,
     .sample_fmts    = (const enum AVSampleFormat[]){ AV_SAMPLE_FMT_S16,
                                                      AV_SAMPLE_FMT_NONE },
+    .ch_layouts     = (const AVChannelLayout[]){ AV_CHANNEL_LAYOUT_MONO, { 0 } },
     .caps_internal  = FF_CODEC_CAP_INIT_THREADSAFE | FF_CODEC_CAP_INIT_CLEANUP,
 };
-- 
2.34.1



More information about the ffmpeg-devel mailing list