From acc0cf3475103fe1bd89950d8fd99f30b419ffa4 Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Mon, 16 Jul 2018 14:13:16 +0200 Subject: [PATCH] codecs: pass the context to the controls function as well Some functions setting the controls will need the context in the future. Make sure that we provide it as an argument. Signed-off-by: Maxime Ripard --- src/h264.c | 1 + src/h264.h | 5 ++++- src/mpeg2.c | 1 + src/mpeg2.h | 2 ++ src/picture.c | 9 +++++---- 5 files changed, 13 insertions(+), 5 deletions(-) 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;