diff mbox series

media: mediatek: vcodec: Force capture queue format to MM21

Message ID 20230209074025.1816-1-yunfei.dong@mediatek.com (mailing list archive)
State New, archived
Headers show
Series media: mediatek: vcodec: Force capture queue format to MM21 | expand

Commit Message

Yunfei Dong Feb. 9, 2023, 7:40 a.m. UTC
In order to conver the format of capture queue from mediatek MM21 to
standard yuv420 with Libyuv, need to force capture queue format to
MM21 for Libyuv can't covert mediatek MT21 format.

Signed-off-by: Yunfei Dong <yunfei.dong@mediatek.org>
---
 drivers/media/platform/mediatek/vcodec/mtk_vcodec_dec.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

Comments

Tommaso Merciai Feb. 9, 2023, 8:57 a.m. UTC | #1
Hi Yunfei Dong,

On Thu, Feb 09, 2023 at 03:40:25PM +0800, Yunfei Dong wrote:
> In order to conver the format of capture queue from mediatek MM21 to
> standard yuv420 with Libyuv, need to force capture queue format to
> MM21 for Libyuv can't covert mediatek MT21 format.

Sorry, just some clarifications on my side, just to understand :)
The problem is that libyuv can't convert mm21 format into yuv420
than you need to use mm21 (forcing this).
Did I understand correctly?

Thanks in advance,
Tommaso

> 
> Signed-off-by: Yunfei Dong <yunfei.dong@mediatek.org>
> ---
>  drivers/media/platform/mediatek/vcodec/mtk_vcodec_dec.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/media/platform/mediatek/vcodec/mtk_vcodec_dec.c b/drivers/media/platform/mediatek/vcodec/mtk_vcodec_dec.c
> index 641f533c417f..4f5e9c20214f 100644
> --- a/drivers/media/platform/mediatek/vcodec/mtk_vcodec_dec.c
> +++ b/drivers/media/platform/mediatek/vcodec/mtk_vcodec_dec.c
> @@ -41,7 +41,7 @@ static bool mtk_vdec_get_cap_fmt(struct mtk_vcodec_ctx *ctx, int format_index)
>  	const struct mtk_video_fmt *fmt;
>  	struct mtk_q_data *q_data;
>  	int num_frame_count = 0, i;
> -	bool ret = true;
> +	bool ret = false;
>  
>  	for (i = 0; i < *dec_pdata->num_formats; i++) {
>  		if (dec_pdata->vdec_formats[i].type != MTK_FMT_FRAME)
> @@ -63,7 +63,7 @@ static bool mtk_vdec_get_cap_fmt(struct mtk_vcodec_ctx *ctx, int format_index)
>  	case V4L2_PIX_FMT_H264_SLICE:
>  	case V4L2_PIX_FMT_VP9_FRAME:
>  		if (fmt->fourcc == V4L2_PIX_FMT_MM21)
> -			ret = false;
> +			ret = true;
>  		break;
>  	default:
>  		ret = true;
> -- 
> 2.18.0
>
AngeloGioacchino Del Regno Feb. 9, 2023, 12:56 p.m. UTC | #2
Il 09/02/23 09:57, Tommaso Merciai ha scritto:
> Hi Yunfei Dong,
> 
> On Thu, Feb 09, 2023 at 03:40:25PM +0800, Yunfei Dong wrote:
>> In order to conver the format of capture queue from mediatek MM21 to
>> standard yuv420 with Libyuv, need to force capture queue format to
>> MM21 for Libyuv can't covert mediatek MT21 format.
> 
> Sorry, just some clarifications on my side, just to understand :)
> The problem is that libyuv can't convert mm21 format into yuv420
> than you need to use mm21 (forcing this).
> Did I understand correctly?
> 

vcodec can output either MM21 or MT21C; libyuv can't handle the MT21C format,
at least for now, hence he is forcing vcodec to always give MM21 for things
to actually work... at a later time, I hope and suppose that this driver will
change to not force anything anymore.

> Thanks in advance,
> Tommaso
> 

Yunfei, since this is required to get "basic" functionality, this commit needs
a Fixes tag: can you please add the right one?

Thanks!
Angelo
Yunfei Dong Feb. 10, 2023, 5:56 a.m. UTC | #3
Hi AngeloGioacchino,

