[1/7] venus : Add default values for the control V4L2_CID_COLORIMETRY_HDR10_MASTERING_DISPLAY

Message ID 20220712122347.6781-1-quic_vboma@quicinc.com (mailing list archive)
State New
Delegated to: Stanimir Varbanov
Headers
Series [1/7] venus : Add default values for the control V4L2_CID_COLORIMETRY_HDR10_MASTERING_DISPLAY |

Commit Message

Viswanath Boma July 12, 2022, 12:23 p.m. UTC
  From: Stanimir Varbanov <stanimir.varbanov@linaro.org>

 V4l2 encoder compliance expecting default values of colormetry for the control.

Change-Id: I1db0d4940b54e033d646ce39d60dc488afba8d58
Signed-off-by: Viswanath Boma <quic_vboma@quicinc.com>
---
 drivers/media/platform/qcom/venus/venc_ctrls.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)
  

Comments

Manivannan Sadhasivam July 12, 2022, 12:35 p.m. UTC | #1
On Tue, Jul 12, 2022 at 05:53:41PM +0530, Viswanath Boma wrote:
> From: Stanimir Varbanov <stanimir.varbanov@linaro.org>
> 
>  V4l2 encoder compliance expecting default values of colormetry for the control.
> 
> Change-Id: I1db0d4940b54e033d646ce39d60dc488afba8d58

What does this represent here? I'm pretty sure it is meaningless to the
upstream kernel, so please get rid of it.

> Signed-off-by: Viswanath Boma <quic_vboma@quicinc.com>

Since Stan is the original author of this and following patches, there
should be a s-o-b tag from him. After that you should add yours
indicating that you are carrying the patches from Stan.

Also, please add a cover letter stating the purpose of this series, how
it is tested, and with any other relevant information.

Thanks,
Mani

