buffer: Rename object buffer structure fields for more clarity

Signed-off-by: Paul Kocialkowski <paul.kocialkowski@bootlin.com>
This commit is contained in:
Paul Kocialkowski
2018-04-23 11:17:48 +02:00
parent 90dbf3e6a5
commit 34066fc0a7
2 changed files with 28 additions and 24 deletions
+21 -20
View File
@@ -72,11 +72,12 @@ VAStatus SunxiCedrusCreateBuffer(VADriverContextP ctx, VAContextID context,
if (obj_buffer == NULL) if (obj_buffer == NULL)
return VA_STATUS_ERROR_ALLOCATION_FAILED; return VA_STATUS_ERROR_ALLOCATION_FAILED;
obj_buffer->buffer_data = NULL;
obj_buffer->buffer_map = NULL;
obj_buffer->type = type; obj_buffer->type = type;
obj_buffer->max_num_elements = num_elements; obj_buffer->initial_count = num_elements;
obj_buffer->num_elements = num_elements; obj_buffer->count = num_elements;
obj_buffer->data = NULL;
obj_buffer->map = NULL;
obj_buffer->size = size; obj_buffer->size = size;
obj_buffer->map_size = 0; obj_buffer->map_size = 0;
@@ -97,22 +98,22 @@ VAStatus SunxiCedrusCreateBuffer(VADriverContextP ctx, VAContextID context,
assert(ioctl(driver_data->mem2mem_fd, VIDIOC_QUERYBUF, &buf)==0); assert(ioctl(driver_data->mem2mem_fd, VIDIOC_QUERYBUF, &buf)==0);
obj_buffer->map_size = driver_data->slice_offset[buf.index] + size * num_elements; obj_buffer->map_size = driver_data->slice_offset[buf.index] + size * num_elements;
obj_buffer->buffer_map = mmap(NULL, obj_buffer->map_size, obj_buffer->map = mmap(NULL, obj_buffer->map_size,
PROT_READ | PROT_WRITE, MAP_SHARED, PROT_READ | PROT_WRITE, MAP_SHARED,
driver_data->mem2mem_fd, buf.m.planes[0].m.mem_offset); driver_data->mem2mem_fd, buf.m.planes[0].m.mem_offset);
obj_buffer->buffer_data = obj_buffer->buffer_map + driver_data->slice_offset[buf.index]; obj_buffer->data = obj_buffer->map + driver_data->slice_offset[buf.index];
driver_data->slice_offset[buf.index] += size * num_elements; driver_data->slice_offset[buf.index] += size * num_elements;
} else { } else {
obj_buffer->buffer_map = NULL; obj_buffer->map = NULL;
obj_buffer->buffer_data = malloc(size * num_elements); obj_buffer->data = malloc(size * num_elements);
} }
if (obj_buffer->buffer_data == NULL || obj_buffer->buffer_map == MAP_FAILED) if (obj_buffer->data == NULL || obj_buffer->map == MAP_FAILED)
return VA_STATUS_ERROR_ALLOCATION_FAILED; return VA_STATUS_ERROR_ALLOCATION_FAILED;
if (data) if (data)
memcpy(obj_buffer->buffer_data, data, size * num_elements); memcpy(obj_buffer->data, data, size * num_elements);
*buf_id = bufferID; *buf_id = bufferID;
@@ -128,10 +129,10 @@ VAStatus SunxiCedrusBufferSetNumElements(VADriverContextP ctx,
struct object_buffer *obj_buffer = BUFFER(buf_id); struct object_buffer *obj_buffer = BUFFER(buf_id);
assert(obj_buffer); assert(obj_buffer);
if ((num_elements < 0) || (num_elements > obj_buffer->max_num_elements)) if ((num_elements < 0) || (num_elements > obj_buffer->initial_count))
vaStatus = VA_STATUS_ERROR_UNKNOWN; vaStatus = VA_STATUS_ERROR_UNKNOWN;
if (VA_STATUS_SUCCESS == vaStatus) if (VA_STATUS_SUCCESS == vaStatus)
obj_buffer->num_elements = num_elements; obj_buffer->count = num_elements;
return vaStatus; return vaStatus;
} }
@@ -151,9 +152,9 @@ VAStatus SunxiCedrusMapBuffer(VADriverContextP ctx, VABufferID buf_id,
return vaStatus; return vaStatus;
} }
if (NULL != obj_buffer->buffer_data) if (NULL != obj_buffer->data)
{ {
*pbuf = obj_buffer->buffer_data; *pbuf = obj_buffer->data;
vaStatus = VA_STATUS_SUCCESS; vaStatus = VA_STATUS_SUCCESS;
} }
return vaStatus; return vaStatus;
@@ -175,14 +176,14 @@ VAStatus SunxiCedrusUnmapBuffer(VADriverContextP ctx, VABufferID buf_id)
void sunxi_cedrus_destroy_buffer(struct sunxi_cedrus_driver_data *driver_data, void sunxi_cedrus_destroy_buffer(struct sunxi_cedrus_driver_data *driver_data,
struct object_buffer *obj_buffer) struct object_buffer *obj_buffer)
{ {
if (obj_buffer->buffer_data != NULL) { if (obj_buffer->data != NULL) {
if (obj_buffer->type != VASliceDataBufferType) if (obj_buffer->type != VASliceDataBufferType)
free(obj_buffer->buffer_data); free(obj_buffer->data);
else if (obj_buffer->buffer_map != NULL && obj_buffer->map_size > 0) else if (obj_buffer->map != NULL && obj_buffer->map_size > 0)
munmap(obj_buffer->buffer_map, obj_buffer->map_size); munmap(obj_buffer->map, obj_buffer->map_size);
obj_buffer->buffer_map = NULL; obj_buffer->map = NULL;
obj_buffer->buffer_data = NULL; obj_buffer->data = NULL;
} }
object_heap_free(&driver_data->buffer_heap, obj_buffer); object_heap_free(&driver_data->buffer_heap, obj_buffer);
+7 -4
View File
@@ -36,12 +36,15 @@
struct object_buffer { struct object_buffer {
struct object_base base; struct object_base base;
void *buffer_data;
void *buffer_map;
int max_num_elements;
int num_elements;
VABufferType type; VABufferType type;
unsigned int initial_count;
unsigned int count;
void *data;
unsigned int size; unsigned int size;
void *map;
unsigned int map_size; unsigned int map_size;
}; };