[FFmpeg-devel] [PATCH 2/2] avcodec/liblc3enc: don't force unspec channel layouts

James Almer jamrial at gmail.com
Thu Apr 4 19:29:36 EEST 2024


We only care about channel count. Layout details will be ignored either way.

Signed-off-by: James Almer <jamrial at gmail.com>
---
 libavcodec/liblc3enc.c | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/libavcodec/liblc3enc.c b/libavcodec/liblc3enc.c
index 63d1645b10..5f8169a0cf 100644
--- a/libavcodec/liblc3enc.c
+++ b/libavcodec/liblc3enc.c
@@ -61,6 +61,11 @@ static av_cold int liblc3_encode_init(AVCodecContext *avctx)
                "Unsupported frame duration %.1f ms.\n", frame_us / 1000.f);
         return AVERROR(EINVAL);
     }
+    if (channels < 0 || channels > ENCODER_MAX_CHANNELS) {
+        av_log(avctx, AV_LOG_ERROR,
+               "Unsupported channel count %d. Should be 1 or 2\n", channels);
+        return AVERROR(EINVAL);
+    }
 
     hr_mode |= srate_hz > 48000;
     hr_mode &= srate_hz >= 48000;
@@ -195,9 +200,6 @@ const FFCodec ff_liblc3_encoder = {
     .p.type         = AVMEDIA_TYPE_AUDIO,
     .p.id           = AV_CODEC_ID_LC3,
     .p.capabilities = AV_CODEC_CAP_DR1 | AV_CODEC_CAP_DELAY,
-    .p.ch_layouts = (const AVChannelLayout[])
-        { { AV_CHANNEL_ORDER_UNSPEC, 1 },
-          { AV_CHANNEL_ORDER_UNSPEC, 2 }, { 0 } },
     .p.supported_samplerates = (const int [])
         { 96000, 48000, 32000, 24000, 16000, 8000, 0 },
     .p.sample_fmts = (const enum AVSampleFormat[])
-- 
2.44.0



More information about the ffmpeg-devel mailing list