libva shared buffers don't work with V4L2_MEMORY_MMAP, so don't
use it in that case. This enables "gst-launch camerasrc ! vaapisink",
but emits a warning.
Change-Id: Ie2e64d7ec194df0487474621ee15fc092acce5eb
breq.count = v4l2camsrc->num_buffers;
breq.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
+
+ if(v4l2camsrc->use_mmap && GST_CAPS_IS_SIMPLE(caps)) {
+ GstStructure *st = gst_caps_get_structure(caps, 0);
+ if(g_str_has_prefix(gst_structure_get_name(st), "video/x-vaapi-sharing")) {
+ v4l2camsrc->use_mmap = FALSE;
+ GST_WARNING_OBJECT(v4l2camsrc, "mmap is not supported with VA shared buffer, turning off");
+ }
+ }
+
if (v4l2camsrc->use_mmap)
breq.memory = V4L2_MEMORY_MMAP;
else