summaryrefslogtreecommitdiff
path: root/src/advtime.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/advtime.c')
-rw-r--r--src/advtime.c25
1 files changed, 22 insertions, 3 deletions
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 <unistd.h>
#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;
}