uint32_t total;
int fd;
struct wl_listener frame_listener;
+ int count;
};
static uint32_t *
r = pixman_region32_rectangles(&damage, &n);
if (n == 0)
return;
+ if (recorder->count++ == 0)
+ /* The first callback gives us the frame immediately
+ * before the weston_output_damage() call, and
+ * typically doesn't give us a full frame of damage.*/
+ return;
header.msecs = msecs;
header.nrects = n;
recorder->frame = malloc(size);
recorder->rect = malloc(size);
recorder->total = 0;
+ recorder->count = 0;
memset(recorder->frame, 0, size);
recorder->fd = open(filename,
recorder = container_of(listener, struct weston_recorder,
frame_listener);
- fprintf(stderr, "stopping recorder, total file size %dM\n",
- recorder->total / (1024 * 1024));
+ fprintf(stderr,
+ "stopping recorder, total file size %dM, %d frames\n",
+ recorder->total / (1024 * 1024), recorder->count);
weston_recorder_destroy(recorder);
} else {