Thanks for your suggestion.
Add Fixes tag in patch v2.

Best Regards,
Yunfei Dong

On Thu, 2023-02-09 at 13:56 +0100, AngeloGioacchino Del Regno wrote:
> Il 09/02/23 09:57, Tommaso Merciai ha scritto:
> > Hi Yunfei Dong,
> > 
> > On Thu, Feb 09, 2023 at 03:40:25PM +0800, Yunfei Dong wrote:
> > > In order to conver the format of capture queue from mediatek MM21
> > > to
> > > standard yuv420 with Libyuv, need to force capture queue format
> > > to
> > > MM21 for Libyuv can't covert mediatek MT21 format.
> > 
> > Sorry, just some clarifications on my side, just to understand :)
> > The problem is that libyuv can't convert mm21 format into yuv420
> > than you need to use mm21 (forcing this).
> > Did I understand correctly?
> > 
> 
> vcodec can output either MM21 or MT21C; libyuv can't handle the MT21C
> format,
> at least for now, hence he is forcing vcodec to always give MM21 for
> things
> to actually work... at a later time, I hope and suppose that this
> driver will
> change to not force anything anymore.
> 
> > Thanks in advance,
> > Tommaso
> > 
> 
> Yunfei, since this is required to get "basic" functionality, this
> commit needs
> a Fixes tag: can you please add the right one?
> 
> Thanks!
> Angelo
> 
>
Tommaso Merciai Feb. 10, 2023, 7:27 a.m. UTC | #4
Hi Angelo,

On Thu, Feb 09, 2023 at 01:56:45PM +0100, AngeloGioacchino Del Regno wrote:
> Il 09/02/23 09:57, Tommaso Merciai ha scritto:
> > Hi Yunfei Dong,
> > 
> > On Thu, Feb 09, 2023 at 03:40:25PM +0800, Yunfei Dong wrote:
> > > In order to conver the format of capture queue from mediatek MM21 to
> > > standard yuv420 with Libyuv, need to force capture queue format to
> > > MM21 for Libyuv can't covert mediatek MT21 format.
> > 
> > Sorry, just some clarifications on my side, just to understand :)
> > The problem is that libyuv can't convert mm21 format into yuv420
> > than you need to use mm21 (forcing this).
> > Did I understand correctly?
> > 
> 
> vcodec can output either MM21 or MT21C; libyuv can't handle the MT21C format,
> at least for now, hence he is forcing vcodec to always give MM21 for things
> to actually work... at a later time, I hope and suppose that this driver will
> change to not force anything anymore.

Thanks for the explanation!

Regards,
Tommaso

> 
> > Thanks in advance,
> > Tommaso
> > 
> 
> Yunfei, since this is required to get "basic" functionality, this commit needs
> a Fixes tag: can you please add the right one?
> 
> Thanks!
> Angelo
> 
>
diff mbox series

Patch

diff --git a/drivers/media/platform/mediatek/vcodec/mtk_vcodec_dec.c b/drivers/media/platform/mediatek/vcodec/mtk_vcodec_dec.c
index 641f533c417f..4f5e9c20214f 100644
--- a/drivers/media/platform/mediatek/vcodec/mtk_vcodec_dec.c
+++ b/drivers/media/platform/mediatek/vcodec/mtk_vcodec_dec.c
@@ -41,7 +41,7 @@  static bool mtk_vdec_get_cap_fmt(struct mtk_vcodec_ctx *ctx, int format_index)
 	const struct mtk_video_fmt *fmt;
 	struct mtk_q_data *q_data;
 	int num_frame_count = 0, i;
-	bool ret = true;
+	bool ret = false;
 
 	for (i = 0; i < *dec_pdata->num_formats; i++) {
 		if (dec_pdata->vdec_formats[i].type != MTK_FMT_FRAME)
@@ -63,7 +63,7 @@  static bool mtk_vdec_get_cap_fmt(struct mtk_vcodec_ctx *ctx, int format_index)
 	case V4L2_PIX_FMT_H264_SLICE:
 	case V4L2_PIX_FMT_VP9_FRAME:
 		if (fmt->fourcc == V4L2_PIX_FMT_MM21)
-			ret = false;
+			ret = true;
 		break;
 	default:
 		ret = true;