Commit 667df60b authored by Soft Works's avatar Soft Works Committed by Michael Niedermayer

avutil/opt: Fix printing integer option defaults

Integer values should not be printed using format specifier '%g' which leads to inexact display in case of higher values.

Before this patch:
  -trans_color       <int>        .D.V..... color value [...] (default 1.67772e+07)

Afterwards:
  -trans_color       <int>        .D.V..... color value [...] (default 16777215)
Signed-off-by: 's avatarsoftworkz <softworkz@hotmail.com>
Signed-off-by: 's avatarMichael Niedermayer <michael@niedermayer.cc>
parent 2f289ec9
......@@ -1034,6 +1034,23 @@ int av_opt_flag_is_set(void *obj, const char *field_name, const char *flag_name)
return res & flag->default_val.i64;
}
static void log_int_value(void *av_log_obj, int level, int64_t i)
{
if (i == INT_MAX) {
av_log(av_log_obj, level, "INT_MAX");
} else if (i == INT_MIN) {
av_log(av_log_obj, level, "INT_MIN");
} else if (i == UINT32_MAX) {
av_log(av_log_obj, level, "UINT32_MAX");
} else if (i == INT64_MAX) {
av_log(av_log_obj, level, "I64_MAX");
} else if (i == INT64_MIN) {
av_log(av_log_obj, level, "I64_MIN");
} else {
av_log(av_log_obj, level, "%"PRId64, i);
}
}
static void log_value(void *av_log_obj, int level, double d)
{
if (d == INT_MAX) {
......@@ -1254,7 +1271,7 @@ static void opt_list(void *obj, void *av_log_obj, const char *unit,
if (def_const)
av_log(av_log_obj, AV_LOG_INFO, "%s", def_const);
else
log_value(av_log_obj, AV_LOG_INFO, opt->default_val.i64);
log_int_value(av_log_obj, AV_LOG_INFO, opt->default_val.i64);
break;
}
case AV_OPT_TYPE_DOUBLE:
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment