Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 697a6d23 authored by Katsuya Matsubara's avatar Katsuya Matsubara Committed by Mauro Carvalho Chehab
Browse files

[media] sh_veu: fix the buffer size calculation



The 'bytesperline' value only indicates the stride of the Y plane
if the color format is planar, such as NV12. When calculating
the total plane size, the size of CbCr plane must also be considered.

Signed-off-by: default avatarKatsuya Matsubara <matsu@igel.co.jp>
Signed-off-by: default avatarGuennadi Liakhovetski <g.liakhovetski@gmx.de>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@redhat.com>
parent 6abb3cf2
Loading
Loading
Loading
Loading
+3 −3
Original line number Diff line number Diff line
@@ -905,11 +905,11 @@ static int sh_veu_queue_setup(struct vb2_queue *vq,
		if (ftmp.fmt.pix.width != pix->width ||
		    ftmp.fmt.pix.height != pix->height)
			return -EINVAL;
		size = pix->bytesperline ? pix->bytesperline * pix->height :
			pix->width * pix->height * fmt->depth >> 3;
		size = pix->bytesperline ? pix->bytesperline * pix->height * fmt->depth / fmt->ydepth :
			pix->width * pix->height * fmt->depth / fmt->ydepth;
	} else {
		vfmt = sh_veu_get_vfmt(veu, vq->type);
		size = vfmt->bytesperline * vfmt->frame.height;
		size = vfmt->bytesperline * vfmt->frame.height * vfmt->fmt->depth / vfmt->fmt->ydepth;
	}

	if (count < 2)