From b122be0be381830fe5160f30e71ea59cb03fec2e Mon Sep 17 00:00:00 2001 From: Martin Pulec Date: Wed, 25 Oct 2023 11:00:21 +0200 Subject: [PATCH] lavc audio enc: improved error reporting - print error if: 1. `uv -s testcard -A Opus --param audio-lavc-encoder=nonsense` 2. `uv -s testcard -A Opus --param audio-lavc-encoder=libopus` but libopus was not compiled in - print requested encoder name if not suitable to encode the codec, eg. `uv -t testcard -A Opus --param audio-lavc-encoder=AAC` --- src/audio/codec/libavcodec.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/audio/codec/libavcodec.c b/src/audio/codec/libavcodec.c index ef54f8370..d613553b2 100644 --- a/src/audio/codec/libavcodec.c +++ b/src/audio/codec/libavcodec.c @@ -144,8 +144,10 @@ static void print_libav_audio_error(int verbosity, const char *msg, int rc) { static const struct AVCodec * init_encoder(enum AVCodecID codec_id, const char *preferred_encoder) { - if (get_commandline_param("audio-lavc-encoder") != NULL) { - preferred_encoder = get_commandline_param("audio-lavc-encoder"); + const char *const requested_encoder = + get_commandline_param("audio-lavc-encoder"); + if (requested_encoder != NULL) { + preferred_encoder = requested_encoder; } const struct AVCodec *ret = NULL; if (preferred_encoder) { @@ -155,6 +157,12 @@ init_encoder(enum AVCodecID codec_id, const char *preferred_encoder) "Requested encoder %s cannot handle " "specified codec!\n", preferred_encoder); + assert(preferred_encoder == requested_encoder); + return NULL; + } + if (ret == NULL && requested_encoder != NULL) { + MSG(ERROR, "Requested encoder %s was not found!\n", + requested_encoder); return NULL; } }