Commit 58b10b4c authored by Stefano Sabatini's avatar Stefano Sabatini

ffprobe: factorize common code in value_string()

parent 72092188
...@@ -102,11 +102,13 @@ static char *value_string(char *buf, int buf_size, struct unit_value uv) ...@@ -102,11 +102,13 @@ static char *value_string(char *buf, int buf_size, struct unit_value uv)
hours = mins / 60; hours = mins / 60;
mins %= 60; mins %= 60;
snprintf(buf, buf_size, "%d:%02d:%09.6f", hours, mins, secs); snprintf(buf, buf_size, "%d:%02d:%09.6f", hours, mins, secs);
} else if (use_value_prefix) { } else {
const char *prefix_string; const char *prefix_string = "";
long long int index;
int l; int l;
if (use_value_prefix) {
long long int index;
if (uv.unit == unit_byte_str && use_byte_value_binary_prefix) { if (uv.unit == unit_byte_str && use_byte_value_binary_prefix) {
index = (long long int) (log(vald)/log(2)) / 10; index = (long long int) (log(vald)/log(2)) / 10;
index = av_clip(index, 0, FF_ARRAY_ELEMS(binary_unit_prefixes) - 1); index = av_clip(index, 0, FF_ARRAY_ELEMS(binary_unit_prefixes) - 1);
...@@ -118,18 +120,14 @@ static char *value_string(char *buf, int buf_size, struct unit_value uv) ...@@ -118,18 +120,14 @@ static char *value_string(char *buf, int buf_size, struct unit_value uv)
vald /= pow(10, index * 3); vald /= pow(10, index * 3);
prefix_string = decimal_unit_prefixes[index]; prefix_string = decimal_unit_prefixes[index];
} }
}
if (show_float || vald != (long long int)vald) l = snprintf(buf, buf_size, "%.3f", vald); if (show_float || (use_value_prefix && vald != (long long int)vald))
else l = snprintf(buf, buf_size, "%lld", (long long int)vald); l = snprintf(buf, buf_size, "%.3f", vald);
snprintf(buf+l, buf_size-l, "%s%s%s", prefix_string || show_value_unit ? " " : "", else
l = snprintf(buf, buf_size, "%lld", (long long int)vald);
snprintf(buf+l, buf_size-l, "%s%s%s", *prefix_string || show_value_unit ? " " : "",
prefix_string, show_value_unit ? uv.unit : ""); prefix_string, show_value_unit ? uv.unit : "");
} else {
int l;
if (show_float) l = snprintf(buf, buf_size, "%.3f", vald);
else l = snprintf(buf, buf_size, "%lld", (long long int)vald);
snprintf(buf+l, buf_size-l, "%s%s", show_value_unit ? " " : "",
show_value_unit ? uv.unit : "");
} }
return buf; return buf;
......
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