forked from marfrit/libva-v4l2-request-fourier
mpeg2: Pass driver_data along to access reference surfaces
Signed-off-by: Paul Kocialkowski <paul.kocialkowski@bootlin.com>
This commit is contained in:
+4
-2
@@ -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
@@ -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
@@ -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 {
|
||||||
|
|||||||
Reference in New Issue
Block a user