diff mbox series

media: mediatek: vcodec: Enable HEVC main still picture decode

Message ID 20250211-enable_hevc_still_picture-v1-1-0c06c0c9add2@chromium.org (mailing list archive)
State New
Headers show
Series media: mediatek: vcodec: Enable HEVC main still picture decode | expand

Commit Message

Nathan Hebert Feb. 12, 2025, 12:34 a.m. UTC
Mediatek devices that support HEVC also support the main still picture
profile, but today, the main still picture profile is excluded.

This removes the skip mask for HEVC, and enables the main still
picture profile decoding.

Signed-off-by: Nathan Hebert <nhebert@chromium.org>
---
On Mediatek devices that support HEVC decoding, HEVC Main Still Picture
profile is also supported by the SOC and firmware. However, this
capability is turned off in the vcodec driver.

This removes the code that disables HEVC Main Still Picture profile
decoding. Validation of the decoder has been done via V4L2-backed
Android CTS tests on an MT8196 device.
---
 .../media/platform/mediatek/vcodec/decoder/mtk_vcodec_dec_stateless.c   | 2 --
 1 file changed, 2 deletions(-)


---
base-commit: ffd294d346d185b70e28b1a28abe367bbfe53c04
change-id: 20250211-enable_hevc_still_picture-26b35eb08270

Best regards,

Comments

Nicolas Dufresne Feb. 17, 2025, 6:45 p.m. UTC | #1
Hi Nathan,

Le mardi 11 février 2025 à 16:34 -0800, Nathan Hebert a écrit :
> Mediatek devices that support HEVC also support the main still picture
> profile, but today, the main still picture profile is excluded.
> 
> This removes the skip mask for HEVC, and enables the main still
> picture profile decoding.
> 
> Signed-off-by: Nathan Hebert <nhebert@chromium.org>
> ---
> On Mediatek devices that support HEVC decoding, HEVC Main Still Picture
> profile is also supported by the SOC and firmware. However, this
> capability is turned off in the vcodec driver.
> 
> This removes the code that disables HEVC Main Still Picture profile
> decoding. Validation of the decoder has been done via V4L2-backed
> Android CTS tests on an MT8196 device.

While its nice to know that you are working on upcoming SoC, we need
confirmation that this is working on all the upstream stateless
decoders supported: 8183, 8186, 8192, 8195. Ideally testing on 8188,
which I can see has merged support without the linux-firmware file to
go with it.

I'll wait for that and Yunfei's ack before picking it. Yunfei, please
fix the situation with 8188 in linux-firmware, and CC me.

regards,
Nicolas

> ---
>  .../media/platform/mediatek/vcodec/decoder/mtk_vcodec_dec_stateless.c   | 2 --
>  1 file changed, 2 deletions(-)
> 
> diff --git a/drivers/media/platform/mediatek/vcodec/decoder/mtk_vcodec_dec_stateless.c b/drivers/media/platform/mediatek/vcodec/decoder/mtk_vcodec_dec_stateless.c
> index afa224da0f41..d873159b9b30 100644
> --- a/drivers/media/platform/mediatek/vcodec/decoder/mtk_vcodec_dec_stateless.c
> +++ b/drivers/media/platform/mediatek/vcodec/decoder/mtk_vcodec_dec_stateless.c
> @@ -152,8 +152,6 @@ static const struct mtk_stateless_control mtk_stateless_controls[] = {
>  			.id = V4L2_CID_MPEG_VIDEO_HEVC_PROFILE,
>  			.def = V4L2_MPEG_VIDEO_HEVC_PROFILE_MAIN,
>  			.max = V4L2_MPEG_VIDEO_HEVC_PROFILE_MAIN_10,
> -			.menu_skip_mask =
> -				BIT(V4L2_MPEG_VIDEO_HEVC_PROFILE_MAIN_STILL_PICTURE),
>  		},
>  		.codec_type = V4L2_PIX_FMT_HEVC_SLICE,
>  	},
> 
> ---
> base-commit: ffd294d346d185b70e28b1a28abe367bbfe53c04
> change-id: 20250211-enable_hevc_still_picture-26b35eb08270
> 
> Best regards,
Nicolas Dufresne Feb. 17, 2025, 7:28 p.m. UTC | #2
aLe lundi 17 février 2025 à 13:45 -0500, Nicolas Dufresne a écrit :
> Hi Nathan,
> 
> Le mardi 11 février 2025 à 16:34 -0800, Nathan Hebert a écrit :
> > Mediatek devices that support HEVC also support the main still picture
> > profile, but today, the main still picture profile is excluded.
> > 
> > This removes the skip mask for HEVC, and enables the main still
> > picture profile decoding.
> > 
> > Signed-off-by: Nathan Hebert <nhebert@chromium.org>
> > ---
> > On Mediatek devices that support HEVC decoding, HEVC Main Still Picture
> > profile is also supported by the SOC and firmware. However, this
> > capability is turned off in the vcodec driver.
> > 
> > This removes the code that disables HEVC Main Still Picture profile
> > decoding. Validation of the decoder has been done via V4L2-backed
> > Android CTS tests on an MT8196 device.
> 
> While its nice to know that you are working on upcoming SoC, we need
> confirmation that this is working on all the upstream stateless
> decoders supported: 8183, 8186, 8192, 8195. Ideally testing on 8188,
> which I can see has merged support without the linux-firmware file to
> go with it.
> 
> I'll wait for that and Yunfei's ack before picking it. Yunfei, please
> fix the situation with 8188 in linux-firmware, and CC me.

