From 279db4fbc92aab6eb3d1c3e6a31ca23aea7d4ba6 Mon Sep 17 00:00:00 2001 From: Benjamin Franzke Date: Fri, 1 Feb 2013 08:20:48 +0100 Subject: Put frame_diff and pswap into util --- src/util.c | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) (limited to 'src/util.c') diff --git a/src/util.c b/src/util.c index 7b7077d..e642762 100644 --- a/src/util.c +++ b/src/util.c @@ -81,6 +81,28 @@ frame_mix(struct video_frame *frame_a, struct video_frame *frame_b) } } +double +frame_diff(struct video_frame *frame_a, struct video_frame *frame_b) +{ + double average = 0; + uint8_t *row_a = frame_a->data, *col_a = NULL; + uint8_t *row_b = frame_b->data, *col_b = NULL; + + for (int y = 0; y < frame_a->height; ++y) { + col_a = row_a; + col_b = row_b; + for (int x = 0; x < frame_a->width; ++x) { + average += abs(*col_a - *col_b); + col_a++; + col_b++; + } + row_a += frame_a->stride; + row_b += frame_b->stride; + } + + return average / (frame_a->width * frame_a->height); +} + /* print time in format: "hh:mm:ss.xxx" */ void print_time(int64_t msec) { -- cgit