From 6c37316dcdf96b07f627cc9a98f84c0ffadc8107 Mon Sep 17 00:00:00 2001 From: Richard Fuchs Date: Mon, 31 Aug 2026 10:00:11 -0400 Subject: [PATCH] MT#65420 return status from set_enc_options Change-Id: I9aacba30aae50705db54d0f339c3a51dacd50417 --- lib/amr.c | 4 +++- lib/avc.c | 3 ++- lib/codeclib.h | 2 +- lib/ilbc.c | 3 ++- 4 files changed, 8 insertions(+), 4 deletions(-) diff --git a/lib/amr.c b/lib/amr.c index fe0527c9d..a1c85de82 100644 --- a/lib/amr.c +++ b/lib/amr.c @@ -145,7 +145,7 @@ static void amr_set_enc_codec_options(str *key, str *value, void *data) { else codeclib_set_av_opt_intstr(enc, key, value); } -static void amr_set_enc_options(encoder_t *enc, const str *codec_opts) { +static bool amr_set_enc_options(encoder_t *enc, const str *codec_opts) { amr_set_encdec_options(&enc->codec_options, enc->def); codeclib_key_value_parse(codec_opts, amr_set_enc_codec_options, enc); @@ -175,6 +175,8 @@ static void amr_set_enc_options(encoder_t *enc, const str *codec_opts) { enc->bitrate = use_bitrate; } } + + return true; } static void amr_set_dec_options(decoder_t *dec, const str *codec_opts) { amr_set_encdec_options(&dec->codec_options, dec->def); diff --git a/lib/avc.c b/lib/avc.c index 9a575c772..047971a0b 100644 --- a/lib/avc.c +++ b/lib/avc.c @@ -234,7 +234,8 @@ const char *avc_encoder_init(encoder_t *enc, const str *extra_opts) { enc->avc.codec->name); if (enc->def->set_enc_options) - enc->def->set_enc_options(enc, extra_opts); + if (!enc->def->set_enc_options(enc, extra_opts)) + return "failed to set encoder options"; SET_CHANNELS(enc->avc.avcctx, enc->actual_format.channels); DEF_CH_LAYOUT(&enc->avc.avcctx->CH_LAYOUT, enc->actual_format.channels); diff --git a/lib/codeclib.h b/lib/codeclib.h index ba3aea2d4..776b64387 100644 --- a/lib/codeclib.h +++ b/lib/codeclib.h @@ -109,7 +109,7 @@ typedef struct codec_cc_s codec_cc_t; typedef int packetizer_f(AVPacket *, str *, size_t, encoder_t *, int64_t *__restrict pts, int64_t *__restrict dur); typedef void format_init_f(struct rtp_payload_type *); -typedef void set_enc_options_f(encoder_t *, const str *); +typedef bool set_enc_options_f(encoder_t *, const str *); typedef void set_dec_options_f(decoder_t *, const str *); typedef void select_encoder_format_f(encoder_t *, format_t *requested_format, const format_t *input_format, const struct rtp_codec_format *fmtp); diff --git a/lib/ilbc.c b/lib/ilbc.c index 72c7810b3..e5b83b6ef 100644 --- a/lib/ilbc.c +++ b/lib/ilbc.c @@ -52,9 +52,10 @@ static int ilbc_mode(int ptime, const union codec_format_options *fmtp, const ch return mode; } -static void ilbc_set_enc_options(encoder_t *enc, const str *codec_opts) { +static bool ilbc_set_enc_options(encoder_t *enc, const str *codec_opts) { int mode = ilbc_mode(enc->ptime, &enc->format_options, "encoder"); codeclib_set_av_opt_int(enc, "mode", mode); + return true; } static void ilbc_set_dec_options(decoder_t *dec, const str *codec_opts) {