{"id":15471,"url":"https://patchwork.libcamera.org/api/1.1/patches/15471/?format=json","web_url":"https://patchwork.libcamera.org/patch/15471/","project":{"id":1,"url":"https://patchwork.libcamera.org/api/1.1/projects/1/?format=json","name":"libcamera","link_name":"libcamera","list_id":"libcamera_core","list_email":"libcamera-devel@lists.libcamera.org","web_url":"","scm_url":"","webscm_url":""},"msgid":"<20220317140827.1835029-2-naush@raspberrypi.com>","date":"2022-03-17T14:08:22","name":"[libcamera-devel,v2,1/6] pipeline: raspberrypi: Avoid over-allocation for ISP Output 1","commit_ref":null,"pull_url":null,"state":"superseded","archived":false,"hash":"53af004f828588596acebb54539b9c11ac8383f7","submitter":{"id":34,"url":"https://patchwork.libcamera.org/api/1.1/people/34/?format=json","name":"Naushir Patuck","email":"naush@raspberrypi.com"},"delegate":null,"mbox":"https://patchwork.libcamera.org/patch/15471/mbox/","series":[{"id":2972,"url":"https://patchwork.libcamera.org/api/1.1/series/2972/?format=json","web_url":"https://patchwork.libcamera.org/project/libcamera/list/?series=2972","date":"2022-03-17T14:08:21","name":"Raspberry Pi: Efficient start/stop/start sequences","version":2,"mbox":"https://patchwork.libcamera.org/series/2972/mbox/"}],"comments":"https://patchwork.libcamera.org/api/patches/15471/comments/","check":"pending","checks":"https://patchwork.libcamera.org/api/patches/15471/checks/","tags":{},"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\r\n\t[92.243.16.209])\r\n\tby patchwork.libcamera.org (Postfix) with ESMTPS id 82094BD80A\r\n\tfor <parsemail@patchwork.libcamera.org>;\r\n\tThu, 17 Mar 2022 14:08:36 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\r\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id E8ABD604E8;\r\n\tThu, 17 Mar 2022 15:08:35 +0100 (CET)","from mail-wm1-x32f.google.com (mail-wm1-x32f.google.com\r\n\t[IPv6:2a00:1450:4864:20::32f])\r\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 938EE604DC\r\n\tfor <libcamera-devel@lists.libcamera.org>;\r\n\tThu, 17 Mar 2022 15:08:33 +0100 (CET)","by mail-wm1-x32f.google.com with SMTP id r64so3165561wmr.4\r\n\tfor <libcamera-devel@lists.libcamera.org>;\r\n\tThu, 17 Mar 2022 07:08:33 -0700 (PDT)","from naush-laptop.pitowers.org\r\n\t([2a00:1098:3142:14:371b:8e01:111f:5322])\r\n\tby smtp.gmail.com with ESMTPSA id\r\n\tz5-20020a05600c0a0500b0037fa93193a8sm5287831wmp.44.2022.03.17.07.08.32\r\n\t(version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\r\n\tThu, 17 Mar 2022 07:08:32 -0700 (PDT)"],"DKIM-Signature":["v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org;\r\n\ts=mail; t=1647526115;\r\n\tbh=i63d6hUH3isSXt4iyQ9OeO4uzCK+/jYWFH31E+5m1HE=;\r\n\th=To:Date:In-Reply-To:References:Subject:List-Id:List-Unsubscribe:\r\n\tList-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:\r\n\tFrom;\r\n\tb=xfo2hs5AARCwW7OvdK8jp+NMsB5iZdAt62tTwah/cjO1odqAyPVXip5UauhkvrvzN\r\n\t/Wd1lBc262wle+S5X2nxX5NEiNUv5lGkX8EIukAJe6XQr0F6DJlx0G9EoE3QiW9oJM\r\n\tsnIsL9+u4Fsch8+9P1iPHTaHeQymL1x+5hX0UwBuyawsSzfv5UHt1fIT5yGRB80p1O\r\n\t6SMSfytYzdJPnVzi6kiG0F/MAM6j0YIT9jWHY3VUQ7Rfq/h6pz0D2cWqVuSz56Y3vl\r\n\tN4RJT8w8Egq6caIMAE7mDBfVFgLe/z85qHIY56ry5JQifUUmc+Adrgpigti7bKvyGC\r\n\tySJBWWM+9VVeQ==","v=1; a=rsa-sha256; c=relaxed/relaxed;\r\n\td=raspberrypi.com; s=google;\r\n\th=from:to:cc:subject:date:message-id:in-reply-to:references\r\n\t:mime-version:content-transfer-encoding;\r\n\tbh=jcfkXUDyQsMHFwrfe/cenXQcfke3b/k+swts4GnZTjQ=;\r\n\tb=NWUNfTVxgZJmjEXWloMya5Yv40/Y/JOsaukTnshQO7iynv/lmYh9pq+6RLaPV4cjS+\r\n\tLTwjvEqGtI0VGJNmWV+drvsMzGlGjXPnp5VF++P7zvKq72+6JMZIckKE8lxHJuqy+23h\r\n\tw/pJhCT7YrKBIZW2GPUoo6UT/gdoRz1zz9cX2m+wXeyNjbSq4nOXKLeEt7hXPtdfhxcq\r\n\tK5AnQRQpFxuHFY5zBdn/YZfPEwFDzCDO6MNXoAGWfFc9FGSepMTUf/IXu4s6L6S5qWe2\r\n\tM9yDJ60mCsuGJMW3DuThXI1DPCytiD/zTu1gab8S9aqeyN9VV8PFQMoHS1p2O4OKxdGX\r\n\tR8VQ=="],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (2048-bit key; \r\n\tunprotected) header.d=raspberrypi.com\r\n\theader.i=@raspberrypi.com\r\n\theader.b=\"NWUNfTVx\"; dkim-atps=neutral","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\r\n\td=1e100.net; s=20210112;\r\n\th=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to\r\n\t:references:mime-version:content-transfer-encoding;\r\n\tbh=jcfkXUDyQsMHFwrfe/cenXQcfke3b/k+swts4GnZTjQ=;\r\n\tb=4Hk3e9mN79FDf8UjpbjSdwV77jxllrNsN3e0w6aGDQl8TaTviDHNaUPgxVvIc+62Rw\r\n\tMQNfwoLpRc2uC9zfYkFg49/CmTaLYZj8bQd3Hb2fRLrkWfNqbNKc2Ez7jpCXhHxhwq/p\r\n\t6e6jfDmG07f448iVUPJuilu87JIrWahguA1CMXxan9wepVsVpyD5zTaCYsV6+Yq5gDao\r\n\tDOLl7P5GHoDQIZK6iR7/LUaGfGUMV3Brlu/uSJ7zyjOZR/l1ZdCKpL49YMZpQb8HlN2s\r\n\tq6eTJjn2/yTIjrTUHTK56tIBUtnjpvDpMVIC/nzubou2yKdie3dF9YR/M7Mxmbii5jms\r\n\t027A==","X-Gm-Message-State":"AOAM531cioRVzPjSzOWmcOouTlKd9LYTn+gb/PE7TgGfMEfPgxmVBPOl\r\n\tEuEsiu2KKShu0BoiA1LZjrZG9KkjVeXGOQ==","X-Google-Smtp-Source":"ABdhPJzo0d4YjHnbQTnEyD4Xz7uoVXGOoRUc5gmVOmkYrkOgv51WXcroRfFZD9mI/79va4IxkM+CFg==","X-Received":"by 2002:a7b:c24d:0:b0:38c:68a4:eb4b with SMTP id\r\n\tb13-20020a7bc24d000000b0038c68a4eb4bmr8487972wmj.108.1647526113076; \r\n\tThu, 17 Mar 2022 07:08:33 -0700 (PDT)","To":"libcamera-devel@lists.libcamera.org","Date":"Thu, 17 Mar 2022 14:08:22 +0000","Message-Id":"<20220317140827.1835029-2-naush@raspberrypi.com>","X-Mailer":"git-send-email 2.25.1","In-Reply-To":"<20220317140827.1835029-1-naush@raspberrypi.com>","References":"<20220317140827.1835029-1-naush@raspberrypi.com>","MIME-Version":"1.0","Content-Transfer-Encoding":"8bit","Subject":"[libcamera-devel] [PATCH v2 1/6] pipeline: raspberrypi: Avoid\r\n\tover-allocation for ISP Output 1","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>,\r\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>,\r\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=subscribe>","From":"Naushir Patuck via libcamera-devel\r\n\t<libcamera-devel@lists.libcamera.org>","Reply-To":"Naushir Patuck <naush@raspberrypi.com>","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"},"content":"The V4L2DeviceFormat structure for the ISP Output 1 node was a copy of what is\nused ISP Output 0 node, but with the size changed. However, the plane size and\nstride values were not updated. So there is a possibility that the buffer might\nbe over-sized for the requested resolution.\n\nFix this by only copying the relevant fields from the ISP Output 0\nV4L2DeviceFormat structure, and let the device driver size the planes as needed.\n\nSigned-off-by: Naushir Patuck <naush@raspberrypi.com>\nReviewed-by: David Plowman <david.plowman@raspberrypi.com>\nTested-by: David Plowman <david.plowman@raspberrypi.com>\nReviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n---\n src/libcamera/pipeline/raspberrypi/raspberrypi.cpp | 4 +++-\n 1 file changed, 3 insertions(+), 1 deletion(-)","diff":"diff --git a/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp b/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp\r\nindex c2230199fed7..43e87a406036 100644\r\n--- a/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp\r\n+++ b/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp\r\n@@ -845,11 +845,13 @@ int PipelineHandlerRPi::configure(Camera *camera, CameraConfiguration *config)\r\n \t * colour denoise will not run.\r\n \t */\r\n \tif (!output1Set) {\r\n-\t\tV4L2DeviceFormat output1Format = format;\r\n+\t\tV4L2DeviceFormat output1Format;\r\n \t\tconstexpr Size maxDimensions(1200, 1200);\r\n \t\tconst Size limit = maxDimensions.boundedToAspectRatio(format.size);\r\n \r\n \t\toutput1Format.size = (format.size / 2).boundedTo(limit).alignedDownTo(2, 2);\r\n+\t\toutput1Format.colorSpace = format.colorSpace;\r\n+\t\toutput1Format.fourcc = V4L2PixelFormat::fromPixelFormat(formats::YUV420);\r\n \r\n \t\tLOG(RPI, Debug) << \"Setting ISP Output1 (internal) to \"\r\n \t\t\t\t<< output1Format.toString();","prefixes":["libcamera-devel","v2","1/6"]}