On Tue, 29 Oct 2019 01:24:50 +0000 Jonas Karlman <jonas@xxxxxxxxx> wrote: > A decoded 8-bit 4:2:0 frame need memory for up to 448 bytes per > macroblock with additional 32 bytes on multi-core variants. > > Memory layout is as follow: > > +---------------------------+ > | Y-plane 256 bytes x MBs | > +---------------------------+ > | UV-plane 128 bytes x MBs | > +---------------------------+ > | MV buffer 64 bytes x MBs | > +---------------------------+ > | MC sync 32 bytes | > +---------------------------+ As for patch 4, can we point this diagram as a comment in the code too? > > Reduce the extra space allocated now that motion vector buffer offset no > longer is based on the extra space. > > Only allocate extra space for 64 bytes x MBs of motion vector buffer > and 32 bytes for multi-core sync. > > Fixes: a9471e25629b ("media: hantro: Add core bits to support H264 decoding") > Signed-off-by: Jonas Karlman <jonas@xxxxxxxxx> Reviewed-by: Boris Brezillon <boris.brezillon@xxxxxxxxxxxxx> > --- > Changes in v2: > - updated commit message > --- > drivers/staging/media/hantro/hantro_v4l2.c | 6 +++--- > 1 file changed, 3 insertions(+), 3 deletions(-) > > diff --git a/drivers/staging/media/hantro/hantro_v4l2.c b/drivers/staging/media/hantro/hantro_v4l2.c > index 3dae52abb96c..b3a4368b37de 100644 > --- a/drivers/staging/media/hantro/hantro_v4l2.c > +++ b/drivers/staging/media/hantro/hantro_v4l2.c > @@ -242,12 +242,12 @@ static int vidioc_try_fmt(struct file *file, void *priv, struct v4l2_format *f, > /* > * The H264 decoder needs extra space on the output buffers > * to store motion vectors. This is needed for reference > - * frames. > + * frames. 32 extra bytes is used for multi-core sync. > */ > if (ctx->vpu_src_fmt->fourcc == V4L2_PIX_FMT_H264_SLICE) > pix_mp->plane_fmt[0].sizeimage += > - 128 * DIV_ROUND_UP(pix_mp->width, 16) * > - DIV_ROUND_UP(pix_mp->height, 16); > + 64 * MB_WIDTH(pix_mp->width) * > + MB_WIDTH(pix_mp->height) + 32; > } else if (!pix_mp->plane_fmt[0].sizeimage) { > /* > * For coded formats the application can specify