Rework buffer management to be more generic and support untiled format

Signed-off-by: Paul Kocialkowski <paul.kocialkowski@bootlin.com>
This commit is contained in:
Paul Kocialkowski
2018-07-11 15:16:52 +02:00
parent 2ca67372f8
commit 9f2c069f76
12 changed files with 330 additions and 100 deletions
+7 -7
View File
@@ -168,12 +168,12 @@ VAStatus SunxiCedrusEndPicture(VADriverContextP context,
switch (config_object->profile) {
case VAProfileMPEG2Simple:
case VAProfileMPEG2Main:
surface_object->mpeg2_header.slice_pos = 0;
surface_object->mpeg2_header.slice_len = surface_object->slices_size * 8;
surface_object->mpeg2_slice_params.slice_pos = 0;
surface_object->mpeg2_slice_params.slice_len = surface_object->slices_size * 8;
control_id = V4L2_CID_MPEG_VIDEO_MPEG2_SLICE_HEADER;
control_data = &surface_object->mpeg2_header;
control_size = sizeof(surface_object->mpeg2_header);
control_id = V4L2_CID_MPEG_VIDEO_MPEG2_SLICE_PARAMS;
control_data = &surface_object->mpeg2_slice_params;
control_size = sizeof(surface_object->mpeg2_slice_params);
break;
default:
@@ -184,11 +184,11 @@ VAStatus SunxiCedrusEndPicture(VADriverContextP context,
if (rc < 0)
return VA_STATUS_ERROR_OPERATION_FAILED;
rc = v4l2_queue_buffer(driver_data->video_fd, -1, V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE, surface_object->destination_index, 0);
rc = v4l2_queue_buffer(driver_data->video_fd, -1, V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE, surface_object->destination_index, 0, surface_object->destination_buffers_count);
if (rc < 0)
return VA_STATUS_ERROR_OPERATION_FAILED;
rc = v4l2_queue_buffer(driver_data->video_fd, request_fd, V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE, surface_object->source_index, surface_object->slices_size);
rc = v4l2_queue_buffer(driver_data->video_fd, request_fd, V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE, surface_object->source_index, surface_object->slices_size, 1);
if (rc < 0)
return VA_STATUS_ERROR_OPERATION_FAILED;