2023-02-09 07:40:55

by Yunfei Dong (董云飞)

[permalink] [raw]
Subject: [PATCH] media: mediatek: vcodec: Force capture queue format to MM21

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 <[email protected]>
---
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



2023-02-09 08:57:31

by Tommaso Merciai

[permalink] [raw]
Subject: Re: [PATCH] media: mediatek: vcodec: Force capture queue format to MM21

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 <[email protected]>
> ---
> 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
>

Subject: Re: [PATCH] media: mediatek: vcodec: Force capture queue format to MM21

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



2023-02-10 05:57:06

by Yunfei Dong (董云飞)

[permalink] [raw]
Subject: Re: [PATCH] media: mediatek: vcodec: Force capture queue format to MM21

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
>
>

2023-02-10 07:27:24

by Tommaso Merciai

[permalink] [raw]
Subject: Re: [PATCH] media: mediatek: vcodec: Force capture queue format to MM21

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
>
>