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:
@@ -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;
|
||||
|
||||
@@ -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
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user