[PATCH] media: mediatek: vcodec: Skip unsupported h264 encoder profile

Allen-KH Cheng (程冠勳) Allen-KH.Cheng at mediatek.com
Wed Sep 28 06:38:46 PDT 2022


Hi Irui,

Tested-by: Allen-KH Cheng <allen-kh.cheng at mediatek.com>

Tested for CTS cases on the mt8186 corsola board.

Thanks,
Allen

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 at 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);


More information about the linux-arm-kernel mailing list