forked from marfrit/libva-v4l2-request-fourier
Add support for the single-planar V4L2 API
Signed-off-by: Paul Kocialkowski <contact@paulk.fr>
This commit is contained in:
+9
-2
@@ -197,9 +197,17 @@ VAStatus RequestAcquireBufferHandle(VADriverContextP context,
|
||||
struct request_data *driver_data = context->pDriverData;
|
||||
struct object_buffer *buffer_object;
|
||||
struct object_surface *surface_object;
|
||||
struct video_format *video_format;
|
||||
unsigned int capture_type;
|
||||
int export_fd;
|
||||
int rc;
|
||||
|
||||
video_format = driver_data->video_format;
|
||||
if (video_format == NULL)
|
||||
return VA_STATUS_ERROR_OPERATION_FAILED;
|
||||
|
||||
capture_type = v4l2_type_video_capture(video_format->v4l2_mplane);
|
||||
|
||||
if (buffer_info->mem_type != VA_SURFACE_ATTRIB_MEM_TYPE_DRM_PRIME ||
|
||||
!video_format_is_linear(driver_data->video_format))
|
||||
return VA_STATUS_ERROR_UNSUPPORTED_MEMORY_TYPE;
|
||||
@@ -218,8 +226,7 @@ VAStatus RequestAcquireBufferHandle(VADriverContextP context,
|
||||
if (surface_object->destination_buffers_count > 1)
|
||||
return VA_STATUS_ERROR_OPERATION_FAILED;
|
||||
|
||||
rc = v4l2_export_buffer(driver_data->video_fd,
|
||||
V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE,
|
||||
rc = v4l2_export_buffer(driver_data->video_fd, capture_type,
|
||||
surface_object->destination_index, O_RDONLY,
|
||||
&export_fd, 1);
|
||||
if (rc < 0)
|
||||
|
||||
Reference in New Issue
Block a user