@@ -90,12 +90,6 @@ void register_exit(void (*cb)(int ret))
program_exit = cb;
}
-void report_and_exit(int ret)
-{
- av_log(NULL, AV_LOG_FATAL, "%s\n", av_err2str(ret));
- exit_program(AVUNERROR(ret));
-}
-
void exit_program(int ret)
{
if (program_exit)
@@ -54,17 +54,6 @@ extern int hide_banner;
*/
void register_exit(void (*cb)(int ret));
-/**
- * Reports an error corresponding to the provided
- * AVERROR code and calls exit_program() with the
- * corresponding POSIX error code.
- * @note ret must be an AVERROR-value of a POSIX error code
- * (i.e. AVERROR(EFOO) and not AVERROR_FOO).
- * library functions can return both, so call this only
- * with AVERROR(EFOO) of your own.
- */
-void report_and_exit(int ret) av_noreturn;
-
/**
* Wraps exit with a program-specific cleanup routine.
*/
@@ -632,7 +632,7 @@ static int compare_codec_desc(const void *a, const void *b)
strcmp((*da)->name, (*db)->name);
}
-static unsigned get_codecs_sorted(const AVCodecDescriptor ***rcodecs)
+static int get_codecs_sorted(const AVCodecDescriptor ***rcodecs)
{
const AVCodecDescriptor *desc = NULL;
const AVCodecDescriptor **codecs;
@@ -641,7 +641,7 @@ static unsigned get_codecs_sorted(const AVCodecDescriptor ***rcodecs)
while ((desc = avcodec_descriptor_next(desc)))
nb_codecs++;
if (!(codecs = av_calloc(nb_codecs, sizeof(*codecs))))
- report_and_exit(AVERROR(ENOMEM));
+ return AVERROR(ENOMEM);
desc = NULL;
while ((desc = avcodec_descriptor_next(desc)))
codecs[i++] = desc;
@@ -666,7 +666,11 @@ static char get_media_type_char(enum AVMediaType type)
int show_codecs(void *optctx, const char *opt, const char *arg)
{
const AVCodecDescriptor **codecs;
- unsigned i, nb_codecs = get_codecs_sorted(&codecs);
+ unsigned i;
+ int nb_codecs = get_codecs_sorted(&codecs);
+
+ if (nb_codecs < 0)
+ return nb_codecs;
printf("Codecs:\n"
" D..... = Decoding supported\n"