diff --git a/src/gstreamer-1.0/gsttcamsrc.cpp b/src/gstreamer-1.0/gsttcamsrc.cpp index d482e1e..e36afd8 100644 --- a/src/gstreamer-1.0/gsttcamsrc.cpp +++ b/src/gstreamer-1.0/gsttcamsrc.cpp @@ -1112,6 +1112,7 @@ bool gst_tcam_src_init_camera (GstTcamSrc* self) static void gst_tcam_src_close_camera (GstTcamSrc* self) { + GST_INFO("Closing device"); if (self->device != NULL) { self->device->dev->stop_stream(); @@ -1156,7 +1157,7 @@ static gboolean gst_tcam_src_stop (GstBaseSrc* src) self->device->dev->stop_stream(); gst_element_send_event(GST_ELEMENT(self), gst_event_new_eos()); - GST_DEBUG_OBJECT (self, "Stopped acquisition"); + GST_DEBUG("Stopped acquisition"); return TRUE; } @@ -1556,6 +1557,18 @@ static void gst_tcam_src_get_property (GObject* object, } +static gboolean gst_tcam_src_unlock (GstBaseSrc* src) +{ + GstTcamSrc* self = GST_TCAM_SRC(src); + + self->is_running = FALSE; + + self->cv.notify_all(); + + return TRUE; +} + + static void gst_tcam_src_class_init (GstTcamSrcClass* klass) { GObjectClass *gobject_class = G_OBJECT_CLASS (klass); @@ -1616,6 +1629,7 @@ static void gst_tcam_src_class_init (GstTcamSrcClass* klass) gstbasesrc_class->fixate = gst_tcam_src_fixate_caps; gstbasesrc_class->start = gst_tcam_src_start; gstbasesrc_class->stop = gst_tcam_src_stop; + gstbasesrc_class->unlock = gst_tcam_src_unlock; gstbasesrc_class->negotiate = gst_tcam_src_negotiate; gstbasesrc_class->get_times = gst_tcam_src_get_times;