From 5d590d87b30c59dfb853ebde6276d36f8a8bbc58 Mon Sep 17 00:00:00 2001 From: Michael Niedermayer Date: Mon, 3 Nov 2014 17:14:29 +0100 Subject: [PATCH] avfilter/vf_idet: fix rounding of av_dict_set_fxp() fixes the remainder overflowing beyond .999 Signed-off-by: Michael Niedermayer --- libavfilter/vf_idet.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/libavfilter/vf_idet.c b/libavfilter/vf_idet.c index 01d7eca5a7..05f361af71 100644 --- a/libavfilter/vf_idet.c +++ b/libavfilter/vf_idet.c @@ -62,8 +62,13 @@ static int av_dict_set_fxp(AVDictionary **pm, const char *key, uint64_t value, u int flags) { char valuestr[44]; + uint64_t print_precision = uintpow(10, digits); + + value = av_rescale(value, print_precision, PRECISION); + snprintf(valuestr, sizeof(valuestr), "%"PRId64".%0*"PRId64, - value / PRECISION, digits, ( value % PRECISION ) / ( PRECISION / uintpow(10,digits) )); + value / print_precision, digits, value % print_precision); + return av_dict_set(pm, key, valuestr, flags); }