In case this is useful, we recommend providing fluster scores for the
codec, which in that case runs some public ITU conformance vectors.
Since most of the testing has been done with GStreamer, you may be able
to find old report and confirm it it works. GStreamer does not
currently filter the profile/level (on my todo), so it will try anyway.
IPRED_B_Nokia_3 is the one vector in the base suite that expose that
profile.

resources/JCT-VC-HEVC_V1/IPRED_B_Nokia_3/IPRED_B_Nokia_3.bit
  Stream #0:0: Video: hevc (Main Still Picture), none, 1920x1080, 25 fps, 1200k tbr, 1200k tbn

regards,
Nicolas

> 
> regards,
> Nicolas
> 
> > ---
> >  .../media/platform/mediatek/vcodec/decoder/mtk_vcodec_dec_stateless.c   | 2 --
> >  1 file changed, 2 deletions(-)
> > 
> > diff --git a/drivers/media/platform/mediatek/vcodec/decoder/mtk_vcodec_dec_stateless.c b/drivers/media/platform/mediatek/vcodec/decoder/mtk_vcodec_dec_stateless.c
> > index afa224da0f41..d873159b9b30 100644
> > --- a/drivers/media/platform/mediatek/vcodec/decoder/mtk_vcodec_dec_stateless.c
> > +++ b/drivers/media/platform/mediatek/vcodec/decoder/mtk_vcodec_dec_stateless.c
> > @@ -152,8 +152,6 @@ static const struct mtk_stateless_control mtk_stateless_controls[] = {
> >  			.id = V4L2_CID_MPEG_VIDEO_HEVC_PROFILE,
> >  			.def = V4L2_MPEG_VIDEO_HEVC_PROFILE_MAIN,
> >  			.max = V4L2_MPEG_VIDEO_HEVC_PROFILE_MAIN_10,
> > -			.menu_skip_mask =
> > -				BIT(V4L2_MPEG_VIDEO_HEVC_PROFILE_MAIN_STILL_PICTURE),
> >  		},
> >  		.codec_type = V4L2_PIX_FMT_HEVC_SLICE,
> >  	},
> > 
> > ---
> > base-commit: ffd294d346d185b70e28b1a28abe367bbfe53c04
> > change-id: 20250211-enable_hevc_still_picture-26b35eb08270
> > 
> > Best regards,
>
diff mbox series

Patch

diff --git a/drivers/media/platform/mediatek/vcodec/decoder/mtk_vcodec_dec_stateless.c b/drivers/media/platform/mediatek/vcodec/decoder/mtk_vcodec_dec_stateless.c
index afa224da0f41..d873159b9b30 100644
--- a/drivers/media/platform/mediatek/vcodec/decoder/mtk_vcodec_dec_stateless.c
+++ b/drivers/media/platform/mediatek/vcodec/decoder/mtk_vcodec_dec_stateless.c
@@ -152,8 +152,6 @@  static const struct mtk_stateless_control mtk_stateless_controls[] = {
 			.id = V4L2_CID_MPEG_VIDEO_HEVC_PROFILE,
 			.def = V4L2_MPEG_VIDEO_HEVC_PROFILE_MAIN,
 			.max = V4L2_MPEG_VIDEO_HEVC_PROFILE_MAIN_10,
-			.menu_skip_mask =
-				BIT(V4L2_MPEG_VIDEO_HEVC_PROFILE_MAIN_STILL_PICTURE),
 		},
 		.codec_type = V4L2_PIX_FMT_HEVC_SLICE,
 	},