mirror of
https://github.com/mpv-player/mpv
synced 2024-12-29 10:32:15 +00:00
player/command: change how floating point number are printed
Use "%.7g" to show 7 significant digits. Removes the trailing zeros, and in general makes it more readable, than fixed 3 decimal digits. For avsync use "%+.2g" to add plus sign, similar to display-sync values.
This commit is contained in:
parent
52fc378494
commit
9dddfc4fcc
@ -1023,12 +1023,12 @@ static char *print_double(const m_option_t *opt, const void *val)
|
||||
return talloc_asprintf(NULL, "%f", f);
|
||||
}
|
||||
|
||||
static char *print_double_f3(const m_option_t *opt, const void *val)
|
||||
static char *print_double_7g(const m_option_t *opt, const void *val)
|
||||
{
|
||||
double f = VAL(val);
|
||||
if (isnan(f))
|
||||
return print_double(opt, val);
|
||||
return talloc_asprintf(NULL, "%.3f", f);
|
||||
return talloc_asprintf(NULL, "%.7g", f);
|
||||
}
|
||||
|
||||
static void add_double(const m_option_t *opt, void *val, double add, bool wrap)
|
||||
@ -1100,7 +1100,7 @@ const m_option_type_t m_option_type_double = {
|
||||
.size = sizeof(double),
|
||||
.parse = parse_double,
|
||||
.print = print_double,
|
||||
.pretty_print = print_double_f3,
|
||||
.pretty_print = print_double_7g,
|
||||
.copy = copy_opt,
|
||||
.add = add_double,
|
||||
.multiply = multiply_double,
|
||||
@ -1126,7 +1126,7 @@ const m_option_type_t m_option_type_aspect = {
|
||||
.flags = M_OPT_TYPE_CHOICE | M_OPT_TYPE_USES_RANGE,
|
||||
.parse = parse_double_aspect,
|
||||
.print = print_double,
|
||||
.pretty_print = print_double_f3,
|
||||
.pretty_print = print_double_7g,
|
||||
.copy = copy_opt,
|
||||
.add = add_double,
|
||||
.multiply = multiply_double,
|
||||
@ -1157,7 +1157,7 @@ static char *print_float(const m_option_t *opt, const void *val)
|
||||
static char *print_float_f3(const m_option_t *opt, const void *val)
|
||||
{
|
||||
double tmp = VAL(val);
|
||||
return print_double_f3(opt, &tmp);
|
||||
return print_double_7g(opt, &tmp);
|
||||
}
|
||||
|
||||
static void add_float(const m_option_t *opt, void *val, double add, bool wrap)
|
||||
|
@ -419,7 +419,7 @@ static int mp_property_av_speed_correction(void *ctx, struct m_property *prop,
|
||||
}
|
||||
|
||||
if (action == M_PROPERTY_PRINT) {
|
||||
*(char **)arg = talloc_asprintf(NULL, "%+.05f%%", (val - 1) * 100);
|
||||
*(char **)arg = talloc_asprintf(NULL, "%+.3g%%", (val - 1) * 100);
|
||||
return M_PROPERTY_OK;
|
||||
}
|
||||
|
||||
@ -652,7 +652,12 @@ static int mp_property_avsync(void *ctx, struct m_property *prop,
|
||||
if (!mpctx->ao_chain || !mpctx->vo_chain)
|
||||
return M_PROPERTY_UNAVAILABLE;
|
||||
if (action == M_PROPERTY_PRINT) {
|
||||
*(char **)arg = talloc_asprintf(NULL, "%7.3f", mpctx->last_av_difference);
|
||||
// Don't print small values resulting from calculation inaccuracies
|
||||
if (fabs(mpctx->last_av_difference) < 1e-5) {
|
||||
*(char **)arg = talloc_strdup(NULL, "0");
|
||||
} else {
|
||||
*(char **)arg = talloc_asprintf(NULL, "%+.2g", mpctx->last_av_difference);
|
||||
}
|
||||
return M_PROPERTY_OK;
|
||||
}
|
||||
return m_property_double_ro(action, arg, mpctx->last_av_difference);
|
||||
|
Loading…
Reference in New Issue
Block a user