From 2d774554e9bb6c04438f2e8587a43e2a41e6d1fb Mon Sep 17 00:00:00 2001 From: Whoopie Date: Wed, 11 Apr 2018 20:28:00 +0000 Subject: [PATCH] v4l2object: Disable DMABuf for emulated formats libv4l2 does not prevent exporting DMABuf even when emulated formats are in use. As a side effect, userspace ends up with buffers of the original formats which will cause issues. https://bugzilla.gnome.org/show_bug.cgi?id=795097 --- sys/v4l2/gstv4l2object.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/sys/v4l2/gstv4l2object.c b/sys/v4l2/gstv4l2object.c index 678f035..f0f8d0b 100644 --- a/sys/v4l2/gstv4l2object.c +++ b/sys/v4l2/gstv4l2object.c @@ -2878,6 +2878,12 @@ gst_v4l2_object_is_dmabuf_supported (GstV4l2Object * v4l2object) .flags = O_CLOEXEC | O_RDWR, }; + if (v4l2object->fmtdesc->flags & V4L2_FMT_FLAG_EMULATED) { + GST_WARNING_OBJECT (v4l2object->dbg_obj, + "libv4l2 converter detected, disabling DMABuf"); + ret = FALSE; + } + /* Expected to fail, but ENOTTY tells us that it is not implemented. */ v4l2object->ioctl (v4l2object->video_fd, VIDIOC_EXPBUF, &expbuf); if (errno == ENOTTY) -- 2.7.4