[FFmpeg-devel] [PATCH 2/2] avcodec/liblc3enc: don't force unspec channel layouts
Andreas Rheinhardt
andreas.rheinhardt at outlook.com
Thu Apr 4 19:59:09 EEST 2024
James Almer:
> 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[])
I think we should rather change encode.c to mean that an UNSPEC channel
layout (in AVCodec.ch_layouts) works with every channel layout with the
same number of channels.
- Andreas
More information about the ffmpeg-devel
mailing list