[{"id":23009,"web_url":"https://patchwork.libcamera.org/comment/23009/","msgid":"<165280642270.2416244.4536211904308863225@Monstersaurus>","date":"2022-05-17T16:53:42","subject":"Re: [libcamera-devel] [PATCH v2 08/13] py: cam_kms: support\n\tmultiplanar formats","submitter":{"id":4,"url":"https://patchwork.libcamera.org/api/people/4/","name":"Kieran Bingham","email":"kieran.bingham@ideasonboard.com"},"content":"Quoting Tomi Valkeinen (2022-05-17 15:33:20)\n> Support multiplanar formats in the kms renderer. Tested with RPi and\n> NV12.\n> \n> Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ideasonboard.com>\n> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n\n\nReviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>\n\n> ---\n>  src/py/cam/cam_kms.py | 13 ++++++++++---\n>  1 file changed, 10 insertions(+), 3 deletions(-)\n> \n> diff --git a/src/py/cam/cam_kms.py b/src/py/cam/cam_kms.py\n> index ae6be277..f1844717 100644\n> --- a/src/py/cam/cam_kms.py\n> +++ b/src/py/cam/cam_kms.py\n> @@ -10,6 +10,7 @@ FMT_MAP = {\n>      'YUYV': pykms.PixelFormat.YUYV,\n>      'ARGB8888': pykms.PixelFormat.ARGB8888,\n>      'XRGB8888': pykms.PixelFormat.XRGB8888,\n> +    'NV12': pykms.PixelFormat.NV12,\n>  }\n>  \n>  \n> @@ -133,10 +134,16 @@ class KMSRenderer:\n>  \n>                  for fb in ctx['allocator'].buffers(stream):\n>                      w, h = cfg.size\n> -                    stride = cfg.stride\n> -                    fd = fb.fd(0)\n> +                    fds = []\n> +                    strides = []\n> +                    offsets = []\n> +                    for i in range(fb.num_planes):\n> +                        fds.append(fb.fd(i))\n> +                        strides.append(cfg.stride)\n> +                        offsets.append(fb.offset(i))\n> +\n>                      drmfb = pykms.DmabufFramebuffer(self.card, w, h, fmt,\n> -                                                    [fd], [stride], [0])\n> +                                                    fds, strides, offsets)\n>                      self.cam_2_drm[fb] = drmfb\n>  \n>                  idx += 1\n> -- \n> 2.34.1\n>","headers":{"Return-Path":"<libcamera-devel-bounces@lists.libcamera.org>","X-Original-To":"parsemail@patchwork.libcamera.org","Delivered-To":"parsemail@patchwork.libcamera.org","Received":["from lancelot.ideasonboard.com (lancelot.ideasonboard.com\n\t[92.243.16.209])\n\tby patchwork.libcamera.org (Postfix) with ESMTPS id 477F7C3256\n\tfor <parsemail@patchwork.libcamera.org>;\n\tTue, 17 May 2022 16:53:47 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id F193765656;\n\tTue, 17 May 2022 18:53:46 +0200 (CEST)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[IPv6:2001:4b98:dc2:55:216:3eff:fef7:d647])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id AEE866041D\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue, 17 May 2022 18:53:45 +0200 (CEST)","from pendragon.ideasonboard.com\n\t(cpc89244-aztw30-2-0-cust3082.18-1.cable.virginm.net [86.31.172.11])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 689A64A8;\n\tTue, 17 May 2022 18:53:45 +0200 (CEST)"],"DKIM-Signature":["v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org;\n\ts=mail; t=1652806427;\n\tbh=ERvwCAG/3Uh9YyAZMww3gD+btz1Nmx/gxzBNUGtJ/9A=;\n\th=In-Reply-To:References:To:Date:Subject:List-Id:List-Unsubscribe:\n\tList-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:\n\tFrom;\n\tb=IsU8lPcrSNZ51lNHVEcmH7or9xweyRE+8bkJ13DeeXHFCRo7vUCj0LmhBzD56JwYK\n\tCAamc8zVAgg2joSXNFAFrpncftbTClrCjs8rFdreDmnkNCf3WoTzOajbZiGzhCD4Y+\n\tyW0eUKLAGIkIsVwEPPo0Qn2D7EMTr10Y9X6OmoXTbIqtL02+RwDRK0qAH41k5fqxlX\n\t2WGj2OoC3k95NYfL+mniEEOd7FbTjh7EjvV09YgtFHEIsKGLeSjm6zk1IGNT5GXhRO\n\t6/la2jq7kfuId846auCE/KBpqNoMB1hrY8rzIZpsReGmkf+CtfZeul7i4KgN3Ang6g\n\tD8Rkrl+We9uXQ==","v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1652806425;\n\tbh=ERvwCAG/3Uh9YyAZMww3gD+btz1Nmx/gxzBNUGtJ/9A=;\n\th=In-Reply-To:References:Subject:From:Cc:To:Date:From;\n\tb=ghfhQ7OAAz+3BcVpQcvnfNJ+KUFRMrPHzQlahdNadZ+0sY9zodFE2IvS1QptYQHIp\n\ttE/1FkQx4Z9FNj7/d6Jj56RK9Pvp8PikZg+hdm55qowwcwslbfy8kK5Nk5r6Dl4uXO\n\t21A7+gsvVdbrUmF2wSxONC2BGBkXT/4KXqKZ3ApQ="],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key; \n\tunprotected) header.d=ideasonboard.com\n\theader.i=@ideasonboard.com\n\theader.b=\"ghfhQ7OA\"; dkim-atps=neutral","Content-Type":"text/plain; charset=\"utf-8\"","MIME-Version":"1.0","Content-Transfer-Encoding":"quoted-printable","In-Reply-To":"<20220517143325.71784-9-tomi.valkeinen@ideasonboard.com>","References":"<20220517143325.71784-1-tomi.valkeinen@ideasonboard.com>\n\t<20220517143325.71784-9-tomi.valkeinen@ideasonboard.com>","To":"David Plowman <david.plowman@raspberrypi.com>,\n\tJacopo Mondi <jacopo@jmondi.org>,\n\tLaurent Pinchart <laurent.pinchart@ideasonboard.com>,\n\tTomi Valkeinen <tomi.valkeinen@ideasonboard.com>,\n\tlibcamera-devel@lists.libcamera.org","Date":"Tue, 17 May 2022 17:53:42 +0100","Message-ID":"<165280642270.2416244.4536211904308863225@Monstersaurus>","User-Agent":"alot/0.10","Subject":"Re: [libcamera-devel] [PATCH v2 08/13] py: cam_kms: support\n\tmultiplanar formats","X-BeenThere":"libcamera-devel@lists.libcamera.org","X-Mailman-Version":"2.1.29","Precedence":"list","List-Id":"<libcamera-devel.lists.libcamera.org>","List-Unsubscribe":"<https://lists.libcamera.org/options/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=unsubscribe>","List-Archive":"<https://lists.libcamera.org/pipermail/libcamera-devel/>","List-Post":"<mailto:libcamera-devel@lists.libcamera.org>","List-Help":"<mailto:libcamera-devel-request@lists.libcamera.org?subject=help>","List-Subscribe":"<https://lists.libcamera.org/listinfo/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=subscribe>","From":"Kieran Bingham via libcamera-devel\n\t<libcamera-devel@lists.libcamera.org>","Reply-To":"Kieran Bingham <kieran.bingham@ideasonboard.com>","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}}]