mpeg2: Pass driver_data along to access reference surfaces

Signed-off-by: Paul Kocialkowski <paul.kocialkowski@bootlin.com>
This commit is contained in:
Paul Kocialkowski
2018-04-25 09:32:19 +02:00
parent 61ccf702a1
commit c55a2709b0
3 changed files with 10 additions and 6 deletions
+4 -2
View File
@@ -34,7 +34,8 @@
#include <linux/videodev2.h> #include <linux/videodev2.h>
int mpeg2_fill_picture_parameters(struct object_context *context_object, int mpeg2_fill_picture_parameters(struct sunxi_cedrus_driver_data *driver_data,
struct object_context *context_object,
struct object_surface *surface_object, struct object_surface *surface_object,
VAPictureParameterBufferMPEG2 *parameters) VAPictureParameterBufferMPEG2 *parameters)
{ {
@@ -80,7 +81,8 @@ int mpeg2_fill_picture_parameters(struct object_context *context_object,
return 0; return 0;
} }
int mpeg2_fill_slice_data(struct object_context *context_object, int mpeg2_fill_slice_data(struct sunxi_cedrus_driver_data *driver_data,
struct object_context *context_object,
struct object_surface *surface_object, void *data, unsigned int size) struct object_surface *surface_object, void *data, unsigned int size)
{ {
return 0; return 0;
+4 -2
View File
@@ -33,10 +33,12 @@
#include "surface.h" #include "surface.h"
int mpeg2_fill_picture_parameters(struct object_context *context_object, int mpeg2_fill_picture_parameters(struct sunxi_cedrus_driver_data *driver_data,
struct object_context *context_object,
struct object_surface *surface_object, struct object_surface *surface_object,
VAPictureParameterBufferMPEG2 *parameters); VAPictureParameterBufferMPEG2 *parameters);
int mpeg2_fill_slice_data(struct object_context *context_object, int mpeg2_fill_slice_data(struct sunxi_cedrus_driver_data *driver_data,
struct object_context *context_object,
struct object_surface *surface_object, void *data, unsigned int size); struct object_surface *surface_object, void *data, unsigned int size);
#endif #endif
+2 -2
View File
@@ -110,13 +110,13 @@ VAStatus SunxiCedrusRenderPicture(VADriverContextP context,
data = buffer_object->data; data = buffer_object->data;
size = buffer_object->size * buffer_object->count; size = buffer_object->size * buffer_object->count;
rc = mpeg2_fill_slice_data(context_object, surface_object, data, size); rc = mpeg2_fill_slice_data(driver_data, context_object, surface_object, data, size);
if (rc < 0) if (rc < 0)
return VA_STATUS_ERROR_OPERATION_FAILED; return VA_STATUS_ERROR_OPERATION_FAILED;
} else if (buffer_object->type == VAPictureParameterBufferType) { } else if (buffer_object->type == VAPictureParameterBufferType) {
mpeg2_parameters = (VAPictureParameterBufferMPEG2 *) buffer->data; mpeg2_parameters = (VAPictureParameterBufferMPEG2 *) buffer->data;
rc = mpeg2_fill_picture_parameters(context_object, surface_object, mpeg2_parameters); rc = mpeg2_fill_picture_parameters(driver_data, context_object, surface_object, mpeg2_parameters);
if (rc < 0) if (rc < 0)
return VA_STATUS_ERROR_OPERATION_FAILED; return VA_STATUS_ERROR_OPERATION_FAILED;
} else { } else {