From: Jussi Saavalainen Date: Wed, 13 Mar 2013 15:50:00 +0000 (+0200) Subject: Check for caps mmap compatibility before allocation X-Git-Tag: 2.1b_release~5^2~4 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=4c365aae6cda537c8b5c122c598d4cbb462b5f44;p=adaptation%2Fintel_mfld%2Fgst-plugins-atomisp.git Check for caps mmap compatibility before allocation 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 --- diff --git a/gst/mfldv4l2cam/v4l2camsrc_calls.c b/gst/mfldv4l2cam/v4l2camsrc_calls.c index 72b6332..8a11d84 100644 --- a/gst/mfldv4l2cam/v4l2camsrc_calls.c +++ b/gst/mfldv4l2cam/v4l2camsrc_calls.c @@ -2598,6 +2598,15 @@ gst_v4l2camsrc_capture_start (GstCameraSrc * camsrc, GstCaps * caps) 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