From 93b202b84ef788d9b7858987baf98b7577b87b1a Mon Sep 17 00:00:00 2001 From: Nicolas Dufresne Date: Fri, 26 Jun 2020 13:10:00 -0400 Subject: [PATCH] v4l2allocator: Don't do REQBUFS(0) on inactive allocator If the allocator is no longer active, it means the memory has already been freed, calling REQBUF(0) would make no sense. Part-of: --- sys/v4l2/gstv4l2allocator.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/sys/v4l2/gstv4l2allocator.c b/sys/v4l2/gstv4l2allocator.c index 4fa5d274fc..e82a8532d6 100644 --- a/sys/v4l2/gstv4l2allocator.c +++ b/sys/v4l2/gstv4l2allocator.c @@ -812,6 +812,9 @@ gst_v4l2_allocator_orphan (GstV4l2Allocator * allocator) GST_OBJECT_FLAG_SET (allocator, GST_V4L2_ALLOCATOR_FLAG_ORPHANED); + if (!g_atomic_int_get (&allocator->active)) + return TRUE; + if (obj->ioctl (obj->video_fd, VIDIOC_REQBUFS, &breq) < 0) { GST_ERROR_OBJECT (allocator, "error orphaning buffers buffers: %s", g_strerror (errno));