nixpkgs/pkgs/os-specific/linux/tiscamera/allow-pipeline-stop-in-trigger-mode.patch
2018-06-10 23:57:42 +02:00

48 lines
1.5 KiB
Diff

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;