Re: [git:media_tree/master] media: mtk-vcodec: Remove extra area allocation in an input buffer on encoding

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Hans,

On Tue, Dec 17, 2019 at 3:46 PM Tomasz Figa <tfiga@xxxxxxxxxxxx> wrote:
>
> +Alexandre Courbot
>
> On Sun, Nov 10, 2019 at 10:36 PM Hans Verkuil <hverkuil-cisco@xxxxxxxxx> wrote:
> >
> > On 11/10/19 2:13 PM, Tomasz Figa wrote:
> > > Hi Mauro and Hans,
> > >
> > > On Sun, Nov 10, 2019 at 3:42 PM Mauro Carvalho Chehab
> > > <mchehab@xxxxxxxxxx> wrote:
> > >>
> > >> This is an automatic generated email to let you know that the following patch were queued:
> > >>
> > >> Subject: media: mtk-vcodec: Remove extra area allocation in an input buffer on encoding
> > >> Author:  Hirokazu Honda <hiroh@xxxxxxxxxxxx>
> > >> Date:    Sun Nov 10 07:25:34 2019 +0100
> > >
> > > I asked for some more testing on different platforms in my review
> > > reply and we got some offline signals that it might not work on some
> > > platforms, due to some hardware prefetch. (Would be better if that was
> > > reported to the mailing list instead.) We're trying to figure out the
> > > exact requirements here, because half of the frame doesn't sound like
> > > something reasonable. Let's hold off the patch for the time being.
> >
> > I'll repost my last pull request, including a revert of this patch.
> >
> > The state of this patch in patchwork is changed back to New.
> >
> > I'll wait for your feedback on what to do with this patch.

Let's drop this patch indeed. Apparently some implementations of this
hardware do read-ahead up to 32 lines, so the extra space is needed.

Best regards,
Tomasz

> >
> > Regards,
> >
> >         Hans
> >
> > >
> > > Best regards,
> > > Tomasz
> > >
> > >>
> > >> MediaTek encoder allocates non pixel data area for an input buffer every
> > >> plane. As the input buffer should be read-only, the driver should not write
> > >> anything in the buffer. Therefore, the extra data should be unnecessary.
> > >>
> > >> Signed-off-by: Hirokazu Honda <hiroh@xxxxxxxxxxxx>
> > >> Reviewed-by: Tomasz Figa <tfiga@xxxxxxxxxxxx>
> > >> Signed-off-by: Hans Verkuil <hverkuil-cisco@xxxxxxxxx>
> > >> Signed-off-by: Mauro Carvalho Chehab <mchehab@xxxxxxxxxx>
> > >>
> > >>  drivers/media/platform/mtk-vcodec/mtk_vcodec_enc.c | 9 +++------
> > >>  1 file changed, 3 insertions(+), 6 deletions(-)
> > >>
> > >> ---
> > >>
> > >> diff --git a/drivers/media/platform/mtk-vcodec/mtk_vcodec_enc.c b/drivers/media/platform/mtk-vcodec/mtk_vcodec_enc.c
> > >> index fd8de027e83e..6aad53d97d74 100644
> > >> --- a/drivers/media/platform/mtk-vcodec/mtk_vcodec_enc.c
> > >> +++ b/drivers/media/platform/mtk-vcodec/mtk_vcodec_enc.c
> > >> @@ -332,14 +332,12 @@ static int vidioc_try_fmt(struct v4l2_format *f,
> > >>
> > >>                 pix_fmt_mp->num_planes = fmt->num_planes;
> > >>                 pix_fmt_mp->plane_fmt[0].sizeimage =
> > >> -                               pix_fmt_mp->width * pix_fmt_mp->height +
> > >> -                               ((ALIGN(pix_fmt_mp->width, 16) * 2) * 16);
> > >> +                       pix_fmt_mp->width * pix_fmt_mp->height;
> > >>                 pix_fmt_mp->plane_fmt[0].bytesperline = pix_fmt_mp->width;
> > >>
> > >>                 if (pix_fmt_mp->num_planes == 2) {
> > >>                         pix_fmt_mp->plane_fmt[1].sizeimage =
> > >> -                               (pix_fmt_mp->width * pix_fmt_mp->height) / 2 +
> > >> -                               (ALIGN(pix_fmt_mp->width, 16) * 16);
> > >> +                               (pix_fmt_mp->width * pix_fmt_mp->height) / 2;
> > >>                         pix_fmt_mp->plane_fmt[2].sizeimage = 0;
> > >>                         pix_fmt_mp->plane_fmt[1].bytesperline =
> > >>                                                         pix_fmt_mp->width;
> > >> @@ -347,8 +345,7 @@ static int vidioc_try_fmt(struct v4l2_format *f,
> > >>                 } else if (pix_fmt_mp->num_planes == 3) {
> > >>                         pix_fmt_mp->plane_fmt[1].sizeimage =
> > >>                         pix_fmt_mp->plane_fmt[2].sizeimage =
> > >> -                               (pix_fmt_mp->width * pix_fmt_mp->height) / 4 +
> > >> -                               ((ALIGN(pix_fmt_mp->width, 16) / 2) * 16);
> > >> +                               (pix_fmt_mp->width * pix_fmt_mp->height) / 4;
> > >>                         pix_fmt_mp->plane_fmt[1].bytesperline =
> > >>                                 pix_fmt_mp->plane_fmt[2].bytesperline =
> > >>                                 pix_fmt_mp->width / 2;
> >



[Index of Archives]     [Linux Input]     [Video for Linux]     [Gstreamer Embedded]     [Mplayer Users]     [Linux USB Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]

  Powered by Linux