mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-12-23 12:43:46 +02:00
ffprobe: fix printing of unit values which cannot be contained in an int
Use long long int to contain such values instead of an int, which is required to contain at least 64 bits, so it is guaranteed to contain also int64_t values, which are used by some fields. In particular, should fix trac ticket #921.
This commit is contained in:
parent
6c06868e61
commit
54661219c1
@ -77,7 +77,7 @@ void av_noreturn exit_program(int ret)
|
||||
}
|
||||
|
||||
struct unit_value {
|
||||
union { double d; int i; } val;
|
||||
union { double d; long long int i; } val;
|
||||
const char *unit;
|
||||
};
|
||||
|
||||
@ -119,7 +119,7 @@ static char *value_string(char *buf, int buf_size, struct unit_value uv)
|
||||
}
|
||||
|
||||
if (show_float || vald != (int)vald) l = snprintf(buf, buf_size, "%.3f", vald);
|
||||
else l = snprintf(buf, buf_size, "%d", (int)vald);
|
||||
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 : "");
|
||||
} else {
|
||||
|
Loading…
Reference in New Issue
Block a user