From: quic_vboma@quicinc.com
To: Stanimir Varbanov <stanimir.varbanov@linaro.org>,
Andy Gross <agross@kernel.org>,
Bjorn Andersson <bjorn.andersson@linaro.org>,
Mauro Carvalho Chehab <mchehab@kernel.org>,
linux-media@vger.kernel.org, linux-arm-msm@vger.kernel.org,
linux-kernel@vger.kernel.org
Cc: Viswanath Boma <quic_vboma@quicinc.com>,
Vikash Garodia <quic_vgarodia@quicinc.com>
Subject: [PATCH V2 2/7] venus : Addition of control support - V4L2_CID_MIN_BUFFERS_FOR_OUTPUT
Date: Mon, 8 Aug 2022 14:58:29 +0530 [thread overview]
Message-ID: <20220808092834.29775-3-quic_vboma@quicinc.com> (raw)
In-Reply-To: <20220808092834.29775-1-quic_vboma@quicinc.com>
From: Viswanath Boma <quic_vboma@quicinc.com>
V4l2 encoder compliance expecting minimum buffers support for
the application to allocate buffers as per the control support values.
Acked-by: Stanimir Varbanov <stanimir.varbanov@linaro.org>
Signed-off-by: Viswanath Boma <quic_vboma@quicinc.com>
Signed-off-by: Vikash Garodia <quic_vgarodia@quicinc.com>
---
.../media/platform/qcom/venus/venc_ctrls.c | 27 ++++++++++++++++++-
1 file changed, 26 insertions(+), 1 deletion(-)
diff --git a/drivers/media/platform/qcom/venus/venc_ctrls.c b/drivers/media/platform/qcom/venus/venc_ctrls.c
index aa44c0b3ceb57..b4437cf598ff1 100644
--- a/drivers/media/platform/qcom/venus/venc_ctrls.c
+++ b/drivers/media/platform/qcom/venus/venc_ctrls.c
@@ -8,6 +8,7 @@
#include "core.h"
#include "venc.h"
+#include "helpers.h"
#define BITRATE_MIN 32000
#define BITRATE_MAX 160000000
@@ -345,8 +346,29 @@ static int venc_op_s_ctrl(struct v4l2_ctrl *ctrl)
return 0;
}
+static int venc_op_g_volatile_ctrl(struct v4l2_ctrl *ctrl)
+{
+ struct venus_inst *inst = ctrl_to_inst(ctrl);
+ struct hfi_buffer_requirements bufreq;
+ enum hfi_version ver = inst->core->res->hfi_version;
+ int ret;
+
+ switch (ctrl->id) {
+ case V4L2_CID_MIN_BUFFERS_FOR_OUTPUT:
+ ret = venus_helper_get_bufreq(inst, HFI_BUFFER_INPUT, &bufreq);
+ if (!ret)
+ ctrl->val = HFI_BUFREQ_COUNT_MIN(&bufreq, ver);
+ break;
+ default:
+ return -EINVAL;
+ }
+
+ return 0;
+}
+
static const struct v4l2_ctrl_ops venc_ctrl_ops = {
.s_ctrl = venc_op_s_ctrl,
+ .g_volatile_ctrl = venc_op_g_volatile_ctrl,
};
int venc_ctrl_init(struct venus_inst *inst)
@@ -357,7 +379,7 @@ int venc_ctrl_init(struct venus_inst *inst)
{ 16000, 34500, 3000 }, 15635, 16450, 10000000, 500,
};
- ret = v4l2_ctrl_handler_init(&inst->ctrl_handler, 58);
+ ret = v4l2_ctrl_handler_init(&inst->ctrl_handler, 59);
if (ret)
return ret;
@@ -437,6 +459,9 @@ int venc_ctrl_init(struct venus_inst *inst)
V4L2_MPEG_VIDEO_VP8_PROFILE_3,
0, V4L2_MPEG_VIDEO_VP8_PROFILE_0);
+ v4l2_ctrl_new_std(&inst->ctrl_handler, &venc_ctrl_ops,
+ V4L2_CID_MIN_BUFFERS_FOR_OUTPUT, 4, 11, 1, 4);
+
v4l2_ctrl_new_std(&inst->ctrl_handler, &venc_ctrl_ops,
V4L2_CID_MPEG_VIDEO_BITRATE, BITRATE_MIN, BITRATE_MAX,
BITRATE_STEP, BITRATE_DEFAULT);
--
2.17.1
next prev parent reply other threads:[~2022-08-08 9:31 UTC|newest]
Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-07-12 12:23 [PATCH 1/7] venus : Add default values for the control V4L2_CID_COLORIMETRY_HDR10_MASTERING_DISPLAY Viswanath Boma
2022-07-12 12:23 ` [PATCH 2/7] venus : Addition of control support - V4L2_CID_MIN_BUFFERS_FOR_OUTPUT Viswanath Boma
2022-07-25 10:37 ` Stanimir Varbanov
2022-07-12 12:23 ` [PATCH 3/7] venus : CAPTURE Plane width/height alignment with OUT plane Viswanath Boma
2022-07-12 12:23 ` [PATCH 4/7] venus : Addition of EOS Event support for Encoder Viswanath Boma
2022-07-25 10:44 ` Stanimir Varbanov
2022-07-12 12:23 ` [PATCH 5/7] venus : Addition of support for VIDIOC_TRY_ENCODER_CMD Viswanath Boma
2022-07-26 10:05 ` Stanimir Varbanov
2022-07-12 12:23 ` [PATCH 6/7] venus : Remove the capture plane settings for venc_g_parm/venc_s_parm Viswanath Boma
2022-07-12 12:23 ` [PATCH 7/7] venus : Allow MIN/MAX settings for the v4l2 encoder controls defined range Viswanath Boma
2022-07-25 10:41 ` Stanimir Varbanov
2022-07-12 12:35 ` [PATCH 1/7] venus : Add default values for the control V4L2_CID_COLORIMETRY_HDR10_MASTERING_DISPLAY Manivannan Sadhasivam
2022-07-18 10:31 ` Viswanath Boma (Temp)
2022-07-12 13:34 ` Nicolas Dufresne
2022-07-18 10:35 ` Viswanath Boma (Temp)
2022-07-25 9:01 ` Stanimir Varbanov
2022-07-25 9:07 ` Stanimir Varbanov
2022-08-08 9:28 ` [PATCH V2 0/7] Fixes for Encoder Compliance issues quic_vboma
2022-08-08 9:28 ` [PATCH V2 1/7] venus : Add default values for the control quic_vboma
2022-08-08 9:28 ` quic_vboma [this message]
2022-08-08 9:28 ` [PATCH V2 3/7] venus : CAPTURE Plane width/height alignment with OUT plane quic_vboma
2022-08-08 9:28 ` [PATCH V2 4/7] venus : Addition of EOS Event support for Encoder quic_vboma
2022-08-08 9:28 ` [PATCH V2 5/7] venus : Addition of support for VIDIOC_TRY_ENCODER_CMD quic_vboma
2022-08-08 9:28 ` [PATCH V2 6/7] venus : Remove the capture plane settings for venc_g_parm/venc_s_parm quic_vboma
2022-08-30 13:30 ` Stanimir Varbanov
2022-08-08 9:28 ` [PATCH V2 7/7] venus : Allow MIN/MAX settings for the v4l2 encoder controls defined range quic_vboma
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20220808092834.29775-3-quic_vboma@quicinc.com \
--to=quic_vboma@quicinc.com \
--cc=agross@kernel.org \
--cc=bjorn.andersson@linaro.org \
--cc=linux-arm-msm@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-media@vger.kernel.org \
--cc=mchehab@kernel.org \
--cc=quic_vgarodia@quicinc.com \
--cc=stanimir.varbanov@linaro.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.