diff options
author | Anton Khirnov <anton@khirnov.net> | 2024-02-08 14:45:39 +0100 |
---|---|---|
committer | Anton Khirnov <anton@khirnov.net> | 2024-03-01 16:57:24 +0100 |
commit | 8904f351332d0c904828ed612ca406ac66ac2e22 (patch) | |
tree | 10fd92085272298d6e5038a7e1e10aaf9945f9ee /libavutil/opt.c | |
parent | 6456dd50a6884e9ffccd3f32a1d9a87bcfa9e2ef (diff) | |
download | ffmpeg-8904f351332d0c904828ed612ca406ac66ac2e22.tar.gz |
lavu/opt: simplify printing option type in opt_list()
Diffstat (limited to 'libavutil/opt.c')
-rw-r--r-- | libavutil/opt.c | 107 |
1 files changed, 37 insertions, 70 deletions
diff --git a/libavutil/opt.c b/libavutil/opt.c index 0681b19896..397fd07ff6 100644 --- a/libavutil/opt.c +++ b/libavutil/opt.c @@ -1241,6 +1241,41 @@ static char *get_opt_flags_string(void *obj, const char *unit, int64_t value) return NULL; } +static void log_type(void *av_log_obj, const AVOption *o, + enum AVOptionType parent_type) +{ + const char *desc[] = { + [AV_OPT_TYPE_FLAGS] = "<flags>", + [AV_OPT_TYPE_INT] = "<int>", + [AV_OPT_TYPE_INT64] = "<int64>", + [AV_OPT_TYPE_UINT64] = "<uint64>", + [AV_OPT_TYPE_DOUBLE] = "<double>", + [AV_OPT_TYPE_FLOAT] = "<float>", + [AV_OPT_TYPE_STRING] = "<string>", + [AV_OPT_TYPE_RATIONAL] = "<rational>", + [AV_OPT_TYPE_BINARY] = "<binary>", + [AV_OPT_TYPE_DICT] = "<dictionary>", + [AV_OPT_TYPE_IMAGE_SIZE] = "<image_size>", + [AV_OPT_TYPE_VIDEO_RATE] = "<video_rate>", + [AV_OPT_TYPE_PIXEL_FMT] = "<pix_fmt>", + [AV_OPT_TYPE_SAMPLE_FMT] = "<sample_fmt>", + [AV_OPT_TYPE_DURATION] = "<duration>", + [AV_OPT_TYPE_COLOR] = "<color>", +#if FF_API_OLD_CHANNEL_LAYOUT + [AV_OPT_TYPE_CHANNEL_LAYOUT]= "<channel_layout>", +#endif + [AV_OPT_TYPE_CHLAYOUT] = "<channel_layout>", + [AV_OPT_TYPE_BOOL] = "<boolean>", + }; + + if (o->type == AV_OPT_TYPE_CONST && parent_type == AV_OPT_TYPE_INT) + av_log(av_log_obj, AV_LOG_INFO, "%-12"PRId64" ", o->default_val.i64); + else if (o->type < FF_ARRAY_ELEMS(desc) && desc[o->type]) + av_log(av_log_obj, AV_LOG_INFO, "%-12s ", desc[o->type]); + else + av_log(av_log_obj, AV_LOG_INFO, "%-12s ", ""); +} + static void opt_list(void *obj, void *av_log_obj, const char *unit, int req_flags, int rej_flags, enum AVOptionType parent_type) { @@ -1269,76 +1304,8 @@ static void opt_list(void *obj, void *av_log_obj, const char *unit, (opt->flags & AV_OPT_FLAG_FILTERING_PARAM) ? " " : "-", opt->name); - switch (opt->type) { - case AV_OPT_TYPE_FLAGS: - av_log(av_log_obj, AV_LOG_INFO, "%-12s ", "<flags>"); - break; - case AV_OPT_TYPE_INT: - av_log(av_log_obj, AV_LOG_INFO, "%-12s ", "<int>"); - break; - case AV_OPT_TYPE_INT64: - av_log(av_log_obj, AV_LOG_INFO, "%-12s ", "<int64>"); - break; - case AV_OPT_TYPE_UINT64: - av_log(av_log_obj, AV_LOG_INFO, "%-12s ", "<uint64>"); - break; - case AV_OPT_TYPE_DOUBLE: - av_log(av_log_obj, AV_LOG_INFO, "%-12s ", "<double>"); - break; - case AV_OPT_TYPE_FLOAT: - av_log(av_log_obj, AV_LOG_INFO, "%-12s ", "<float>"); - break; - case AV_OPT_TYPE_STRING: - av_log(av_log_obj, AV_LOG_INFO, "%-12s ", "<string>"); - break; - case AV_OPT_TYPE_RATIONAL: - av_log(av_log_obj, AV_LOG_INFO, "%-12s ", "<rational>"); - break; - case AV_OPT_TYPE_BINARY: - av_log(av_log_obj, AV_LOG_INFO, "%-12s ", "<binary>"); - break; - case AV_OPT_TYPE_DICT: - av_log(av_log_obj, AV_LOG_INFO, "%-12s ", "<dictionary>"); - break; - case AV_OPT_TYPE_IMAGE_SIZE: - av_log(av_log_obj, AV_LOG_INFO, "%-12s ", "<image_size>"); - break; - case AV_OPT_TYPE_VIDEO_RATE: - av_log(av_log_obj, AV_LOG_INFO, "%-12s ", "<video_rate>"); - break; - case AV_OPT_TYPE_PIXEL_FMT: - av_log(av_log_obj, AV_LOG_INFO, "%-12s ", "<pix_fmt>"); - break; - case AV_OPT_TYPE_SAMPLE_FMT: - av_log(av_log_obj, AV_LOG_INFO, "%-12s ", "<sample_fmt>"); - break; - case AV_OPT_TYPE_DURATION: - av_log(av_log_obj, AV_LOG_INFO, "%-12s ", "<duration>"); - break; - case AV_OPT_TYPE_COLOR: - av_log(av_log_obj, AV_LOG_INFO, "%-12s ", "<color>"); - break; - case AV_OPT_TYPE_CHLAYOUT: -#if FF_API_OLD_CHANNEL_LAYOUT -FF_DISABLE_DEPRECATION_WARNINGS - case AV_OPT_TYPE_CHANNEL_LAYOUT: -FF_ENABLE_DEPRECATION_WARNINGS -#endif - av_log(av_log_obj, AV_LOG_INFO, "%-12s ", "<channel_layout>"); - break; - case AV_OPT_TYPE_BOOL: - av_log(av_log_obj, AV_LOG_INFO, "%-12s ", "<boolean>"); - break; - case AV_OPT_TYPE_CONST: - if (parent_type == AV_OPT_TYPE_INT) - av_log(av_log_obj, AV_LOG_INFO, "%-12"PRId64" ", opt->default_val.i64); - else - av_log(av_log_obj, AV_LOG_INFO, "%-12s ", ""); - break; - default: - av_log(av_log_obj, AV_LOG_INFO, "%-12s ", ""); - break; - } + log_type(av_log_obj, opt, parent_type); + av_log(av_log_obj, AV_LOG_INFO, "%c%c%c%c%c%c%c%c%c%c%c", (opt->flags & AV_OPT_FLAG_ENCODING_PARAM) ? 'E' : '.', (opt->flags & AV_OPT_FLAG_DECODING_PARAM) ? 'D' : '.', |