> ---
>  drivers/media/platform/qcom/venus/venc_ctrls.c | 4 +++-
>  1 file changed, 3 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/media/platform/qcom/venus/venc_ctrls.c b/drivers/media/platform/qcom/venus/venc_ctrls.c
> index ea5805e71c143..37ba7d97f99b2 100644
> --- a/drivers/media/platform/qcom/venus/venc_ctrls.c
> +++ b/drivers/media/platform/qcom/venus/venc_ctrls.c
> @@ -352,6 +352,8 @@ static const struct v4l2_ctrl_ops venc_ctrl_ops = {
>  int venc_ctrl_init(struct venus_inst *inst)
>  {
>  	int ret;
> +	struct v4l2_ctrl_hdr10_mastering_display p_hdr10_mastering = { {34000, 13250, 7500 },
> +	{ 16000, 34500, 3000 }, 15635,	16450, 10000000, 500 };
>  
>  	ret = v4l2_ctrl_handler_init(&inst->ctrl_handler, 58);
>  	if (ret)
> @@ -580,7 +582,7 @@ int venc_ctrl_init(struct venus_inst *inst)
>  
>  	v4l2_ctrl_new_std_compound(&inst->ctrl_handler, &venc_ctrl_ops,
>  				   V4L2_CID_COLORIMETRY_HDR10_MASTERING_DISPLAY,
> -				   v4l2_ctrl_ptr_create(NULL));
> +				   v4l2_ctrl_ptr_create((void *)&p_hdr10_mastering));
>  
>  	v4l2_ctrl_new_std(&inst->ctrl_handler, &venc_ctrl_ops,
>  			  V4L2_CID_MPEG_VIDEO_INTRA_REFRESH_PERIOD, 0,
> -- 
> 2.17.1
>
  
Nicolas Dufresne July 12, 2022, 1:34 p.m. UTC | #2
Le mardi 12 juillet 2022 à 17:53 +0530, Viswanath Boma a écrit :
> From: Stanimir Varbanov <stanimir.varbanov@linaro.org>
> 
>  V4l2 encoder compliance expecting default values of colormetry for the control.

nit: colormetry -> colorimetry

> 
> Change-Id: I1db0d4940b54e033d646ce39d60dc488afba8d58
> Signed-off-by: Viswanath Boma <quic_vboma@quicinc.com>
> ---
>  drivers/media/platform/qcom/venus/venc_ctrls.c | 4 +++-
>  1 file changed, 3 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/media/platform/qcom/venus/venc_ctrls.c b/drivers/media/platform/qcom/venus/venc_ctrls.c
> index ea5805e71c143..37ba7d97f99b2 100644
> --- a/drivers/media/platform/qcom/venus/venc_ctrls.c
> +++ b/drivers/media/platform/qcom/venus/venc_ctrls.c
> @@ -352,6 +352,8 @@ static const struct v4l2_ctrl_ops venc_ctrl_ops = {
>  int venc_ctrl_init(struct venus_inst *inst)
>  {
>  	int ret;
> +	struct v4l2_ctrl_hdr10_mastering_display p_hdr10_mastering = { {34000, 13250, 7500 },
> +	{ 16000, 34500, 3000 }, 15635,	16450, 10000000, 500 };

What is the origin of these values ? Should this be done in the control
framework instead ?

>  
>  	ret = v4l2_ctrl_handler_init(&inst->ctrl_handler, 58);
>  	if (ret)
> @@ -580,7 +582,7 @@ int venc_ctrl_init(struct venus_inst *inst)
>  
>  	v4l2_ctrl_new_std_compound(&inst->ctrl_handler, &venc_ctrl_ops,
>  				   V4L2_CID_COLORIMETRY_HDR10_MASTERING_DISPLAY,
> -				   v4l2_ctrl_ptr_create(NULL));
> +				   v4l2_ctrl_ptr_create((void *)&p_hdr10_mastering));
>  
>  	v4l2_ctrl_new_std(&inst->ctrl_handler, &venc_ctrl_ops,
>  			  V4L2_CID_MPEG_VIDEO_INTRA_REFRESH_PERIOD, 0,
  
Viswanath Boma (Temp) July 18, 2022, 10:31 a.m. UTC | #3
-----Original Message-----
From: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org> 
Sent: Tuesday, July 12, 2022 6:05 PM
To: Viswanath Boma (Temp) (QUIC) <quic_vboma@quicinc.com>
Cc: video.upstream.external <video.upstream.external@qti.qualcomm.com>; stanimir.varbanov@linaro.org; Andy Gross <agross@kernel.org>; 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
Subject: Re: [PATCH 1/7] venus : Add default values for the control V4L2_CID_COLORIMETRY_HDR10_MASTERING_DISPLAY

WARNING: This email originated from outside of Qualcomm. Please be wary of any links or attachments, and do not enable macros.

On Tue, Jul 12, 2022 at 05:53:41PM +0530, Viswanath Boma wrote:
> From: Stanimir Varbanov <stanimir.varbanov@linaro.org>
>
>  V4l2 encoder compliance expecting default values of colormetry for the control.
>
> Change-Id: I1db0d4940b54e033d646ce39d60dc488afba8d58

What does this represent here? I'm pretty sure it is meaningless to the upstream kernel, so please get rid of it.
[vboma]
Will ensure with next patch set

> Signed-off-by: Viswanath Boma <quic_vboma@quicinc.com>

Since Stan is the original author of this and following patches, there should be a s-o-b tag from him. After that you should add yours indicating that you are carrying the patches from Stan.

Also, please add a cover letter stating the purpose of this series, how it is tested, and with any other relevant information.

Thanks,
Mani
[vboma]
Will ensure with next patch set
> ---
>  drivers/media/platform/qcom/venus/venc_ctrls.c | 4 +++-
>  1 file changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/media/platform/qcom/venus/venc_ctrls.c 
> b/drivers/media/platform/qcom/venus/venc_ctrls.c
> index ea5805e71c143..37ba7d97f99b2 100644
> --- a/drivers/media/platform/qcom/venus/venc_ctrls.c
> +++ b/drivers/media/platform/qcom/venus/venc_ctrls.c
> @@ -352,6 +352,8 @@ static const struct v4l2_ctrl_ops venc_ctrl_ops = 
> {  int venc_ctrl_init(struct venus_inst *inst)  {
>       int ret;
> +     struct v4l2_ctrl_hdr10_mastering_display p_hdr10_mastering = { {34000, 13250, 7500 },
> +     { 16000, 34500, 3000 }, 15635,  16450, 10000000, 500 };
>
>       ret = v4l2_ctrl_handler_init(&inst->ctrl_handler, 58);
>       if (ret)
> @@ -580,7 +582,7 @@ int venc_ctrl_init(struct venus_inst *inst)
>
>       v4l2_ctrl_new_std_compound(&inst->ctrl_handler, &venc_ctrl_ops,
>                                  V4L2_CID_COLORIMETRY_HDR10_MASTERING_DISPLAY,
> -                                v4l2_ctrl_ptr_create(NULL));
> +                                v4l2_ctrl_ptr_create((void 
> + *)&p_hdr10_mastering));
>
>       v4l2_ctrl_new_std(&inst->ctrl_handler, &venc_ctrl_ops,
>                         V4L2_CID_MPEG_VIDEO_INTRA_REFRESH_PERIOD, 0,
> --
> 2.17.1
>
  
Viswanath Boma (Temp) July 18, 2022, 10:35 a.m. UTC | #4
-----Original Message-----
From: Nicolas Dufresne <nicolas@ndufresne.ca> 
Sent: Tuesday, July 12, 2022 7:04 PM
To: Viswanath Boma (Temp) (QUIC) <quic_vboma@quicinc.com>; video.upstream.external <video.upstream.external@qti.qualcomm.com>; stanimir.varbanov@linaro.org; Andy Gross <agross@kernel.org>; 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
Subject: Re: [PATCH 1/7] venus : Add default values for the control V4L2_CID_COLORIMETRY_HDR10_MASTERING_DISPLAY

WARNING: This email originated from outside of Qualcomm. Please be wary of any links or attachments, and do not enable macros.

Le mardi 12 juillet 2022 à 17:53 +0530, Viswanath Boma a écrit :
> From: Stanimir Varbanov <stanimir.varbanov@linaro.org>
>
>  V4l2 encoder compliance expecting default values of colormetry for the control.

nit: colormetry -> colorimetry
[vboma]
Will ensure with next patch set .
>
> Change-Id: I1db0d4940b54e033d646ce39d60dc488afba8d58
> Signed-off-by: Viswanath Boma <quic_vboma@quicinc.com>
> ---
>  drivers/media/platform/qcom/venus/venc_ctrls.c | 4 +++-
>  1 file changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/media/platform/qcom/venus/venc_ctrls.c 
> b/drivers/media/platform/qcom/venus/venc_ctrls.c
> index ea5805e71c143..37ba7d97f99b2 100644
> --- a/drivers/media/platform/qcom/venus/venc_ctrls.c
> +++ b/drivers/media/platform/qcom/venus/venc_ctrls.c
> @@ -352,6 +352,8 @@ static const struct v4l2_ctrl_ops venc_ctrl_ops = 
> {  int venc_ctrl_init(struct venus_inst *inst)  {
>       int ret;
> +     struct v4l2_ctrl_hdr10_mastering_display p_hdr10_mastering = { {34000, 13250, 7500 },
> +     { 16000, 34500, 3000 }, 15635,  16450, 10000000, 500 };

What is the origin of these values ? Should this be done in the control framework instead ?
[vboma]
Control frame work handling the min/max value that required with the default control object.
As per @Stanimir Varbanov (Consultant)  inputs ,added these values for the default .
HI , @Stanimir Varbanov (Consultant) , could you please share more info as required .

>
>       ret = v4l2_ctrl_handler_init(&inst->ctrl_handler, 58);
>       if (ret)
> @@ -580,7 +582,7 @@ int venc_ctrl_init(struct venus_inst *inst)
>
>       v4l2_ctrl_new_std_compound(&inst->ctrl_handler, &venc_ctrl_ops,
>                                  V4L2_CID_COLORIMETRY_HDR10_MASTERING_DISPLAY,
> -                                v4l2_ctrl_ptr_create(NULL));
> +                                v4l2_ctrl_ptr_create((void 
> + *)&p_hdr10_mastering));
>
>       v4l2_ctrl_new_std(&inst->ctrl_handler, &venc_ctrl_ops,
>                         V4L2_CID_MPEG_VIDEO_INTRA_REFRESH_PERIOD, 0,
  
Stanimir Varbanov July 25, 2022, 9:01 a.m. UTC | #5
On 7/12/22 16:34, Nicolas Dufresne wrote:
> Le mardi 12 juillet 2022 à 17:53 +0530, Viswanath Boma a écrit :
>> From: Stanimir Varbanov <stanimir.varbanov@linaro.org>
>>
>>  V4l2 encoder compliance expecting default values of colormetry for the control.
> 
> nit: colormetry -> colorimetry
> 
>>
>> Change-Id: I1db0d4940b54e033d646ce39d60dc488afba8d58
>> Signed-off-by: Viswanath Boma <quic_vboma@quicinc.com>
>> ---
>>  drivers/media/platform/qcom/venus/venc_ctrls.c | 4 +++-
>>  1 file changed, 3 insertions(+), 1 deletion(-)
>>
>> diff --git a/drivers/media/platform/qcom/venus/venc_ctrls.c b/drivers/media/platform/qcom/venus/venc_ctrls.c
>> index ea5805e71c143..37ba7d97f99b2 100644
>> --- a/drivers/media/platform/qcom/venus/venc_ctrls.c
>> +++ b/drivers/media/platform/qcom/venus/venc_ctrls.c
>> @@ -352,6 +352,8 @@ static const struct v4l2_ctrl_ops venc_ctrl_ops = {
>>  int venc_ctrl_init(struct venus_inst *inst)
>>  {
>>  	int ret;
>> +	struct v4l2_ctrl_hdr10_mastering_display p_hdr10_mastering = { {34000, 13250, 7500 },
>> +	{ 16000, 34500, 3000 }, 15635,	16450, 10000000, 500 };
> 
> What is the origin of these values ? Should this be done in the control
> framework instead ?

We needed some safe default values to satisfy v4l2 control. I took the
values from here [1].

I'm not sure do we need them in v4l2 control core (most probably it is a
good to have it), Hans ?

> 
>>  
>>  	ret = v4l2_ctrl_handler_init(&inst->ctrl_handler, 58);
>>  	if (ret)
>> @@ -580,7 +582,7 @@ int venc_ctrl_init(struct venus_inst *inst)
>>  
>>  	v4l2_ctrl_new_std_compound(&inst->ctrl_handler, &venc_ctrl_ops,
>>  				   V4L2_CID_COLORIMETRY_HDR10_MASTERING_DISPLAY,
>> -				   v4l2_ctrl_ptr_create(NULL));
>> +				   v4l2_ctrl_ptr_create((void *)&p_hdr10_mastering));
>>  
>>  	v4l2_ctrl_new_std(&inst->ctrl_handler, &venc_ctrl_ops,
>>  			  V4L2_CID_MPEG_VIDEO_INTRA_REFRESH_PERIOD, 0,
>
  
Stanimir Varbanov July 25, 2022, 9:07 a.m. UTC | #6
Hi Viswanath,

On 7/12/22 15:23, Viswanath Boma wrote:
> From: Stanimir Varbanov <stanimir.varbanov@linaro.org>

In fact this comes from you, please drop 'From'.

> 
>  V4l2 encoder compliance expecting default values of colormetry for the control.
> 
> Change-Id: I1db0d4940b54e033d646ce39d60dc488afba8d58

Drop this.

> Signed-off-by: Viswanath Boma <quic_vboma@quicinc.com>
> ---
>  drivers/media/platform/qcom/venus/venc_ctrls.c | 4 +++-
>  1 file changed, 3 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/media/platform/qcom/venus/venc_ctrls.c b/drivers/media/platform/qcom/venus/venc_ctrls.c
> index ea5805e71c143..37ba7d97f99b2 100644
> --- a/drivers/media/platform/qcom/venus/venc_ctrls.c
> +++ b/drivers/media/platform/qcom/venus/venc_ctrls.c
> @@ -352,6 +352,8 @@ static const struct v4l2_ctrl_ops venc_ctrl_ops = {
>  int venc_ctrl_init(struct venus_inst *inst)
>  {
>  	int ret;
> +	struct v4l2_ctrl_hdr10_mastering_display p_hdr10_mastering = { {34000, 13250, 7500 },
> +	{ 16000, 34500, 3000 }, 15635,	16450, 10000000, 500 };

Please do this with proper indentation.

>  
>  	ret = v4l2_ctrl_handler_init(&inst->ctrl_handler, 58);
>  	if (ret)
> @@ -580,7 +582,7 @@ int venc_ctrl_init(struct venus_inst *inst)
>  
>  	v4l2_ctrl_new_std_compound(&inst->ctrl_handler, &venc_ctrl_ops,
>  				   V4L2_CID_COLORIMETRY_HDR10_MASTERING_DISPLAY,
> -				   v4l2_ctrl_ptr_create(NULL));
> +				   v4l2_ctrl_ptr_create((void *)&p_hdr10_mastering));

I think you do not need to cast to (void *).

>  
>  	v4l2_ctrl_new_std(&inst->ctrl_handler, &venc_ctrl_ops,
>  			  V4L2_CID_MPEG_VIDEO_INTRA_REFRESH_PERIOD, 0,
  
Viswanath Boma Aug. 8, 2022, 9:28 a.m. UTC | #7
From: Viswanath Boma <quic_vboma@quicinc.com>

Fixes for Video Encoder complaince issues .
Tested on v5.15 kernel and the chrome/client binary details -
				 v4l2-compliance 1.22.1



Dikshita Agarwal (1):
  venus : Addition of support for VIDIOC_TRY_ENCODER_CMD

Stanimir Varbanov (2):
  venus : Add default values for the control
    V4L2_CID_COLORIMETRY_HDR10_MASTERING_DISPLAY
  venus : CAPTURE Plane width/height alignment with OUT plane.

Vikash Garodia (1):
  venus : Allow MIN/MAX settings for the v4l2 encoder controls defined
    range.

Viswanath Boma (3):
  venus : Addition of control support - V4L2_CID_MIN_BUFFERS_FOR_OUTPUT
  venus : Addition of EOS Event support for Encoder
  venus : Remove the capture plane settings for venc_g_parm/venc_s_parm

 drivers/media/platform/qcom/venus/venc.c      | 26 ++++++++++----
 .../media/platform/qcom/venus/venc_ctrls.c    | 35 ++++++++++++++++---
 2 files changed, 50 insertions(+), 11 deletions(-)
  

Patch

diff --git a/drivers/media/platform/qcom/venus/venc_ctrls.c b/drivers/media/platform/qcom/venus/venc_ctrls.c
index ea5805e71c143..37ba7d97f99b2 100644
--- a/drivers/media/platform/qcom/venus/venc_ctrls.c
+++ b/drivers/media/platform/qcom/venus/venc_ctrls.c
@@ -352,6 +352,8 @@  static const struct v4l2_ctrl_ops venc_ctrl_ops = {
 int venc_ctrl_init(struct venus_inst *inst)
 {
 	int ret;
+	struct v4l2_ctrl_hdr10_mastering_display p_hdr10_mastering = { {34000, 13250, 7500 },
+	{ 16000, 34500, 3000 }, 15635,	16450, 10000000, 500 };
 
 	ret = v4l2_ctrl_handler_init(&inst->ctrl_handler, 58);
 	if (ret)
@@ -580,7 +582,7 @@  int venc_ctrl_init(struct venus_inst *inst)
 
 	v4l2_ctrl_new_std_compound(&inst->ctrl_handler, &venc_ctrl_ops,
 				   V4L2_CID_COLORIMETRY_HDR10_MASTERING_DISPLAY,
-				   v4l2_ctrl_ptr_create(NULL));
+				   v4l2_ctrl_ptr_create((void *)&p_hdr10_mastering));
 
 	v4l2_ctrl_new_std(&inst->ctrl_handler, &venc_ctrl_ops,
 			  V4L2_CID_MPEG_VIDEO_INTRA_REFRESH_PERIOD, 0,