From a791f5070cdc1b29c4c0415c2c74cf8d6d5ced65 Mon Sep 17 00:00:00 2001 From: Thiago Santos Date: Mon, 24 Jan 2011 17:46:49 -0300 Subject: [PATCH] wrappercamerabinsrc: Check the start time of buffers Be careful when trying to create a newsegment event to avoid start times of -1 from invalid buffer timestamps --- gst/camerabin2/gstwrappercamerabinsrc.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/gst/camerabin2/gstwrappercamerabinsrc.c b/gst/camerabin2/gstwrappercamerabinsrc.c index 9437b9ac1f..faac60b4f0 100644 --- a/gst/camerabin2/gstwrappercamerabinsrc.c +++ b/gst/camerabin2/gstwrappercamerabinsrc.c @@ -217,10 +217,15 @@ gst_wrapper_camera_bin_src_vidsrc_probe (GstPad * pad, GstBuffer * buffer, if (self->video_rec_status == GST_VIDEO_RECORDING_STATUS_DONE) { /* NOP */ } else if (self->video_rec_status == GST_VIDEO_RECORDING_STATUS_STARTING) { + gint64 start = 0; + + if (GST_CLOCK_TIME_IS_VALID (GST_BUFFER_TIMESTAMP (buffer))) + start = GST_BUFFER_TIMESTAMP (buffer); + /* send the newseg */ GST_DEBUG_OBJECT (self, "Starting video recording, pushing newsegment"); gst_pad_push_event (pad, gst_event_new_new_segment (FALSE, 1.0, - GST_FORMAT_TIME, GST_BUFFER_TIMESTAMP (buffer), -1, 0)); + GST_FORMAT_TIME, start, -1, 0)); self->video_rec_status = GST_VIDEO_RECORDING_STATUS_RUNNING; /* post preview */