From d20a82aa10c347ffce172098dfa97bb61c04c8ca Mon Sep 17 00:00:00 2001 From: Damian Hobson-Garcia Date: Mon, 27 May 2019 18:08:54 +0900 Subject: [PATCH] v4l2object: Orphan buffer pool on object_stop if supported Use V4L2 buffer orphaning, on recent kernels so that the device can be restarted immediately with a new buffer pool during renogatiation. --- sys/v4l2/gstv4l2object.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/sys/v4l2/gstv4l2object.c b/sys/v4l2/gstv4l2object.c index 01c5abf..dad426a 100644 --- a/sys/v4l2/gstv4l2object.c +++ b/sys/v4l2/gstv4l2object.c @@ -4158,9 +4158,11 @@ gst_v4l2_object_stop (GstV4l2Object * v4l2object) goto done; if (v4l2object->pool) { - GST_DEBUG_OBJECT (v4l2object->dbg_obj, "deactivating pool"); - gst_buffer_pool_set_active (v4l2object->pool, FALSE); - gst_object_unref (v4l2object->pool); + if (!gst_v4l2_buffer_pool_orphan (&v4l2object->pool)) { + GST_DEBUG_OBJECT (v4l2object->dbg_obj, "deactivating pool"); + gst_buffer_pool_set_active (v4l2object->pool, FALSE); + gst_object_unref (v4l2object->pool); + } v4l2object->pool = NULL; } -- 2.7.4