diff mbox series

media: mediatek: vcodec: Skip unsupported h264 encoder profile

Message ID 20220926093501.26466-1-irui.wang@mediatek.com
State Accepted
Commit 9047d90e9130e1544e0ef130aeda2913767c7d7c
Headers show
Series media: mediatek: vcodec: Skip unsupported h264 encoder profile | expand

Commit Message

Irui Wang Sept. 26, 2022, 9:35 a.m. UTC
The encoder driver support h264 baseline, main, high encoder
profile, set mask for V4L2_CID_MPEG_VIDEO_H264_PROFILE to skip
the unsupported profile.

get supported h264_profile by command: v4l2-ctl -d /dev/videoX -L
h264_profile 0x00990a6b (menu) : min=0 max=4 default=4 value=4
        0: Baseline
        2: Main
        4: High

Signed-off-by: Irui Wang <irui.wang@mediatek.com>
---
 drivers/media/platform/mediatek/vcodec/mtk_vcodec_enc.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

Comments

Irui Wang Oct. 19, 2022, 10:07 a.m. UTC | #1
Dear Hans,

Gently ping for this patch, could you help to review this patch?

Thanks
Best Regards

On Mon, 2022-09-26 at 17:35 +0800, Irui Wang wrote:
> The encoder driver support h264 baseline, main, high encoder
> profile, set mask for V4L2_CID_MPEG_VIDEO_H264_PROFILE to skip
> the unsupported profile.
> 
> get supported h264_profile by command: v4l2-ctl -d /dev/videoX -L
> h264_profile 0x00990a6b (menu) : min=0 max=4 default=4 value=4
>         0: Baseline
>         2: Main
>         4: High
> 
> Signed-off-by: Irui Wang <irui.wang@mediatek.com>
> ---
>  drivers/media/platform/mediatek/vcodec/mtk_vcodec_enc.c | 5 ++++-
>  1 file changed, 4 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/media/platform/mediatek/vcodec/mtk_vcodec_enc.c
> b/drivers/media/platform/mediatek/vcodec/mtk_vcodec_enc.c
> index d810a78dde51..d65800a3b89d 100644
> --- a/drivers/media/platform/mediatek/vcodec/mtk_vcodec_enc.c
> +++ b/drivers/media/platform/mediatek/vcodec/mtk_vcodec_enc.c
> @@ -1397,7 +1397,10 @@ int mtk_vcodec_enc_ctrls_setup(struct
> mtk_vcodec_ctx *ctx)
>  			0, V4L2_MPEG_VIDEO_HEADER_MODE_SEPARATE);
>  	v4l2_ctrl_new_std_menu(handler, ops,
> V4L2_CID_MPEG_VIDEO_H264_PROFILE,
>  			V4L2_MPEG_VIDEO_H264_PROFILE_HIGH,
> -			0, V4L2_MPEG_VIDEO_H264_PROFILE_HIGH);
> +			~((1 << V4L2_MPEG_VIDEO_H264_PROFILE_BASELINE)
> |
> +			  (1 << V4L2_MPEG_VIDEO_H264_PROFILE_MAIN) |
> +			  (1 << V4L2_MPEG_VIDEO_H264_PROFILE_HIGH)),
> +			V4L2_MPEG_VIDEO_H264_PROFILE_HIGH);
>  	v4l2_ctrl_new_std_menu(handler, ops,
> V4L2_CID_MPEG_VIDEO_H264_LEVEL,
>  			       h264_max_level,
>  			       0, V4L2_MPEG_VIDEO_H264_LEVEL_4_0);
Hans Verkuil Nov. 15, 2022, 11:49 a.m. UTC | #2
Hi Irui,

On 11/15/22 12:40, Irui Wang (王瑞) wrote:
> Dear Hans,
> 
> Gently ping for this patch.
> May I know this patch current status? It seems is under your reviewing
> state?

Mauro was on vacation last week, but he said that he hopes to merge
the pending PRs tomorrow. Fingers crossed...

Regards,

	Hans

