diff --git a/gst/videotestsrc/gstvideotestsrc.c b/gst/videotestsrc/gstvideotestsrc.c index 760722a2e4..76def35a74 100644 --- a/gst/videotestsrc/gstvideotestsrc.c +++ b/gst/videotestsrc/gstvideotestsrc.c @@ -575,19 +575,14 @@ gst_videotestsrc_get (GstPad * pad) videotestsrc->make_image (videotestsrc, (void *) GST_BUFFER_DATA (buf), videotestsrc->width, videotestsrc->height); + GST_BUFFER_TIMESTAMP (buf) = videotestsrc->timestamp_offset + + (videotestsrc->n_frames * GST_SECOND) / (double) videotestsrc->rate; + videotestsrc->n_frames++; if (videotestsrc->sync) { - GST_BUFFER_TIMESTAMP (buf) = videotestsrc->timestamp_offset + - (videotestsrc->n_frames * GST_SECOND) / (double) videotestsrc->rate; - videotestsrc->n_frames++; - /* FIXME this is not correct if we do QoS */ if (videotestsrc->clock) { gst_element_wait (GST_ELEMENT (videotestsrc), GST_BUFFER_TIMESTAMP (buf)); } - } else { - GST_BUFFER_TIMESTAMP (buf) = videotestsrc->timestamp_offset + - (videotestsrc->n_frames * GST_SECOND) / (double) videotestsrc->rate; - videotestsrc->n_frames++; } GST_BUFFER_DURATION (buf) = GST_SECOND / (double) videotestsrc->rate; diff --git a/gst/videotestsrc/gstvideotestsrc.h b/gst/videotestsrc/gstvideotestsrc.h index 68d2eb041f..f18dca23f0 100644 --- a/gst/videotestsrc/gstvideotestsrc.h +++ b/gst/videotestsrc/gstvideotestsrc.h @@ -60,8 +60,9 @@ struct _GstVideotestsrc { struct fourcc_list_struct *fourcc; /* private */ - gint64 timestamp_offset; - gint64 n_frames; + gint64 timestamp_offset; /* base offset */ + GstClockTime running_time; /* total running time */ + gint64 n_frames; /* total frames sent */ gint bpp; gdouble rate; int type;