From cbd4b72d7c42dc612ddcbdcf43800884c1b68e9d Mon Sep 17 00:00:00 2001 From: "Ronald S. Bultje" Date: Fri, 2 May 2003 21:16:56 +0000 Subject: Implement element synchronization (#108301) Original commit message from CVS: Implement element synchronization (#108301) --- sys/v4l2/gstv4l2src.h | 25 ++++++++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) (limited to 'sys/v4l2/gstv4l2src.h') diff --git a/sys/v4l2/gstv4l2src.h b/sys/v4l2/gstv4l2src.h index 401161c7..ae457e59 100644 --- a/sys/v4l2/gstv4l2src.h +++ b/sys/v4l2/gstv4l2src.h @@ -51,7 +51,24 @@ struct _GstV4l2Src { struct v4l2_buffer bufsettings; struct v4l2_requestbuffers breq; struct v4l2_format format; - guint64 first_timestamp; + + /* A/V sync... frame counter and internal cache */ + gulong handled; + gint last_frame; + gint need_writes; + gulong last_seq; + + /* clock */ + GstClock *clock; + + /* time to substract from clock time to get back to timestamp */ + GstClockTime substract_time; + + /* how often are we going to use each frame? */ + gint *use_num_times; + + /* how are we going to push buffers? */ + gboolean use_fixed_fps; /* bufferpool for the buffers we're gonna use */ GstBufferPool *bufferpool; @@ -64,6 +81,12 @@ struct _GstV4l2Src { struct _GstV4l2SrcClass { GstV4l2ElementClass parent_class; + + void (*frame_capture) (GObject *object); + void (*frame_drop) (GObject *object); + void (*frame_insert) (GObject *object); + void (*frame_lost) (GObject *object, + gint num_lost); }; -- cgit