libweston: Use struct timespec for the output presentation timestamp

Store the output presentation timestamp as struct timespec.

This commit is part of a larger effort to transition the Weston codebase
to struct timespec.

Signed-off-by: Alexandros Frantzis <alexandros.frantzis@collabora.com>
Reviewed-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
diff --git a/libweston/compositor.c b/libweston/compositor.c
index 037b4b5..cfa7eac 100644
--- a/libweston/compositor.c
+++ b/libweston/compositor.c
@@ -2292,15 +2292,13 @@
 	struct wl_list frame_callback_list;
 	pixman_region32_t output_damage;
 	int r;
-	struct timespec frame_time;
+	uint32_t frame_time_msec;
 
 	if (output->destroying)
 		return 0;
 
 	TL_POINT("core_repaint_begin", TLP_OUTPUT(output), TLP_END);
 
-	timespec_from_msec(&frame_time, output->frame_time);
-
 	/* Rebuild the surface list and update surface transforms up front. */
 	weston_compositor_build_view_list(ec);
 
@@ -2348,14 +2346,16 @@
 
 	weston_compositor_repick(ec);
 
+	frame_time_msec = timespec_to_msec(&output->frame_time);
+
 	wl_list_for_each_safe(cb, cnext, &frame_callback_list, link) {
-		wl_callback_send_done(cb->resource, output->frame_time);
+		wl_callback_send_done(cb->resource, frame_time_msec);
 		wl_resource_destroy(cb->resource);
 	}
 
 	wl_list_for_each_safe(animation, next, &output->animation_list, link) {
 		animation->frame_counter++;
-		animation->frame(animation, output, &frame_time);
+		animation->frame(animation, output, &output->frame_time);
 	}
 
 	TL_POINT("core_repaint_posted", TLP_OUTPUT(output), TLP_END);
@@ -2520,7 +2520,7 @@
 						  output->msc,
 						  presented_flags);
 
-	output->frame_time = timespec_to_msec(stamp);
+	output->frame_time = *stamp;
 
 	timespec_add_nsec(&output->next_repaint, stamp, refresh_nsec);
 	timespec_add_msec(&output->next_repaint, &output->next_repaint,