diff --git a/src/h264.c b/src/h264.c index 77cb09a..db43bd4 100644 --- a/src/h264.c +++ b/src/h264.c @@ -231,6 +231,7 @@ static void h264_va_slice_to_v4l2(struct cedrus_data *driver_data, } int h264_set_controls(struct cedrus_data *driver_data, + struct object_context *context, struct object_surface *surface) { struct v4l2_ctrl_h264_scaling_matrix matrix = { 0 }; diff --git a/src/h264.h b/src/h264.h index 9b6002a..acf4c33 100644 --- a/src/h264.h +++ b/src/h264.h @@ -27,9 +27,12 @@ #ifndef _H264_H_ #define _H264_H_ +struct object_context; struct object_surface; struct cedrus_data; -int h264_set_controls(struct cedrus_data *data, struct object_surface *surface); +int h264_set_controls(struct cedrus_data *data, + struct object_context *context, + struct object_surface *surface); #endif diff --git a/src/mpeg2.c b/src/mpeg2.c index b753e96..e8d0aea 100644 --- a/src/mpeg2.c +++ b/src/mpeg2.c @@ -39,6 +39,7 @@ #include "v4l2.h" int mpeg2_set_controls(struct cedrus_data *driver_data, + struct object_context *context_object, struct object_surface *surface_object) { VAPictureParameterBufferMPEG2 *parameters = diff --git a/src/mpeg2.h b/src/mpeg2.h index 21a36cf..c6e40fc 100644 --- a/src/mpeg2.h +++ b/src/mpeg2.h @@ -26,10 +26,12 @@ #ifndef _MPEG2_H_ #define _MPEG2_H_ +struct object_context; struct object_surface; struct cedrus_data; int mpeg2_set_controls(struct cedrus_data *driver_data, + struct object_context *context, struct object_surface *surface_object); #endif diff --git a/src/picture.c b/src/picture.c index eda814c..059abf3 100644 --- a/src/picture.c +++ b/src/picture.c @@ -131,6 +131,7 @@ static VAStatus codec_store_buffer(struct cedrus_data *driver_data, } static VAStatus codec_set_controls(struct cedrus_data *driver_data, + struct object_context *context, VAProfile profile, struct object_surface *surface_object) { @@ -139,7 +140,7 @@ static VAStatus codec_set_controls(struct cedrus_data *driver_data, switch (profile) { case VAProfileMPEG2Simple: case VAProfileMPEG2Main: - rc = mpeg2_set_controls(driver_data, surface_object); + rc = mpeg2_set_controls(driver_data, context, surface_object); if (rc < 0) return VA_STATUS_ERROR_OPERATION_FAILED; break; @@ -149,7 +150,7 @@ static VAStatus codec_set_controls(struct cedrus_data *driver_data, case VAProfileH264ConstrainedBaseline: case VAProfileH264MultiviewHigh: case VAProfileH264StereoHigh: - rc = h264_set_controls(driver_data, surface_object); + rc = h264_set_controls(driver_data, context, surface_object); if (rc < 0) return VA_STATUS_ERROR_OPERATION_FAILED; break; @@ -259,8 +260,8 @@ VAStatus SunxiCedrusEndPicture(VADriverContextP context, VAContextID context_id) surface_object->request_fd = request_fd; } - rc = codec_set_controls(driver_data, config_object->profile, - surface_object); + rc = codec_set_controls(driver_data, context_object, + config_object->profile, surface_object); if (rc != VA_STATUS_SUCCESS) return rc;