From 40f679ef2c3634e2ed02bdd3f207298ca64d909f Mon Sep 17 00:00:00 2001 From: Emmanuel Pacaud Date: Mon, 12 Aug 2024 16:48:03 +0200 Subject: [PATCH] gst: disconnect from camera in stop method Otherwise a stopped source can not be restarted, because the camera is still in use. Fix #907 --- gst/gstaravis.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/gst/gstaravis.c b/gst/gstaravis.c index 3a4469209..0c0445bd3 100644 --- a/gst/gstaravis.c +++ b/gst/gstaravis.c @@ -462,17 +462,21 @@ gst_aravis_stop( GstBaseSrc * src ) { GError *error = NULL; GstAravis* gst_aravis = GST_ARAVIS(src); + ArvCamera *camera; ArvStream *stream; GstCaps *all_caps; GST_OBJECT_LOCK (gst_aravis); arv_camera_stop_acquisition (gst_aravis->camera, &error); + camera = g_steal_pointer (&gst_aravis->camera); stream = g_steal_pointer (&gst_aravis->stream); all_caps = g_steal_pointer (&gst_aravis->all_caps); GST_OBJECT_UNLOCK (gst_aravis); if (stream != NULL) g_object_unref (stream); + if (camera != NULL) + g_object_unref (camera); if (all_caps != NULL) gst_caps_unref (all_caps);