From c7c47cdf23892f7209bbd2acaf420a8d34336406 Mon Sep 17 00:00:00 2001 From: Jan Klemkow Date: Thu, 15 Nov 2012 08:25:35 +0100 Subject: Add frame mix saving for high diffs. --- src/advtime.c | 25 ++++++++++++++++++++++--- 1 file changed, 22 insertions(+), 3 deletions(-) (limited to 'src/advtime.c') diff --git a/src/advtime.c b/src/advtime.c index 6144cc3..217b7ed 100644 --- a/src/advtime.c +++ b/src/advtime.c @@ -5,6 +5,7 @@ #include #include "video_decode.h" +#include "util.h" static double frame_diff(struct video_frame *frame_a, struct video_frame *frame_b) @@ -63,6 +64,8 @@ main(int argc, char **argv) int ret, ch; int diff_flag = 0, average_flag = 0; int64_t timestamp = 0; + double diff = 0.0; + char filename[BUFSIZ]; while ((ch = getopt(argc, argv, "ad")) != -1) { switch (ch) { @@ -94,11 +97,27 @@ main(int argc, char **argv) if (ret < 0) return -ret; - while (video_decode_get_frame(vd, &frame_b) == 0) { + for (int i = 0; video_decode_get_frame(vd, &frame_b) == 0; ++i) { + + printf("%d\t", i); + if (average_flag == 1) - printf("%f\n", frame_average(frame_a)); + printf("%f", frame_average(frame_a)); + + if (average_flag == 1 && diff_flag == 1) + printf("\t"); + if (diff_flag == 1) - printf("%f\n", frame_diff(frame_a, frame_b)); + printf("%f", diff = frame_diff(frame_a, frame_b)); + + if (diff > 40.0) { + snprintf(filename, BUFSIZ, "img/%04i.pgm", i); + frame_mix_pgm_save(frame_a, frame_b, filename); +// pgm_save(frame_a->data, frame_a->stride, frame_a->width, +// frame_a->height, filename); + } + + printf("\n"); video_decode_free_frame(&frame_a); frame_a = frame_b; } -- cgit