v4l2object: allow to automatic selection of dmabuf

If the v4l2 queue support dmabuf select this buffer pool mode
and update the query with allocator.
This patch only concern exporting dmabuf and not importing dmabuf
fd from downstream element.

https://bugzilla.gnome.org/show_bug.cgi?id=699382
This commit is contained in:
Benjamin Gaignard 2014-11-21 16:36:15 +01:00 committed by Nicolas Dufresne
parent ec6b8b84af
commit e6c2ad5571
2 changed files with 8 additions and 2 deletions

View file

@ -517,6 +517,8 @@ gst_v4l2_buffer_pool_set_config (GstBufferPool * bpool, GstStructure * config)
gst_buffer_pool_config_set_params (config, caps, size, min_buffers,
max_buffers);
gst_buffer_pool_config_set_allocator (config, pool->allocator, &params);
/* keep a GstVideoInfo with defaults for the when we need to copy */
gst_video_info_from_caps (&pool->caps_info, caps);

View file

@ -2362,8 +2362,12 @@ gst_v4l2_object_setup_pool (GstV4l2Object * v4l2object, GstCaps * caps)
goto method_not_supported;
if (v4l2object->vcap.capabilities & V4L2_CAP_STREAMING) {
if (v4l2object->req_mode == GST_V4L2_IO_AUTO)
mode = GST_V4L2_IO_MMAP;
if (v4l2object->req_mode == GST_V4L2_IO_AUTO) {
if (GST_V4L2_OBJECT_CAN_REQUEST (v4l2object, DMABUF))
mode = GST_V4L2_IO_DMABUF;
else
mode = GST_V4L2_IO_MMAP;
}
} else if (v4l2object->req_mode == GST_V4L2_IO_MMAP)
goto method_not_supported;