diff --git a/cmdutils.c b/cmdutils.c index bca7034fa..3a84a1482 100644 --- a/cmdutils.c +++ b/cmdutils.c @@ -213,6 +213,41 @@ int opt_default(const char *opt, const char *arg){ return 0; } +int opt_loglevel(const char *opt, const char *arg) +{ + const struct { const char *name; int level; } const log_levels[] = { + { "quiet" , AV_LOG_QUIET }, + { "panic" , AV_LOG_PANIC }, + { "fatal" , AV_LOG_FATAL }, + { "error" , AV_LOG_ERROR }, + { "warning", AV_LOG_WARNING }, + { "info" , AV_LOG_INFO }, + { "verbose", AV_LOG_VERBOSE }, + { "debug" , AV_LOG_DEBUG }, + }; + char *tail; + int level; + int i; + + for (i = 0; i < FF_ARRAY_ELEMS(log_levels); i++) { + if (!strcmp(log_levels[i].name, arg)) { + av_log_set_level(log_levels[i].level); + return 0; + } + } + + level = strtol(arg, &tail, 10); + if (*tail) { + fprintf(stderr, "Invalid loglevel \"%s\". " + "Possible levels are numbers or:\n", arg); + for (i = 0; i < FF_ARRAY_ELEMS(log_levels); i++) + fprintf(stderr, "\"%s\"\n", log_levels[i].name); + exit(1); + } + av_log_set_level(level); + return 0; +} + void set_context_opts(void *ctx, void *opts_ctx, int flags) { int i; diff --git a/cmdutils.h b/cmdutils.h index a71677a22..826f00092 100644 --- a/cmdutils.h +++ b/cmdutils.h @@ -50,6 +50,11 @@ extern struct SwsContext *sws_opts; */ int opt_default(const char *opt, const char *arg); +/** + * Sets the libav* libraries log level. + */ +int opt_loglevel(const char *opt, const char *arg); + /** * Parses a string and returns its corresponding value as a double. * Exits from the application if the string cannot be correctly diff --git a/ffmpeg.c b/ffmpeg.c index cb11dc1e3..b9af4b17d 100644 --- a/ffmpeg.c +++ b/ffmpeg.c @@ -2354,41 +2354,6 @@ static int opt_me_threshold(const char *opt, const char *arg) return 0; } -static int opt_loglevel(const char *opt, const char *arg) -{ - const struct { const char *name; int level; } const log_levels[] = { - { "quiet" , AV_LOG_QUIET }, - { "panic" , AV_LOG_PANIC }, - { "fatal" , AV_LOG_FATAL }, - { "error" , AV_LOG_ERROR }, - { "warning", AV_LOG_WARNING }, - { "info" , AV_LOG_INFO }, - { "verbose", AV_LOG_VERBOSE }, - { "debug" , AV_LOG_DEBUG }, - }; - char *tail; - int level; - int i; - - for (i = 0; i < FF_ARRAY_ELEMS(log_levels); i++) { - if (!strcmp(log_levels[i].name, arg)) { - av_log_set_level(log_levels[i].level); - return 0; - } - } - - level = strtol(arg, &tail, 10); - if (*tail) { - fprintf(stderr, "Invalid loglevel \"%s\". " - "Possible levels are numbers or:\n", arg); - for (i = 0; i < FF_ARRAY_ELEMS(log_levels); i++) - fprintf(stderr, "\"%s\"\n", log_levels[i].name); - av_exit(1); - } - av_log_set_level(level); - return 0; -} - static int opt_verbose(const char *opt, const char *arg) { verbose = parse_number_or_die(opt, arg, OPT_INT64, -10, 10);