Reorder functions, with a straightforward logic
Signed-off-by: Paul Kocialkowski <paul.kocialkowski@bootlin.com>
This commit is contained in:
+28
-28
@@ -120,21 +120,33 @@ VAStatus SunxiCedrusCreateBuffer(VADriverContextP context,
|
|||||||
return VA_STATUS_SUCCESS;
|
return VA_STATUS_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
VAStatus SunxiCedrusBufferSetNumElements(VADriverContextP context,
|
void sunxi_cedrus_destroy_buffer(struct sunxi_cedrus_driver_data *driver_data,
|
||||||
VABufferID buffer_id, unsigned int count)
|
struct object_buffer *obj_buffer)
|
||||||
|
{
|
||||||
|
if (obj_buffer->data != NULL) {
|
||||||
|
if (obj_buffer->type != VASliceDataBufferType)
|
||||||
|
free(obj_buffer->data);
|
||||||
|
else if (obj_buffer->map != NULL && obj_buffer->map_size > 0)
|
||||||
|
munmap(obj_buffer->map, obj_buffer->map_size);
|
||||||
|
|
||||||
|
obj_buffer->map = NULL;
|
||||||
|
obj_buffer->data = NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
object_heap_free(&driver_data->buffer_heap, obj_buffer);
|
||||||
|
}
|
||||||
|
|
||||||
|
VAStatus SunxiCedrusDestroyBuffer(VADriverContextP context,
|
||||||
|
VABufferID buffer_id)
|
||||||
{
|
{
|
||||||
struct sunxi_cedrus_driver_data *driver_data =
|
struct sunxi_cedrus_driver_data *driver_data =
|
||||||
(struct sunxi_cedrus_driver_data *) context->pDriverData;
|
(struct sunxi_cedrus_driver_data *) context->pDriverData;
|
||||||
VAStatus vaStatus = VA_STATUS_SUCCESS;
|
|
||||||
struct object_buffer *obj_buffer = BUFFER(buffer_id);
|
struct object_buffer *obj_buffer = BUFFER(buffer_id);
|
||||||
assert(obj_buffer);
|
assert(obj_buffer);
|
||||||
|
|
||||||
if ((count < 0) || (count > obj_buffer->initial_count))
|
sunxi_cedrus_destroy_buffer(driver_data, obj_buffer);
|
||||||
vaStatus = VA_STATUS_ERROR_UNKNOWN;
|
|
||||||
if (VA_STATUS_SUCCESS == vaStatus)
|
|
||||||
obj_buffer->count = count;
|
|
||||||
|
|
||||||
return vaStatus;
|
return VA_STATUS_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
VAStatus SunxiCedrusMapBuffer(VADriverContextP context, VABufferID buffer_id,
|
VAStatus SunxiCedrusMapBuffer(VADriverContextP context, VABufferID buffer_id,
|
||||||
@@ -173,33 +185,21 @@ VAStatus SunxiCedrusUnmapBuffer(VADriverContextP context, VABufferID buffer_id)
|
|||||||
return VA_STATUS_SUCCESS;
|
return VA_STATUS_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
void sunxi_cedrus_destroy_buffer(struct sunxi_cedrus_driver_data *driver_data,
|
VAStatus SunxiCedrusBufferSetNumElements(VADriverContextP context,
|
||||||
struct object_buffer *obj_buffer)
|
VABufferID buffer_id, unsigned int count)
|
||||||
{
|
|
||||||
if (obj_buffer->data != NULL) {
|
|
||||||
if (obj_buffer->type != VASliceDataBufferType)
|
|
||||||
free(obj_buffer->data);
|
|
||||||
else if (obj_buffer->map != NULL && obj_buffer->map_size > 0)
|
|
||||||
munmap(obj_buffer->map, obj_buffer->map_size);
|
|
||||||
|
|
||||||
obj_buffer->map = NULL;
|
|
||||||
obj_buffer->data = NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
object_heap_free(&driver_data->buffer_heap, obj_buffer);
|
|
||||||
}
|
|
||||||
|
|
||||||
VAStatus SunxiCedrusDestroyBuffer(VADriverContextP context,
|
|
||||||
VABufferID buffer_id)
|
|
||||||
{
|
{
|
||||||
struct sunxi_cedrus_driver_data *driver_data =
|
struct sunxi_cedrus_driver_data *driver_data =
|
||||||
(struct sunxi_cedrus_driver_data *) context->pDriverData;
|
(struct sunxi_cedrus_driver_data *) context->pDriverData;
|
||||||
|
VAStatus vaStatus = VA_STATUS_SUCCESS;
|
||||||
struct object_buffer *obj_buffer = BUFFER(buffer_id);
|
struct object_buffer *obj_buffer = BUFFER(buffer_id);
|
||||||
assert(obj_buffer);
|
assert(obj_buffer);
|
||||||
|
|
||||||
sunxi_cedrus_destroy_buffer(driver_data, obj_buffer);
|
if ((count < 0) || (count > obj_buffer->initial_count))
|
||||||
|
vaStatus = VA_STATUS_ERROR_UNKNOWN;
|
||||||
|
if (VA_STATUS_SUCCESS == vaStatus)
|
||||||
|
obj_buffer->count = count;
|
||||||
|
|
||||||
return VA_STATUS_SUCCESS;
|
return vaStatus;
|
||||||
}
|
}
|
||||||
|
|
||||||
VAStatus SunxiCedrusBufferInfo(VADriverContextP context, VABufferID buffer_id,
|
VAStatus SunxiCedrusBufferInfo(VADriverContextP context, VABufferID buffer_id,
|
||||||
|
|||||||
+5
-5
@@ -51,15 +51,15 @@ struct object_buffer {
|
|||||||
VAStatus SunxiCedrusCreateBuffer(VADriverContextP context,
|
VAStatus SunxiCedrusCreateBuffer(VADriverContextP context,
|
||||||
VAContextID context_id, VABufferType type, unsigned int size,
|
VAContextID context_id, VABufferType type, unsigned int size,
|
||||||
unsigned int count, void *data, VABufferID *buffer_id);
|
unsigned int count, void *data, VABufferID *buffer_id);
|
||||||
VAStatus SunxiCedrusBufferSetNumElements(VADriverContextP context,
|
|
||||||
VABufferID buffer_id, unsigned int count);
|
|
||||||
VAStatus SunxiCedrusMapBuffer(VADriverContextP context, VABufferID buffer_id,
|
|
||||||
void **data_map);
|
|
||||||
VAStatus SunxiCedrusUnmapBuffer(VADriverContextP context, VABufferID buffer_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);
|
||||||
VAStatus SunxiCedrusDestroyBuffer(VADriverContextP context,
|
VAStatus SunxiCedrusDestroyBuffer(VADriverContextP context,
|
||||||
VABufferID buffer_id);
|
VABufferID buffer_id);
|
||||||
|
VAStatus SunxiCedrusMapBuffer(VADriverContextP context, VABufferID buffer_id,
|
||||||
|
void **data_map);
|
||||||
|
VAStatus SunxiCedrusUnmapBuffer(VADriverContextP context, VABufferID buffer_id);
|
||||||
|
VAStatus SunxiCedrusBufferSetNumElements(VADriverContextP context,
|
||||||
|
VABufferID buffer_id, unsigned int count);
|
||||||
VAStatus SunxiCedrusBufferInfo(VADriverContextP context, VABufferID buffer_id,
|
VAStatus SunxiCedrusBufferInfo(VADriverContextP context, VABufferID buffer_id,
|
||||||
VABufferType *type, unsigned int *size, unsigned int *count);
|
VABufferType *type, unsigned int *size, unsigned int *count);
|
||||||
|
|
||||||
|
|||||||
@@ -171,4 +171,3 @@ VAStatus SunxiCedrusDestroyContext(VADriverContextP context,
|
|||||||
|
|
||||||
return VA_STATUS_SUCCESS;
|
return VA_STATUS_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+19
-19
@@ -32,14 +32,6 @@
|
|||||||
|
|
||||||
#include "tiled_yuv.h"
|
#include "tiled_yuv.h"
|
||||||
|
|
||||||
VAStatus SunxiCedrusQueryImageFormats(VADriverContextP context,
|
|
||||||
VAImageFormat *formats, int *formats_count)
|
|
||||||
{
|
|
||||||
formats[0].fourcc = VA_FOURCC_NV12;
|
|
||||||
*formats_count = 1;
|
|
||||||
return VA_STATUS_SUCCESS;
|
|
||||||
}
|
|
||||||
|
|
||||||
VAStatus SunxiCedrusCreateImage(VADriverContextP context, VAImageFormat *format,
|
VAStatus SunxiCedrusCreateImage(VADriverContextP context, VAImageFormat *format,
|
||||||
int width, int height, VAImage *image)
|
int width, int height, VAImage *image)
|
||||||
{
|
{
|
||||||
@@ -81,6 +73,21 @@ VAStatus SunxiCedrusCreateImage(VADriverContextP context, VAImageFormat *format,
|
|||||||
return VA_STATUS_SUCCESS;
|
return VA_STATUS_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
VAStatus SunxiCedrusDestroyImage(VADriverContextP context, VAImageID image_id)
|
||||||
|
{
|
||||||
|
struct sunxi_cedrus_driver_data *driver_data =
|
||||||
|
(struct sunxi_cedrus_driver_data *) context->pDriverData;
|
||||||
|
struct object_image *obj_img;
|
||||||
|
|
||||||
|
obj_img = IMAGE(image);
|
||||||
|
assert(obj_img);
|
||||||
|
|
||||||
|
SunxiCedrusDestroyBuffer(context, obj_img->buf);
|
||||||
|
object_heap_free(&driver_data->image_heap, &obj_img->base);
|
||||||
|
|
||||||
|
return VA_STATUS_SUCCESS;
|
||||||
|
}
|
||||||
|
|
||||||
VAStatus SunxiCedrusDeriveImage(VADriverContextP context,
|
VAStatus SunxiCedrusDeriveImage(VADriverContextP context,
|
||||||
VASurfaceID surface_id, VAImage *image)
|
VASurfaceID surface_id, VAImage *image)
|
||||||
{
|
{
|
||||||
@@ -112,18 +119,11 @@ VAStatus SunxiCedrusDeriveImage(VADriverContextP context,
|
|||||||
return VA_STATUS_SUCCESS;
|
return VA_STATUS_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
VAStatus SunxiCedrusDestroyImage(VADriverContextP context, VAImageID image_id)
|
VAStatus SunxiCedrusQueryImageFormats(VADriverContextP context,
|
||||||
|
VAImageFormat *formats, int *formats_count)
|
||||||
{
|
{
|
||||||
struct sunxi_cedrus_driver_data *driver_data =
|
formats[0].fourcc = VA_FOURCC_NV12;
|
||||||
(struct sunxi_cedrus_driver_data *) context->pDriverData;
|
*formats_count = 1;
|
||||||
struct object_image *obj_img;
|
|
||||||
|
|
||||||
obj_img = IMAGE(image);
|
|
||||||
assert(obj_img);
|
|
||||||
|
|
||||||
SunxiCedrusDestroyBuffer(context, obj_img->buf);
|
|
||||||
object_heap_free(&driver_data->image_heap, &obj_img->base);
|
|
||||||
|
|
||||||
return VA_STATUS_SUCCESS;
|
return VA_STATUS_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+3
-3
@@ -38,13 +38,13 @@ struct object_image {
|
|||||||
VABufferID buffer_id;
|
VABufferID buffer_id;
|
||||||
};
|
};
|
||||||
|
|
||||||
VAStatus SunxiCedrusQueryImageFormats(VADriverContextP context,
|
|
||||||
VAImageFormat *formats, int *formats_count);
|
|
||||||
VAStatus SunxiCedrusCreateImage(VADriverContextP context, VAImageFormat *format,
|
VAStatus SunxiCedrusCreateImage(VADriverContextP context, VAImageFormat *format,
|
||||||
int width, int height, VAImage *image);
|
int width, int height, VAImage *image);
|
||||||
|
VAStatus SunxiCedrusDestroyImage(VADriverContextP context, VAImageID image_id);
|
||||||
VAStatus SunxiCedrusDeriveImage(VADriverContextP context,
|
VAStatus SunxiCedrusDeriveImage(VADriverContextP context,
|
||||||
VASurfaceID surface_id, VAImage *image);
|
VASurfaceID surface_id, VAImage *image);
|
||||||
VAStatus SunxiCedrusDestroyImage(VADriverContextP context, VAImageID image_id);
|
VAStatus SunxiCedrusQueryImageFormats(VADriverContextP context,
|
||||||
|
VAImageFormat *formats, int *formats_count);
|
||||||
VAStatus SunxiCedrusSetImagePalette(VADriverContextP context,
|
VAStatus SunxiCedrusSetImagePalette(VADriverContextP context,
|
||||||
VAImageID image_id, unsigned char *palette);
|
VAImageID image_id, unsigned char *palette);
|
||||||
VAStatus SunxiCedrusGetImage(VADriverContextP context, VASurfaceID surface_id,
|
VAStatus SunxiCedrusGetImage(VADriverContextP context, VASurfaceID surface_id,
|
||||||
|
|||||||
@@ -233,5 +233,3 @@ VAStatus SunxiCedrusEndPicture(VADriverContextP context,
|
|||||||
|
|
||||||
return vaStatus;
|
return vaStatus;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
+5
-5
@@ -26,11 +26,6 @@
|
|||||||
#include "sunxi_cedrus.h"
|
#include "sunxi_cedrus.h"
|
||||||
#include "subpicture.h"
|
#include "subpicture.h"
|
||||||
|
|
||||||
VAStatus SunxiCedrusQuerySubpictureFormats(VADriverContextP context,
|
|
||||||
VAImageFormat *formats, unsigned int *flags,
|
|
||||||
unsigned int *formats_count)
|
|
||||||
{ return VA_STATUS_SUCCESS; }
|
|
||||||
|
|
||||||
VAStatus SunxiCedrusCreateSubpicture(VADriverContextP context,
|
VAStatus SunxiCedrusCreateSubpicture(VADriverContextP context,
|
||||||
VAImageID image_id, VASubpictureID *subpicture_id)
|
VAImageID image_id, VASubpictureID *subpicture_id)
|
||||||
{ return VA_STATUS_SUCCESS; }
|
{ return VA_STATUS_SUCCESS; }
|
||||||
@@ -39,6 +34,11 @@ VAStatus SunxiCedrusDestroySubpicture(VADriverContextP context,
|
|||||||
VASubpictureID subpicture_id)
|
VASubpictureID subpicture_id)
|
||||||
{ return VA_STATUS_SUCCESS; }
|
{ return VA_STATUS_SUCCESS; }
|
||||||
|
|
||||||
|
VAStatus SunxiCedrusQuerySubpictureFormats(VADriverContextP context,
|
||||||
|
VAImageFormat *formats, unsigned int *flags,
|
||||||
|
unsigned int *formats_count)
|
||||||
|
{ return VA_STATUS_SUCCESS; }
|
||||||
|
|
||||||
VAStatus SunxiCedrusSetSubpictureImage(VADriverContextP context,
|
VAStatus SunxiCedrusSetSubpictureImage(VADriverContextP context,
|
||||||
VASubpictureID subpicture_id, VAImageID image_id)
|
VASubpictureID subpicture_id, VAImageID image_id)
|
||||||
{ return VA_STATUS_SUCCESS; }
|
{ return VA_STATUS_SUCCESS; }
|
||||||
|
|||||||
+3
-3
@@ -28,13 +28,13 @@
|
|||||||
|
|
||||||
#include <va/va_backend.h>
|
#include <va/va_backend.h>
|
||||||
|
|
||||||
VAStatus SunxiCedrusQuerySubpictureFormats(VADriverContextP context,
|
|
||||||
VAImageFormat *formats, unsigned int *flags,
|
|
||||||
unsigned int *formats_count);
|
|
||||||
VAStatus SunxiCedrusCreateSubpicture(VADriverContextP context,
|
VAStatus SunxiCedrusCreateSubpicture(VADriverContextP context,
|
||||||
VAImageID image_id, VASubpictureID *subpicture_id);
|
VAImageID image_id, VASubpictureID *subpicture_id);
|
||||||
VAStatus SunxiCedrusDestroySubpicture(VADriverContextP context,
|
VAStatus SunxiCedrusDestroySubpicture(VADriverContextP context,
|
||||||
VASubpictureID subpicture_id);
|
VASubpictureID subpicture_id);
|
||||||
|
VAStatus SunxiCedrusQuerySubpictureFormats(VADriverContextP context,
|
||||||
|
VAImageFormat *formats, unsigned int *flags,
|
||||||
|
unsigned int *formats_count);
|
||||||
VAStatus SunxiCedrusSetSubpictureImage(VADriverContextP context,
|
VAStatus SunxiCedrusSetSubpictureImage(VADriverContextP context,
|
||||||
VASubpictureID subpicture_id, VAImageID image_id);
|
VASubpictureID subpicture_id, VAImageID image_id);
|
||||||
VAStatus SunxiCedrusSetSubpicturePalette(VADriverContextP context,
|
VAStatus SunxiCedrusSetSubpicturePalette(VADriverContextP context,
|
||||||
|
|||||||
+48
-45
@@ -60,52 +60,11 @@ void sunxi_cedrus_msg(const char *msg, ...)
|
|||||||
va_end(args);
|
va_end(args);
|
||||||
}
|
}
|
||||||
|
|
||||||
VAStatus SunxiCedrusTerminate(VADriverContextP context)
|
/* Set default visibility for the init function only. */
|
||||||
{
|
VAStatus __attribute__((visibility("default")))
|
||||||
struct sunxi_cedrus_driver_data *driver_data =
|
VA_DRIVER_INIT_FUNC(VADriverContextP context);
|
||||||
(struct sunxi_cedrus_driver_data *) context->pDriverData;
|
|
||||||
struct object_buffer *obj_buffer;
|
|
||||||
struct object_config *obj_config;
|
|
||||||
object_heap_iterator iter;
|
|
||||||
|
|
||||||
/* Free memory and close v4l device */
|
VAStatus VA_DRIVER_INIT_FUNC(VADriverContextP context)
|
||||||
|
|
||||||
for (int i = 0; i < INPUT_BUFFERS_NB; i++)
|
|
||||||
if (driver_data->request_fds[i] >= 0)
|
|
||||||
close(driver_data->request_fds[i]);
|
|
||||||
|
|
||||||
close(driver_data->mem2mem_fd);
|
|
||||||
|
|
||||||
/* Clean up left over buffers */
|
|
||||||
obj_buffer = (struct object_buffer *) object_heap_first(&driver_data->buffer_heap, &iter);
|
|
||||||
while (obj_buffer)
|
|
||||||
{
|
|
||||||
sunxi_cedrus_msg("vaTerminate: bufferID %08x still allocated, destroying\n", obj_buffer->base.id);
|
|
||||||
sunxi_cedrus_destroy_buffer(driver_data, obj_buffer);
|
|
||||||
obj_buffer = (struct object_buffer *) object_heap_next(&driver_data->buffer_heap, &iter);
|
|
||||||
}
|
|
||||||
|
|
||||||
object_heap_destroy(&driver_data->buffer_heap);
|
|
||||||
object_heap_destroy(&driver_data->surface_heap);
|
|
||||||
object_heap_destroy(&driver_data->context_heap);
|
|
||||||
|
|
||||||
/* Clean up configIDs */
|
|
||||||
obj_config = (struct object_config *) object_heap_first(&driver_data->config_heap, &iter);
|
|
||||||
while (obj_config)
|
|
||||||
{
|
|
||||||
object_heap_free(&driver_data->config_heap, (object_base_p) obj_config);
|
|
||||||
obj_config = (struct object_config *) object_heap_next(&driver_data->config_heap, &iter);
|
|
||||||
}
|
|
||||||
object_heap_destroy(&driver_data->config_heap);
|
|
||||||
|
|
||||||
free(context->pDriverData);
|
|
||||||
context->pDriverData = NULL;
|
|
||||||
|
|
||||||
return VA_STATUS_SUCCESS;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Only expose the init function. */
|
|
||||||
VAStatus __attribute__((visibility("default"))) VA_DRIVER_INIT_FUNC(VADriverContextP context)
|
|
||||||
{
|
{
|
||||||
struct VADriverVTable * const vtable = context->vtable;
|
struct VADriverVTable * const vtable = context->vtable;
|
||||||
struct sunxi_cedrus_driver_data *driver_data;
|
struct sunxi_cedrus_driver_data *driver_data;
|
||||||
@@ -203,3 +162,47 @@ VAStatus __attribute__((visibility("default"))) VA_DRIVER_INIT_FUNC(VADriverCont
|
|||||||
|
|
||||||
return VA_STATUS_SUCCESS;
|
return VA_STATUS_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
VAStatus SunxiCedrusTerminate(VADriverContextP context)
|
||||||
|
{
|
||||||
|
struct sunxi_cedrus_driver_data *driver_data =
|
||||||
|
(struct sunxi_cedrus_driver_data *) context->pDriverData;
|
||||||
|
struct object_buffer *obj_buffer;
|
||||||
|
struct object_config *obj_config;
|
||||||
|
object_heap_iterator iter;
|
||||||
|
|
||||||
|
/* Free memory and close v4l device */
|
||||||
|
|
||||||
|
for (int i = 0; i < INPUT_BUFFERS_NB; i++)
|
||||||
|
if (driver_data->request_fds[i] >= 0)
|
||||||
|
close(driver_data->request_fds[i]);
|
||||||
|
|
||||||
|
close(driver_data->mem2mem_fd);
|
||||||
|
|
||||||
|
/* Clean up left over buffers */
|
||||||
|
obj_buffer = (struct object_buffer *) object_heap_first(&driver_data->buffer_heap, &iter);
|
||||||
|
while (obj_buffer)
|
||||||
|
{
|
||||||
|
sunxi_cedrus_msg("vaTerminate: bufferID %08x still allocated, destroying\n", obj_buffer->base.id);
|
||||||
|
sunxi_cedrus_destroy_buffer(driver_data, obj_buffer);
|
||||||
|
obj_buffer = (struct object_buffer *) object_heap_next(&driver_data->buffer_heap, &iter);
|
||||||
|
}
|
||||||
|
|
||||||
|
object_heap_destroy(&driver_data->buffer_heap);
|
||||||
|
object_heap_destroy(&driver_data->surface_heap);
|
||||||
|
object_heap_destroy(&driver_data->context_heap);
|
||||||
|
|
||||||
|
/* Clean up configIDs */
|
||||||
|
obj_config = (struct object_config *) object_heap_first(&driver_data->config_heap, &iter);
|
||||||
|
while (obj_config)
|
||||||
|
{
|
||||||
|
object_heap_free(&driver_data->config_heap, (object_base_p) obj_config);
|
||||||
|
obj_config = (struct object_config *) object_heap_next(&driver_data->config_heap, &iter);
|
||||||
|
}
|
||||||
|
object_heap_destroy(&driver_data->config_heap);
|
||||||
|
|
||||||
|
free(context->pDriverData);
|
||||||
|
context->pDriverData = NULL;
|
||||||
|
|
||||||
|
return VA_STATUS_SUCCESS;
|
||||||
|
}
|
||||||
|
|||||||
+5
-2
@@ -41,8 +41,6 @@
|
|||||||
#define SUNXI_CEDRUS_MAX_SUBPIC_FORMATS 4
|
#define SUNXI_CEDRUS_MAX_SUBPIC_FORMATS 4
|
||||||
#define SUNXI_CEDRUS_MAX_DISPLAY_ATTRIBUTES 4
|
#define SUNXI_CEDRUS_MAX_DISPLAY_ATTRIBUTES 4
|
||||||
|
|
||||||
void sunxi_cedrus_msg(const char *msg, ...);
|
|
||||||
|
|
||||||
struct sunxi_cedrus_driver_data {
|
struct sunxi_cedrus_driver_data {
|
||||||
struct object_heap config_heap;
|
struct object_heap config_heap;
|
||||||
struct object_heap context_heap;
|
struct object_heap context_heap;
|
||||||
@@ -57,4 +55,9 @@ struct sunxi_cedrus_driver_data {
|
|||||||
int slice_offset[INPUT_BUFFERS_NB];
|
int slice_offset[INPUT_BUFFERS_NB];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
void sunxi_cedrus_msg(const char *msg, ...);
|
||||||
|
|
||||||
|
VAStatus VA_DRIVER_INIT_FUNC(VADriverContextP context);
|
||||||
|
VAStatus SunxiCedrusTerminate(VADriverContextP context);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@@ -227,7 +227,6 @@ VAStatus SunxiCedrusQuerySurfaceStatus(VADriverContextP context,
|
|||||||
return vaStatus;
|
return vaStatus;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
VAStatus SunxiCedrusPutSurface(VADriverContextP context, VASurfaceID surface_id,
|
VAStatus SunxiCedrusPutSurface(VADriverContextP context, VASurfaceID surface_id,
|
||||||
void *draw, short src_x, short src_y, unsigned short src_width,
|
void *draw, short src_x, short src_y, unsigned short src_width,
|
||||||
unsigned short src_height, short dst_x, short dst_y,
|
unsigned short src_height, short dst_x, short dst_y,
|
||||||
|
|||||||
Reference in New Issue
Block a user