---
libavfilter/f_select.c | 20 +---
1 file changed, 5 insertions(+), 15 deletions(-)
diff --git a/libavfilter/f_select.c b/libavfilter/f_select.c
index 546a940..e1837db 100644
--- a/libavfilter/f_select.c
+++ b/libavfilter/f_select.c
@@ -251,22 +251,12 @@ static double get_scene_score(AVFilterContext *ctx,
AVFrame *frame)
if (prev_picref
frame-height == prev_picref-height
frame-width == prev_picref-width) {
-int x, y, nb_sad = 0;
-int64_t sad = 0;
double mafd, diff;
-uint8_t *p1 = frame-data[0];
-uint8_t *p2 = prev_picref-data[0];
-const int p1_linesize = frame-linesize[0];
-const int p2_linesize = prev_picref-linesize[0];
-
-for (y = 0; y frame-height - 7; y += 8) {
-for (x = 0; x frame-width*3 - 7; x += 8) {
-sad += select-sad(p1 + x, p1_linesize, p2 + x, p2_linesize);
-nb_sad += 8 * 8;
-}
-p1 += 8 * p1_linesize;
-p2 += 8 * p2_linesize;
-}
+const int nb_sad = (frame-height ~7) * ((frame-width*3) ~7);
+const int64_t sad = av_pixelutils_bdiff(
+frame-data[0], frame-linesize[0],
+prev_picref-data[0], prev_picref-linesize[0],
+select-sad, frame-width*3, frame-height, 8);
emms_c();
mafd = nb_sad ? (double)sad / nb_sad : 0;
diff = fabs(mafd - select-prev_mafd);
--
2.0.4
___
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel