buffer: Store derived surface id and buffer info for dma-buf export

Signed-off-by: Paul Kocialkowski <paul.kocialkowski@bootlin.com>
This commit is contained in:
Paul Kocialkowski
2018-07-18 14:45:01 +02:00
parent 2543041a18
commit 9a4693ca0d
3 changed files with 9 additions and 3 deletions
+3
View File
@@ -85,6 +85,9 @@ VAStatus RequestCreateBuffer(VADriverContextP context, VAContextID context_id,
buffer_object->data = buffer_data;
buffer_object->size = size;
buffer_object->derived_surface_id = VA_INVALID_ID;
buffer_object->info.handle = (uintptr_t) -1;
*buffer_id = id;
status = VA_STATUS_SUCCESS;
+3
View File
@@ -44,6 +44,9 @@ struct object_buffer {
void *data;
unsigned int size;
VASurfaceID derived_surface_id;
VABufferInfo info;
};
VAStatus RequestCreateBuffer(VADriverContextP context, VAContextID context_id,
+3 -3
View File
@@ -122,8 +122,8 @@ VAStatus RequestDeriveImage(VADriverContextP context, VASurfaceID surface_id,
struct request_data *driver_data = context->pDriverData;
struct object_surface *surface_object;
struct object_buffer *buffer_object;
unsigned int i;
VAImageFormat format;
unsigned int i;
VAStatus status;
surface_object = SURFACE(driver_data, surface_id);
@@ -134,8 +134,6 @@ VAStatus RequestDeriveImage(VADriverContextP context, VASurfaceID surface_id,
status = RequestSyncSurface(context, surface_id);
if (status != VA_STATUS_SUCCESS)
return status;
} else if (surface_object->status == VASurfaceReady) {
return VA_STATUS_SUCCESS;
}
format.fourcc = VA_FOURCC_NV12;
@@ -164,6 +162,8 @@ VAStatus RequestDeriveImage(VADriverContextP context, VASurfaceID surface_id,
surface_object->status = VASurfaceReady;
buffer_object->derived_surface_id = surface_id;
return VA_STATUS_SUCCESS;
}