> 
> Thanks
> Best Regards
> 
> On Mon, 2022-09-26 at 17:35 +0800, Irui Wang wrote:
>> The encoder driver support h264 baseline, main, high encoder
>> profile, set mask for V4L2_CID_MPEG_VIDEO_H264_PROFILE to skip
>> the unsupported profile.
>> 
>> get supported h264_profile by command: v4l2-ctl -d /dev/videoX -L
>> h264_profile 0x00990a6b (menu) : min=0 max=4 default=4 value=4
>>         0: Baseline
>>         2: Main
>>         4: High
>> 
>> Signed-off-by: Irui Wang <irui.wang@mediatek.com>
>> ---
>>  drivers/media/platform/mediatek/vcodec/mtk_vcodec_enc.c | 5 ++++-
>>  1 file changed, 4 insertions(+), 1 deletion(-)
>> 
>> diff --git a/drivers/media/platform/mediatek/vcodec/mtk_vcodec_enc.c
>> b/drivers/media/platform/mediatek/vcodec/mtk_vcodec_enc.c
>> index d810a78dde51..d65800a3b89d 100644
>> --- a/drivers/media/platform/mediatek/vcodec/mtk_vcodec_enc.c
>> +++ b/drivers/media/platform/mediatek/vcodec/mtk_vcodec_enc.c
>> @@ -1397,7 +1397,10 @@ int mtk_vcodec_enc_ctrls_setup(struct
>> mtk_vcodec_ctx *ctx)
>>  0, V4L2_MPEG_VIDEO_HEADER_MODE_SEPARATE);
>>  v4l2_ctrl_new_std_menu(handler, ops,
>> V4L2_CID_MPEG_VIDEO_H264_PROFILE,
>>  V4L2_MPEG_VIDEO_H264_PROFILE_HIGH,
>> -0, V4L2_MPEG_VIDEO_H264_PROFILE_HIGH);
>> +~((1 << V4L2_MPEG_VIDEO_H264_PROFILE_BASELINE)
>> |
>> +  (1 << V4L2_MPEG_VIDEO_H264_PROFILE_MAIN) |
>> +  (1 << V4L2_MPEG_VIDEO_H264_PROFILE_HIGH)),
>> +V4L2_MPEG_VIDEO_H264_PROFILE_HIGH);
>>  v4l2_ctrl_new_std_menu(handler, ops,
>> V4L2_CID_MPEG_VIDEO_H264_LEVEL,
>>         h264_max_level,
>>         0, V4L2_MPEG_VIDEO_H264_LEVEL_4_0);
> 
> ************* MEDIATEK Confidentiality Notice
>  ********************
> The information contained in this e-mail message (including any 
> attachments) may be confidential, proprietary, privileged, or otherwise
> exempt from disclosure under applicable laws. It is intended to be 
> conveyed only to the designated recipient(s). Any use, dissemination, 
> distribution, printing, retaining or copying of this e-mail (including its 
> attachments) by unintended recipient(s) is strictly prohibited and may 
> be unlawful. If you are not an intended recipient of this e-mail, or believe
>  
> that you have received this e-mail in error, please notify the sender 
> immediately (by replying to this e-mail), delete any and all copies of 
> this e-mail (including any attachments) from your system, and do not
> disclose the content of this e-mail to any other person. Thank you!
diff mbox series

Patch

diff --git a/drivers/media/platform/mediatek/vcodec/mtk_vcodec_enc.c b/drivers/media/platform/mediatek/vcodec/mtk_vcodec_enc.c
index d810a78dde51..d65800a3b89d 100644
--- a/drivers/media/platform/mediatek/vcodec/mtk_vcodec_enc.c
+++ b/drivers/media/platform/mediatek/vcodec/mtk_vcodec_enc.c
@@ -1397,7 +1397,10 @@  int mtk_vcodec_enc_ctrls_setup(struct mtk_vcodec_ctx *ctx)
 			0, V4L2_MPEG_VIDEO_HEADER_MODE_SEPARATE);
 	v4l2_ctrl_new_std_menu(handler, ops, V4L2_CID_MPEG_VIDEO_H264_PROFILE,
 			V4L2_MPEG_VIDEO_H264_PROFILE_HIGH,
-			0, V4L2_MPEG_VIDEO_H264_PROFILE_HIGH);
+			~((1 << V4L2_MPEG_VIDEO_H264_PROFILE_BASELINE) |
+			  (1 << V4L2_MPEG_VIDEO_H264_PROFILE_MAIN) |
+			  (1 << V4L2_MPEG_VIDEO_H264_PROFILE_HIGH)),
+			V4L2_MPEG_VIDEO_H264_PROFILE_HIGH);
 	v4l2_ctrl_new_std_menu(handler, ops, V4L2_CID_MPEG_VIDEO_H264_LEVEL,
 			       h264_max_level,
 			       0, V4L2_MPEG_VIDEO_H264_LEVEL_4_0);