Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/FFmpeg/FFmpeg.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Niedermayer <michaelni@gmx.at>2014-04-16 04:06:37 +0400
committerMichael Niedermayer <michaelni@gmx.at>2014-05-05 02:09:17 +0400
commit83fb31a76da133747a22e3776c1c67da3d0ffb78 (patch)
treefe6e381c24e7e069abd2e47b663d36bb515da63c
parentfc5b32877a47dcdb88734f2becfb7ad5155cb73d (diff)
avfilter/f_select: fix loss of precission in SAD calculation
Fixes part of Ticket3466 Found-by: Andrey_Karpov / PVS-Studio Signed-off-by: Michael Niedermayer <michaelni@gmx.at> (cherry picked from commit 5a8ef3c66b762f265b05aa096105555f1d26879c) Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
-rw-r--r--libavfilter/f_select.c2
-rw-r--r--tests/ref/fate/filter-metadata-scenedetect8
2 files changed, 5 insertions, 5 deletions
diff --git a/libavfilter/f_select.c b/libavfilter/f_select.c
index ec84da8a84..1ffc00652c 100644
--- a/libavfilter/f_select.c
+++ b/libavfilter/f_select.c
@@ -279,7 +279,7 @@ static double get_scene_score(AVFilterContext *ctx, AVFrame *frame)
p2 += 8 * linesize;
}
emms_c();
- mafd = nb_sad ? sad / nb_sad : 0;
+ mafd = nb_sad ? (double)sad / nb_sad : 0;
diff = fabs(mafd - select->prev_mafd);
ret = av_clipf(FFMIN(mafd, diff) / 100., 0, 1);
select->prev_mafd = mafd;
diff --git a/tests/ref/fate/filter-metadata-scenedetect b/tests/ref/fate/filter-metadata-scenedetect
index 67251dfe60..4e70723fe8 100644
--- a/tests/ref/fate/filter-metadata-scenedetect
+++ b/tests/ref/fate/filter-metadata-scenedetect
@@ -1,10 +1,10 @@
pkt_pts=1620|tag:lavfi.scene_score=1.000000
-pkt_pts=4140|tag:lavfi.scene_score=0.880000
+pkt_pts=4140|tag:lavfi.scene_score=0.876043
pkt_pts=5800|tag:lavfi.scene_score=1.000000
-pkt_pts=6720|tag:lavfi.scene_score=0.460000
+pkt_pts=6720|tag:lavfi.scene_score=0.463259
pkt_pts=8160|tag:lavfi.scene_score=1.000000
pkt_pts=9760|tag:lavfi.scene_score=1.000000
-pkt_pts=14080|tag:lavfi.scene_score=0.840000
+pkt_pts=14080|tag:lavfi.scene_score=0.841420
pkt_pts=15700|tag:lavfi.scene_score=1.000000
-pkt_pts=18500|tag:lavfi.scene_score=0.470000
+pkt_pts=18500|tag:lavfi.scene_score=0.471738
pkt_pts=21760|tag:lavfi.scene_score=1.000000