[{"id":28296,"web_url":"https://patchwork.libcamera.org/comment/28296/","msgid":"<CAEmqJPocZcsvEn5t_xddLFg2R8RGmAXb66_=L46CuT8uye3tgA@mail.gmail.com>","date":"2023-12-12T09:54:10","subject":"Re: [libcamera-devel] [PATCH] pipeline: rpi: Respect provided stride","submitter":{"id":34,"url":"https://patchwork.libcamera.org/api/people/34/","name":"Naushir Patuck","email":"naush@raspberrypi.com"},"content":"Hi William,\n\nThank you for this fix.\n\nOn Mon, 11 Dec 2023 at 17:14, William Vinnicombe via libcamera-devel\n<libcamera-devel@lists.libcamera.org> wrote:\n>\n> When converting from StreamConfiguration to V4L2DeviceFormat, the stride\n> was being dropped.\n>\n> Set the stride in the V4L2DeviceFormat to prevent this happening.\n>\n> Signed-off-by: William Vinnicombe <william.vinnicombe@raspberrypi.com>\n\nReviewed-by: Naushir Patuck <naush@raspberrypi.com>\n\n> ---\n>  src/libcamera/pipeline/rpi/common/pipeline_base.cpp | 1 +\n>  1 file changed, 1 insertion(+)\n>\n> diff --git a/src/libcamera/pipeline/rpi/common/pipeline_base.cpp b/src/libcamera/pipeline/rpi/common/pipeline_base.cpp\n> index 9f788c9d..5afa8dbb 100644\n> --- a/src/libcamera/pipeline/rpi/common/pipeline_base.cpp\n> +++ b/src/libcamera/pipeline/rpi/common/pipeline_base.cpp\n> @@ -367,6 +367,7 @@ V4L2DeviceFormat PipelineHandlerBase::toV4L2DeviceFormat(const V4L2VideoDevice *\n>         deviceFormat.planesCount = info.numPlanes();\n>         deviceFormat.fourcc = dev->toV4L2PixelFormat(stream->pixelFormat);\n>         deviceFormat.size = stream->size;\n> +       deviceFormat.planes[0].bpl = stream->stride;\n>         deviceFormat.colorSpace = stream->colorSpace;\n>\n>         return deviceFormat;\n> --\n> 2.39.2\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 9C240BD87C\n\tfor <parsemail@patchwork.libcamera.org>;\n\tTue, 12 Dec 2023 09:54:49 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id AE90F62B32;\n\tTue, 12 Dec 2023 10:54:48 +0100 (CET)","from mail-yw1-x1135.google.com (mail-yw1-x1135.google.com\n\t[IPv6:2607:f8b0:4864:20::1135])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id E22DE61D97\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue, 12 Dec 2023 10:54:46 +0100 (CET)","by mail-yw1-x1135.google.com with SMTP id\n\t00721157ae682-5d33574f64eso55151617b3.3\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue, 12 Dec 2023 01:54:46 -0800 (PST)"],"DKIM-Signature":["v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org;\n\ts=mail; t=1702374888;\n\tbh=NyB4uC9z8S/eGoQFubP6+CeGt6VhC9jVbSO6ZxIc+zg=;\n\th=References:In-Reply-To:Date:To:Subject:List-Id:List-Unsubscribe:\n\tList-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:Cc:\n\tFrom;\n\tb=qA0BupFE6ZzJjJlyHBR1blV81ZJnYBgBQ9e2On/i94jsfsQGmFlOzaJdCAhYzLJna\n\t4SQNWMolWQKJzzYWvJ4qTykUX4gQRCX/d891MiUcas8MUE4vcmDs6zdbJJoaBPWud+\n\t7rvgx5Fsa1i5AfolImiHVGl7uLpwJWutgYZG30JLqQ7bludChxDMeh/46TNoSQawBM\n\tPX6/+EXEfaOMdzf/LAVzApN+jkdDkZ1kzBdculvo6xAmYETv9gwEvU7ItpumJ1Q6hR\n\tqhQ37QU5OKA3ifU/XxWv8C5FphmlpDUc/Am69jZccA2m6B98U0tgKYc6/ydoqURuj1\n\tcDcF2xtl6S0/A==","v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=raspberrypi.com; s=google; t=1702374885; x=1702979685;\n\tdarn=lists.libcamera.org; \n\th=cc:to:subject:message-id:date:from:in-reply-to:references\n\t:mime-version:from:to:cc:subject:date:message-id:reply-to;\n\tbh=doSdLTLbE3KizsxMM/av5519f/T7D2K/BdsAEmbukrQ=;\n\tb=XIB5fqZyVUzdaKh6k3eAjvNO+dkevLz2wZ6Au+KdnnfT/LmBw6mPI36iPZVIe173SA\n\toTiIZwK0PgjgdUngNQe4WzokvPXbmfFdJlcd/645/ErUiNGm8t46jdh7edUJNXzLRJYs\n\tDwW3vugdKkPDqB7elbSl7V/HzvSjD8RUeJGHrZ/2o3cGLYqJUmAq+n7012Rdv7ycRtwz\n\tkhmLQC5o8YspAJjwIGTB4/mnqEwchxGkVVkcjqrw/gDEmKRPLL8sZcino7JYWawQfFsS\n\tW079zK7cQE2YOTfGkAC9opoOiJ3fgvNH8udyV4ut7vbW/sYp/jynmTSEwRiJgib4iUJ3\n\tEN+A=="],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (2048-bit key; \n\tunprotected) header.d=raspberrypi.com\n\theader.i=@raspberrypi.com\n\theader.b=\"XIB5fqZy\"; dkim-atps=neutral","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20230601; t=1702374885; x=1702979685;\n\th=cc:to:subject:message-id:date:from:in-reply-to:references\n\t:mime-version:x-gm-message-state:from:to:cc:subject:date:message-id\n\t:reply-to;\n\tbh=doSdLTLbE3KizsxMM/av5519f/T7D2K/BdsAEmbukrQ=;\n\tb=J+WH5zZEov728MdDjbzgW06THOAkBNCbLbonV075gu9DNBLxk01fIX260VzUuOh9WE\n\t9z4k/ACfdpIh/o0KzZEstC38c93EkQOv0er0gdwPBoRI/dXsVYwtluXWqyAgHipHe55G\n\tWbe/d6LLqA1RWuMKd3ZSJ8AgyWHlcIE6oEf/IUka/Yq+Sdf5iTysI9lFwAw9/pNLSc9N\n\tIHYEexn0wOMpShTqdt9VBnIuCcvUwDl6RCufE/GUNs4xzsJLSPRCHliWk78X9r2Je0oN\n\tWtDGUXYIFGY/K/GbubIpiQ537sT6/b/CK0V2agD6qiGsZoHUjd/WgpJ4d6VNO92AhJoj\n\tlVFw==","X-Gm-Message-State":"AOJu0YzI6IdS5SBCwKFPEe4n2L71Rz06nlKc4z8vqlTSs8kSeaJtKozi\n\tKVXTLYvmTqPNS2Yi2SZazFwqtRy+hxZinmXzsxYsRw==","X-Google-Smtp-Source":"AGHT+IGP+0/hvIM2C/0iqy9bchVbR63dOHTCzvHr9YjopY12MzHElm5ZETRCGx4OjfCMFLpmBGeSf+gBo9N3hKTsMPg=","X-Received":"by 2002:a81:71c1:0:b0:5d7:1940:b37b with SMTP id\n\tm184-20020a8171c1000000b005d71940b37bmr5610850ywc.71.1702374885452;\n\tTue, 12 Dec 2023 01:54:45 -0800 (PST)","MIME-Version":"1.0","References":"<20231211171406.37827-1-william.vinnicombe@raspberrypi.com>","In-Reply-To":"<20231211171406.37827-1-william.vinnicombe@raspberrypi.com>","Date":"Tue, 12 Dec 2023 09:54:10 +0000","Message-ID":"<CAEmqJPocZcsvEn5t_xddLFg2R8RGmAXb66_=L46CuT8uye3tgA@mail.gmail.com>","To":"William Vinnicombe <william.vinnicombe@raspberrypi.com>","Content-Type":"text/plain; charset=\"UTF-8\"","Subject":"Re: [libcamera-devel] [PATCH] pipeline: rpi: Respect provided stride","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":"Naushir Patuck via libcamera-devel\n\t<libcamera-devel@lists.libcamera.org>","Reply-To":"Naushir Patuck <naush@raspberrypi.com>","Cc":"libcamera-devel@lists.libcamera.org","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":28297,"web_url":"https://patchwork.libcamera.org/comment/28297/","msgid":"<CAHW6GYJ=heCbDCVLOCpW6tFXKi6wjzK=aWU3Q5TMwAgLwozTHg@mail.gmail.com>","date":"2023-12-12T09:56:22","subject":"Re: [libcamera-devel] [PATCH] pipeline: rpi: Respect provided stride","submitter":{"id":42,"url":"https://patchwork.libcamera.org/api/people/42/","name":"David Plowman","email":"david.plowman@raspberrypi.com"},"content":"Hi William\n\nThanks for the fix.\n\nOn Mon, 11 Dec 2023 at 17:14, William Vinnicombe via libcamera-devel\n<libcamera-devel@lists.libcamera.org> wrote:\n>\n> When converting from StreamConfiguration to V4L2DeviceFormat, the stride\n> was being dropped.\n\nI might add a \"with the result that users could not request a custom\nstride\" (a bit like playing consequences!) just for the extra\nclarification... but with or without that it looks good to me:\n\nReviewed-by: David Plowman <david.plowman@raspberrypi.com>\n\nThanks!\nDavid\n\n>\n> Set the stride in the V4L2DeviceFormat to prevent this happening.\n>\n> Signed-off-by: William Vinnicombe <william.vinnicombe@raspberrypi.com>\n> ---\n>  src/libcamera/pipeline/rpi/common/pipeline_base.cpp | 1 +\n>  1 file changed, 1 insertion(+)\n>\n> diff --git a/src/libcamera/pipeline/rpi/common/pipeline_base.cpp b/src/libcamera/pipeline/rpi/common/pipeline_base.cpp\n> index 9f788c9d..5afa8dbb 100644\n> --- a/src/libcamera/pipeline/rpi/common/pipeline_base.cpp\n> +++ b/src/libcamera/pipeline/rpi/common/pipeline_base.cpp\n> @@ -367,6 +367,7 @@ V4L2DeviceFormat PipelineHandlerBase::toV4L2DeviceFormat(const V4L2VideoDevice *\n>         deviceFormat.planesCount = info.numPlanes();\n>         deviceFormat.fourcc = dev->toV4L2PixelFormat(stream->pixelFormat);\n>         deviceFormat.size = stream->size;\n> +       deviceFormat.planes[0].bpl = stream->stride;\n>         deviceFormat.colorSpace = stream->colorSpace;\n>\n>         return deviceFormat;\n> --\n> 2.39.2\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 D4BD4BD87C\n\tfor <parsemail@patchwork.libcamera.org>;\n\tTue, 12 Dec 2023 09:56:37 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 5963F62B2E;\n\tTue, 12 Dec 2023 10:56:37 +0100 (CET)","from mail-ot1-x32b.google.com (mail-ot1-x32b.google.com\n\t[IPv6:2607:f8b0:4864:20::32b])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 2470761D97\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue, 12 Dec 2023 10:56:35 +0100 (CET)","by mail-ot1-x32b.google.com with SMTP id\n\t46e09a7af769-6d9daa5207eso3595437a34.0\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue, 12 Dec 2023 01:56:35 -0800 (PST)"],"DKIM-Signature":["v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org;\n\ts=mail; t=1702374997;\n\tbh=GRQ4bEy25Ui10usMnLx9FSXbQLkBS+XO9SPEMqtU9uY=;\n\th=References:In-Reply-To:Date:To:Subject:List-Id:List-Unsubscribe:\n\tList-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:Cc:\n\tFrom;\n\tb=P9bFEFh8pKm8/Wq5aGxyDGj3C6ns3V29WJe8qQa3HSOx8BOvke4GIYB/5P5F2mWKk\n\toc360xAfVaiNubgjwkj1MZg1Z6MX2R3SRWAfRyNFp8pZTsgrAIaOfrIOewQJIbpKZh\n\tMo+5DIpGE5rA/M1+3nhiEQEZSqDuXeOCToJnvvFlTMFKrXUz00a9Ceg/l6E2AR6FUk\n\tEVsOMTj24hvNWfDHXtmuq/EoTbJ+VVy+c5h/wQWOjA5hksgdaquATw+RdiiIkvQ5aZ\n\t/RHgaJbcR3jsHOHNviWUiEuhxGCcuUzW3HKKLd9Liw5o6279QYn3TzoPAOz8zPT7Jo\n\tnQ9U+MM8NeSDQ==","v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=raspberrypi.com; s=google; t=1702374993; x=1702979793;\n\tdarn=lists.libcamera.org; \n\th=cc:to:subject:message-id:date:from:in-reply-to:references\n\t:mime-version:from:to:cc:subject:date:message-id:reply-to;\n\tbh=ui8hd6ENtUL6Ygr+3MFRW3flQ7FMIZKNo1ihuTp3kag=;\n\tb=ny3N7a+C3zniquqtZ2gIAV02TQ1LLTTzy4sqw4JQk46Yibe5uLSk+MuU6UDtFpIi6H\n\t1BDO+OEoo8A+cd/6Rlailvty93W+BBQma1yUV0T+zYuaoeXu1a6c+YBvWW2rmzt377o5\n\tmWxiUu0kNF7LPytZtmJAYESH1AmKF7E5NkedNqjer0HCKmGF6nCLSm8+RZqkzCAOhoSG\n\tOWPB3VA+bQG2no28D2iDzQzUlSBMRMJpvkkDaLbryQa6ZGLH9/eZrWUWUuT6GTP45n7K\n\tA2S5XYFD5nXp0lfUxWimRXNCksMqc9L+/zPdZUbcfwSXoRzzhaS7Ee0fLpfH+2jgSav9\n\tmGCg=="],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (2048-bit key; \n\tunprotected) header.d=raspberrypi.com\n\theader.i=@raspberrypi.com\n\theader.b=\"ny3N7a+C\"; dkim-atps=neutral","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20230601; t=1702374993; x=1702979793;\n\th=cc:to:subject:message-id:date:from:in-reply-to:references\n\t:mime-version:x-gm-message-state:from:to:cc:subject:date:message-id\n\t:reply-to;\n\tbh=ui8hd6ENtUL6Ygr+3MFRW3flQ7FMIZKNo1ihuTp3kag=;\n\tb=vHcE1UW7lU0afNfTVp5vmxd2rGWERS4PGAvyf96sSzmNFQ4AvMZoWw1rTxwQ7TDLw5\n\tPKYhJa6kF7xjUiAOynxGrDr4X8owQxP6WJ/w0xX5WT2y4dEWBNi4JGtcuy0kBarlKKY6\n\tGPwAJM3N/E2Pqq0p6ynW0GocCzChn6ZJi0dyz2b7PGzGL/pz1RVjr8zmGtEUcWyPP5d8\n\tOo8vAzbqdeXSIJd6ywoFb157+GEyV1PNCVHOzOOVprUs59+vo5cA3O1pBc5w1kcX4mbT\n\tDqFRr43yX1huAGmpgq7+Z7/+tOnfiDQb4Y8N5/YaeZZRDx4w2StabmgyiJTU+uH/biQr\n\ttFzw==","X-Gm-Message-State":"AOJu0YynGE+PsixNUaXBHlLj7O/Qotr548V38Z2BF1LsvnMCQTKAHpgJ\n\ti/qxwm+fULUv6rBRl5Ew1doIaAkGSmgb9BP5YX+0mw==","X-Google-Smtp-Source":"AGHT+IFD/Jfoz46h0XQewGG3yZpnhM6rPA2G1XloYfnyl7IIsVDaWga3wFh23SPtoUtvtoHXYLVg2/kpDxAlKNCBITE=","X-Received":"by 2002:a05:6830:cd:b0:6d9:d4c4:6aa with SMTP id\n\tx13-20020a05683000cd00b006d9d4c406aamr6616806oto.28.1702374993706;\n\tTue, 12 Dec 2023 01:56:33 -0800 (PST)","MIME-Version":"1.0","References":"<20231211171406.37827-1-william.vinnicombe@raspberrypi.com>","In-Reply-To":"<20231211171406.37827-1-william.vinnicombe@raspberrypi.com>","Date":"Tue, 12 Dec 2023 09:56:22 +0000","Message-ID":"<CAHW6GYJ=heCbDCVLOCpW6tFXKi6wjzK=aWU3Q5TMwAgLwozTHg@mail.gmail.com>","To":"William Vinnicombe <william.vinnicombe@raspberrypi.com>","Content-Type":"text/plain; charset=\"UTF-8\"","Subject":"Re: [libcamera-devel] [PATCH] pipeline: rpi: Respect provided stride","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":"David Plowman via libcamera-devel <libcamera-devel@lists.libcamera.org>","Reply-To":"David Plowman <david.plowman@raspberrypi.com>","Cc":"libcamera-devel@lists.libcamera.org","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":28298,"web_url":"https://patchwork.libcamera.org/comment/28298/","msgid":"<20231212100840.GN27535@pendragon.ideasonboard.com>","date":"2023-12-12T10:08:40","subject":"Re: [libcamera-devel] [PATCH] pipeline: rpi: Respect provided stride","submitter":{"id":2,"url":"https://patchwork.libcamera.org/api/people/2/","name":"Laurent Pinchart","email":"laurent.pinchart@ideasonboard.com"},"content":"Hello,\n\nOn Tue, Dec 12, 2023 at 09:56:22AM +0000, David Plowman via libcamera-devel wrote:\n> On Mon, 11 Dec 2023 at 17:14, William Vinnicombe via libcamera-devel wrote:\n> >\n> > When converting from StreamConfiguration to V4L2DeviceFormat, the stride\n> > was being dropped.\n> \n> I might add a \"with the result that users could not request a custom\n> stride\" (a bit like playing consequences!) just for the extra\n> clarification... but with or without that it looks good to me:\n\nThat looks like a nice addition, I can update the commit message when\npushing if a v2 is not needed.\n\n> Reviewed-by: David Plowman <david.plowman@raspberrypi.com>\n> \n> > Set the stride in the V4L2DeviceFormat to prevent this happening.\n> >\n> > Signed-off-by: William Vinnicombe <william.vinnicombe@raspberrypi.com>\n> > ---\n> >  src/libcamera/pipeline/rpi/common/pipeline_base.cpp | 1 +\n> >  1 file changed, 1 insertion(+)\n> >\n> > diff --git a/src/libcamera/pipeline/rpi/common/pipeline_base.cpp b/src/libcamera/pipeline/rpi/common/pipeline_base.cpp\n> > index 9f788c9d..5afa8dbb 100644\n> > --- a/src/libcamera/pipeline/rpi/common/pipeline_base.cpp\n> > +++ b/src/libcamera/pipeline/rpi/common/pipeline_base.cpp\n> > @@ -367,6 +367,7 @@ V4L2DeviceFormat PipelineHandlerBase::toV4L2DeviceFormat(const V4L2VideoDevice *\n> >         deviceFormat.planesCount = info.numPlanes();\n> >         deviceFormat.fourcc = dev->toV4L2PixelFormat(stream->pixelFormat);\n> >         deviceFormat.size = stream->size;\n> > +       deviceFormat.planes[0].bpl = stream->stride;\n\nShouldn't the stride be set for all planes ?\n\n> >         deviceFormat.colorSpace = stream->colorSpace;\n> >\n> >         return deviceFormat;","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 C2707C31E9\n\tfor <parsemail@patchwork.libcamera.org>;\n\tTue, 12 Dec 2023 10:08:36 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id B939462B2E;\n\tTue, 12 Dec 2023 11:08:35 +0100 (CET)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 86B9B62B2E\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue, 12 Dec 2023 11:08:34 +0100 (CET)","from pendragon.ideasonboard.com (213-243-189-158.bb.dnainternet.fi\n\t[213.243.189.158])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 98B7A276;\n\tTue, 12 Dec 2023 11:07:49 +0100 (CET)"],"DKIM-Signature":["v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org;\n\ts=mail; t=1702375715;\n\tbh=4q6xKqITM3+YVjL2hBVVoY0toBVZBD/O2jqFTD30Ee4=;\n\th=Date:To:References:In-Reply-To:Subject:List-Id:List-Unsubscribe:\n\tList-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:Cc:\n\tFrom;\n\tb=4JwbX8xNxDieYuhVrSXVVWntOL6qQkGUL8ThWdRTDdbIfM7rC6W0MQJGOou67pvX2\n\tcAeRmUgOTakSQd8nQ29A6Uo8mBy+Y8sOOh97DLq65W5wRorR69nTEKfu68Q2h4S6fJ\n\t9eL21Hlxx8CoG/t+JHLyc5iH2ksIgQxDyrjXBVzaRb6Ez1zpDad3vMIWVdZQxTGxWy\n\tSlqt25EloK8Jyid/Q83X3s5GFe/s1JInDw+qvt3JpWrIFwGdkvhZZkEfex6MFdAi5u\n\toZ3s9eTikO4Iu/D4OCR5u4roNf+dH/iVGbsSPpawjLOw/C1le/eqEbo2lW2EMfzjuL\n\t0aP/fS2V+ljIg==","v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1702375669;\n\tbh=4q6xKqITM3+YVjL2hBVVoY0toBVZBD/O2jqFTD30Ee4=;\n\th=Date:From:To:Cc:Subject:References:In-Reply-To:From;\n\tb=mo0otLpoehOEjSETPkrm7xUjVxDN7suYxHWB/enHFYs7iECOymzLZb/FSU6nZinLs\n\tomIp/PYNwWT/H1zCL7xx9uvbJcxI/jT7FrNBv5Zjg0HH44o3d6d0DwsLr+Oie4yD6W\n\tWu0zguLBTf5Mo9aZptleiSxVjWFBdluL3V55Z0MI="],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key; \n\tunprotected) header.d=ideasonboard.com\n\theader.i=@ideasonboard.com\n\theader.b=\"mo0otLpo\"; dkim-atps=neutral","Date":"Tue, 12 Dec 2023 12:08:40 +0200","To":"David Plowman <david.plowman@raspberrypi.com>","Message-ID":"<20231212100840.GN27535@pendragon.ideasonboard.com>","References":"<20231211171406.37827-1-william.vinnicombe@raspberrypi.com>\n\t<CAHW6GYJ=heCbDCVLOCpW6tFXKi6wjzK=aWU3Q5TMwAgLwozTHg@mail.gmail.com>","MIME-Version":"1.0","Content-Type":"text/plain; charset=utf-8","Content-Disposition":"inline","In-Reply-To":"<CAHW6GYJ=heCbDCVLOCpW6tFXKi6wjzK=aWU3Q5TMwAgLwozTHg@mail.gmail.com>","Subject":"Re: [libcamera-devel] [PATCH] pipeline: rpi: Respect provided stride","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":"Laurent Pinchart via libcamera-devel\n\t<libcamera-devel@lists.libcamera.org>","Reply-To":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","Cc":"libcamera-devel@lists.libcamera.org","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":28299,"web_url":"https://patchwork.libcamera.org/comment/28299/","msgid":"<CAA9M1nU0ztuzpvhNFKa7HkXHNS6XJXaYpjdbnfdPCSn_MBo10g@mail.gmail.com>","date":"2023-12-12T13:24:52","subject":"Re: [libcamera-devel] [PATCH] pipeline: rpi: Respect provided stride","submitter":{"id":131,"url":"https://patchwork.libcamera.org/api/people/131/","name":"William Vinnicombe","email":"william.vinnicombe@raspberrypi.com"},"content":"Hi Laurent,\n\nOn Tue, 12 Dec 2023 at 10:08, Laurent Pinchart\n<laurent.pinchart@ideasonboard.com> wrote:\n>\n> Hello,\n>\n> On Tue, Dec 12, 2023 at 09:56:22AM +0000, David Plowman via libcamera-devel wrote:\n> > On Mon, 11 Dec 2023 at 17:14, William Vinnicombe via libcamera-devel wrote:\n> > >\n> > > When converting from StreamConfiguration to V4L2DeviceFormat, the stride\n> > > was being dropped.\n> >\n> > I might add a \"with the result that users could not request a custom\n> > stride\" (a bit like playing consequences!) just for the extra\n> > clarification... but with or without that it looks good to me:\n>\n> That looks like a nice addition, I can update the commit message when\n> pushing if a v2 is not needed.\n\nThat sounds good, thanks\n\n>\n>\n> > Reviewed-by: David Plowman <david.plowman@raspberrypi.com>\n> >\n> > > Set the stride in the V4L2DeviceFormat to prevent this happening.\n> > >\n> > > Signed-off-by: William Vinnicombe <william.vinnicombe@raspberrypi.com>\n> > > ---\n> > >  src/libcamera/pipeline/rpi/common/pipeline_base.cpp | 1 +\n> > >  1 file changed, 1 insertion(+)\n> > >\n> > > diff --git a/src/libcamera/pipeline/rpi/common/pipeline_base.cpp b/src/libcamera/pipeline/rpi/common/pipeline_base.cpp\n> > > index 9f788c9d..5afa8dbb 100644\n> > > --- a/src/libcamera/pipeline/rpi/common/pipeline_base.cpp\n> > > +++ b/src/libcamera/pipeline/rpi/common/pipeline_base.cpp\n> > > @@ -367,6 +367,7 @@ V4L2DeviceFormat PipelineHandlerBase::toV4L2DeviceFormat(const V4L2VideoDevice *\n> > >         deviceFormat.planesCount = info.numPlanes();\n> > >         deviceFormat.fourcc = dev->toV4L2PixelFormat(stream->pixelFormat);\n> > >         deviceFormat.size = stream->size;\n> > > +       deviceFormat.planes[0].bpl = stream->stride;\n>\n> Shouldn't the stride be set for all planes ?\n\nAs there isn't any per-plane stride information in the stream\nconfiguration, and our pipeline handler only reads the stride from the\nfirst plane, I think it's safer to only set the stride for the first\nplane in this configuration.\n\nThanks,\nWilliam\n\n>\n>\n> > >         deviceFormat.colorSpace = stream->colorSpace;\n> > >\n> > >         return deviceFormat;\n>\n> --\n> Regards,\n>\n> Laurent Pinchart","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 7F365C31E9\n\tfor <parsemail@patchwork.libcamera.org>;\n\tTue, 12 Dec 2023 13:25:07 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id DF3E062B32;\n\tTue, 12 Dec 2023 14:25:06 +0100 (CET)","from mail-pj1-x102d.google.com (mail-pj1-x102d.google.com\n\t[IPv6:2607:f8b0:4864:20::102d])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 1CDF0629BD\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue, 12 Dec 2023 14:25:05 +0100 (CET)","by mail-pj1-x102d.google.com with SMTP id\n\t98e67ed59e1d1-28acd29cab3so190686a91.1\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue, 12 Dec 2023 05:25:04 -0800 (PST)"],"DKIM-Signature":["v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org;\n\ts=mail; t=1702387506;\n\tbh=ehkjZAVo4k7d6/91DNTeksgX1F8vtF4QszeeQPzjIB0=;\n\th=References:In-Reply-To:Date:To:Subject:List-Id:List-Unsubscribe:\n\tList-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:Cc:\n\tFrom;\n\tb=lvIdjTshGeOsuvrCuEWetv1vEgk/VzeEmv/5/gz4shIyM9s+x1qpAL1BxuoYeBP0L\n\t2dy1VkgNbf9uNbTURNqqLSaFehRDO/dlEoRzNZJYxDr3X9gc9DIic2Ue0yD3bwOnSp\n\tltcqfzgccIFCVlUgaybGYlB+VMeXl6cEGg4Iwr6MJKXsEJSVs+3kq1Qqwhy//X9vaX\n\tomGCJ53y7k5xPjdnhxY5Es3GnT8IDSHBw3pzuCbPqMQFs1zBd/yZyEyMpUAQ130IYf\n\tiY/O9kqXks2EauCm99cNwiy480fHmh4qJSlbxnd26SzBheAfQabntS5cDZWJexDSAf\n\tbxLOGSI2+rm4w==","v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=raspberrypi.com; s=google; t=1702387503; x=1702992303;\n\tdarn=lists.libcamera.org; \n\th=cc:to:subject:message-id:date:from:in-reply-to:references\n\t:mime-version:from:to:cc:subject:date:message-id:reply-to;\n\tbh=m7gaLFeDVTBL1iuqeJQjgbWUd7w8z4ziTh2aP4YPEz4=;\n\tb=iqFD6o3EXvlv1jwYhDRcs6YiVvc9H8XvyEKOPpnkefBjalXEd5qE/3Zp4n1ZPnK3mN\n\t7Yv9hAW8vMxj8kstvCRR2MpCYJkq8eiG8j5UQTUMdwGoLDcD+2pANPc1LYhMVy7a5qwF\n\t7gh/HooNwd7wFjxK/h3GmR6bTxfXOJ4xZjCYnuvqM1mw3xhrki8nCpNHSyMWByIfQrKp\n\t9l8FeqwMFBhtYYMzfy5iiVa5j5TBivAVO4VIHHWcz4IfeTQArEin7IYjfqiWHN7kx3Wg\n\ttufFisuxdP9aqOfDQ5aSD4CQi+knz0dSncnmPwil9coTsUyoIfBDbxEEXPIucIheCxJ2\n\t2Mkw=="],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (2048-bit key; \n\tunprotected) header.d=raspberrypi.com\n\theader.i=@raspberrypi.com\n\theader.b=\"iqFD6o3E\"; dkim-atps=neutral","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20230601; t=1702387503; x=1702992303;\n\th=cc:to:subject:message-id:date:from:in-reply-to:references\n\t:mime-version:x-gm-message-state:from:to:cc:subject:date:message-id\n\t:reply-to;\n\tbh=m7gaLFeDVTBL1iuqeJQjgbWUd7w8z4ziTh2aP4YPEz4=;\n\tb=NrNDES5yZZ6PTF0qWmMaO826jcpJi4MNFC9GQwXiT95yt/JPPi1dO6QbfFOqi5oq46\n\to5L0rWjYopiLAoD6LB5K0OchEP8g/fUz6jmvSMtUZJZMSi1nrRBnSNuz4y2JFLAw0SxL\n\tnyg3L7jIrBTlTJuDc8aGZC2i9WUvYbLGEKetE9RBA8RqjR/gC22vnzwAWLXAZs1kc2mP\n\tz/c+MytOIy+34v8ukePoZHzt+oKTR8zTqC6GDAxxcyTITjbznBhv8V4SzM0yePepNCWI\n\tuoT6nCKPmWL+io+Ac9vAP6SMJFenVRDk5y7pOa04+rSqLB9/M15fLQKb/8Y+Rmw4gFkx\n\tMEQQ==","X-Gm-Message-State":"AOJu0YxxaLR3wIRWfjONenU1BTGoQ3XYXcoml1oIgZuz2XgcJl+hsfSC\n\txXhhzObDqTaaYlqY4PWJq8RVFfW7JEFnC6RekSJCqA==","X-Google-Smtp-Source":"AGHT+IFf5U4UegT8jCfxchA6vT9hdHd+GMpKs4i5A+tQlfHLZToKkH2ORDJzLqePw3450ck5kX8P5gX2S+HhAM3pr6Q=","X-Received":"by 2002:a17:90a:470e:b0:28a:c930:5952 with SMTP id\n\th14-20020a17090a470e00b0028ac9305952mr268951pjg.42.1702387503453;\n\tTue, 12 Dec 2023 05:25:03 -0800 (PST)","MIME-Version":"1.0","References":"<20231211171406.37827-1-william.vinnicombe@raspberrypi.com>\n\t<CAHW6GYJ=heCbDCVLOCpW6tFXKi6wjzK=aWU3Q5TMwAgLwozTHg@mail.gmail.com>\n\t<20231212100840.GN27535@pendragon.ideasonboard.com>","In-Reply-To":"<20231212100840.GN27535@pendragon.ideasonboard.com>","Date":"Tue, 12 Dec 2023 13:24:52 +0000","Message-ID":"<CAA9M1nU0ztuzpvhNFKa7HkXHNS6XJXaYpjdbnfdPCSn_MBo10g@mail.gmail.com>","To":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","Content-Type":"text/plain; charset=\"UTF-8\"","Subject":"Re: [libcamera-devel] [PATCH] pipeline: rpi: Respect provided stride","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":"William Vinnicombe via libcamera-devel\n\t<libcamera-devel@lists.libcamera.org>","Reply-To":"William Vinnicombe <william.vinnicombe@raspberrypi.com>","Cc":"libcamera-devel@lists.libcamera.org","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":28339,"web_url":"https://patchwork.libcamera.org/comment/28339/","msgid":"<20231218035045.GO5290@pendragon.ideasonboard.com>","date":"2023-12-18T03:50:45","subject":"Re: [libcamera-devel] [PATCH] pipeline: rpi: Respect provided stride","submitter":{"id":2,"url":"https://patchwork.libcamera.org/api/people/2/","name":"Laurent Pinchart","email":"laurent.pinchart@ideasonboard.com"},"content":"Hi William,\n\nOn Tue, Dec 12, 2023 at 01:24:52PM +0000, William Vinnicombe wrote:\n> On Tue, 12 Dec 2023 at 10:08, Laurent Pinchart wrote:\n> > On Tue, Dec 12, 2023 at 09:56:22AM +0000, David Plowman via libcamera-devel wrote:\n> > > On Mon, 11 Dec 2023 at 17:14, William Vinnicombe via libcamera-devel wrote:\n> > > >\n> > > > When converting from StreamConfiguration to V4L2DeviceFormat, the stride\n> > > > was being dropped.\n> > >\n> > > I might add a \"with the result that users could not request a custom\n> > > stride\" (a bit like playing consequences!) just for the extra\n> > > clarification... but with or without that it looks good to me:\n> >\n> > That looks like a nice addition, I can update the commit message when\n> > pushing if a v2 is not needed.\n> \n> That sounds good, thanks\n> \n> > > Reviewed-by: David Plowman <david.plowman@raspberrypi.com>\n> > >\n> > > > Set the stride in the V4L2DeviceFormat to prevent this happening.\n> > > >\n> > > > Signed-off-by: William Vinnicombe <william.vinnicombe@raspberrypi.com>\n> > > > ---\n> > > >  src/libcamera/pipeline/rpi/common/pipeline_base.cpp | 1 +\n> > > >  1 file changed, 1 insertion(+)\n> > > >\n> > > > diff --git a/src/libcamera/pipeline/rpi/common/pipeline_base.cpp b/src/libcamera/pipeline/rpi/common/pipeline_base.cpp\n> > > > index 9f788c9d..5afa8dbb 100644\n> > > > --- a/src/libcamera/pipeline/rpi/common/pipeline_base.cpp\n> > > > +++ b/src/libcamera/pipeline/rpi/common/pipeline_base.cpp\n> > > > @@ -367,6 +367,7 @@ V4L2DeviceFormat PipelineHandlerBase::toV4L2DeviceFormat(const V4L2VideoDevice *\n> > > >         deviceFormat.planesCount = info.numPlanes();\n> > > >         deviceFormat.fourcc = dev->toV4L2PixelFormat(stream->pixelFormat);\n> > > >         deviceFormat.size = stream->size;\n> > > > +       deviceFormat.planes[0].bpl = stream->stride;\n> >\n> > Shouldn't the stride be set for all planes ?\n> \n> As there isn't any per-plane stride information in the stream\n> configuration, and our pipeline handler only reads the stride from the\n> first plane, I think it's safer to only set the stride for the first\n> plane in this configuration.\n\nFrom a libcamera API point of view, we've opted for a single stride\nvalue related to the first plane, with the stride of the other planes\nderived from the first plane. The rationale is that not all hardware\nplatforms would allow configuration of the stride per-plane, and we\nhaven't come across use cases for per-plane stride values.\n\nFrom a V4L2 point of view, however, the stride is defined per plane.\nUnless I'm mistaken, Pi 4 supports the single planar API only (formats\nwith multiple planes, such as NV12, use a single V4L2 plane to store all\nthe planes), but Pi 5 uses the V4L2 multi planar API. As this patch is\nfor common code, I think it would be best to initialize all the planes\ncorrectly instead of relying on the kernel driver to fix the values.\n\n> > > >         deviceFormat.colorSpace = stream->colorSpace;\n> > > >\n> > > >         return deviceFormat;","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 8340FC31E9\n\tfor <parsemail@patchwork.libcamera.org>;\n\tMon, 18 Dec 2023 03:50:42 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id E060762B3D;\n\tMon, 18 Dec 2023 04:50:41 +0100 (CET)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id CB27561D8D\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tMon, 18 Dec 2023 04:50:39 +0100 (CET)","from pendragon.ideasonboard.com (213-243-189-158.bb.dnainternet.fi\n\t[213.243.189.158])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id F0AC057E;\n\tMon, 18 Dec 2023 04:49:50 +0100 (CET)"],"DKIM-Signature":["v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org;\n\ts=mail; t=1702871441;\n\tbh=N4aOb9Bg6jAGZpsxx0EIMAIE+rUnlNxF9cY5lg/GEhw=;\n\th=Date:To:References:In-Reply-To:Subject:List-Id:List-Unsubscribe:\n\tList-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:Cc:\n\tFrom;\n\tb=hzxeKq2GxecY6n2MWewfuxZuhayeXipYIpFp2bJGjNggyVA0e4NfDFqXf+oec59dN\n\tOhUNS8ch8FHWEMfH/3qEIBjgE/Tp45a/GZQenKYm9nXl+M4ynuD0Io04tB15shJ6Sh\n\tQCosfij384dTzGUwnHy8F9i5Y/CFICPUeZJTEiJ1Lnx5X4a0woUxfr1xGPNlNlmSKS\n\tgX/1im3zgCZOxUaaA0ICJY4wWNMPZPzFyTv/95LVJgrHB8DGb9gVJKflA1kmXwOlxB\n\tm8ALQsoNqsQCE73rkzYsJ70aw3qoQTk65sIZ/nG2Qk4Iuq6KGBKzDuxTh3w+Xs/HXw\n\ttQk7Ls8A13fqA==","v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1702871391;\n\tbh=N4aOb9Bg6jAGZpsxx0EIMAIE+rUnlNxF9cY5lg/GEhw=;\n\th=Date:From:To:Cc:Subject:References:In-Reply-To:From;\n\tb=GTtMSNYBnD7keDcvp4akmjXfoIPOVmbAid9sLe4Spz2NNQeCd1yNhvaFWJoeBuz6z\n\t7puTFf9dSB9a0Ex9HkPmeb1c3X2lAmZnh25jClWNok3pgzH7p/ZBc1u9PProuhNVE4\n\tV2NQLYpU886p768Ulc6qZfxFCSxe8TSZBmQGbENk="],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key; \n\tunprotected) header.d=ideasonboard.com\n\theader.i=@ideasonboard.com\n\theader.b=\"GTtMSNYB\"; dkim-atps=neutral","Date":"Mon, 18 Dec 2023 05:50:45 +0200","To":"William Vinnicombe <william.vinnicombe@raspberrypi.com>","Message-ID":"<20231218035045.GO5290@pendragon.ideasonboard.com>","References":"<20231211171406.37827-1-william.vinnicombe@raspberrypi.com>\n\t<CAHW6GYJ=heCbDCVLOCpW6tFXKi6wjzK=aWU3Q5TMwAgLwozTHg@mail.gmail.com>\n\t<20231212100840.GN27535@pendragon.ideasonboard.com>\n\t<CAA9M1nU0ztuzpvhNFKa7HkXHNS6XJXaYpjdbnfdPCSn_MBo10g@mail.gmail.com>","MIME-Version":"1.0","Content-Type":"text/plain; charset=utf-8","Content-Disposition":"inline","In-Reply-To":"<CAA9M1nU0ztuzpvhNFKa7HkXHNS6XJXaYpjdbnfdPCSn_MBo10g@mail.gmail.com>","Subject":"Re: [libcamera-devel] [PATCH] pipeline: rpi: Respect provided stride","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":"Laurent Pinchart via libcamera-devel\n\t<libcamera-devel@lists.libcamera.org>","Reply-To":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","Cc":"libcamera-devel@lists.libcamera.org","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":28340,"web_url":"https://patchwork.libcamera.org/comment/28340/","msgid":"<CAEmqJPqMH1nroYE56iX9WOVFoqGAfg+phZU+upWu4zpwmvwp_w@mail.gmail.com>","date":"2023-12-18T08:52:33","subject":"Re: [libcamera-devel] [PATCH] pipeline: rpi: Respect provided stride","submitter":{"id":34,"url":"https://patchwork.libcamera.org/api/people/34/","name":"Naushir Patuck","email":"naush@raspberrypi.com"},"content":"Hi Laurent,\n\nOn Mon, 18 Dec 2023 at 03:50, Laurent Pinchart via libcamera-devel\n<libcamera-devel@lists.libcamera.org> wrote:\n>\n> Hi William,\n>\n> On Tue, Dec 12, 2023 at 01:24:52PM +0000, William Vinnicombe wrote:\n> > On Tue, 12 Dec 2023 at 10:08, Laurent Pinchart wrote:\n> > > On Tue, Dec 12, 2023 at 09:56:22AM +0000, David Plowman via libcamera-devel wrote:\n> > > > On Mon, 11 Dec 2023 at 17:14, William Vinnicombe via libcamera-devel wrote:\n> > > > >\n> > > > > When converting from StreamConfiguration to V4L2DeviceFormat, the stride\n> > > > > was being dropped.\n> > > >\n> > > > I might add a \"with the result that users could not request a custom\n> > > > stride\" (a bit like playing consequences!) just for the extra\n> > > > clarification... but with or without that it looks good to me:\n> > >\n> > > That looks like a nice addition, I can update the commit message when\n> > > pushing if a v2 is not needed.\n> >\n> > That sounds good, thanks\n> >\n> > > > Reviewed-by: David Plowman <david.plowman@raspberrypi.com>\n> > > >\n> > > > > Set the stride in the V4L2DeviceFormat to prevent this happening.\n> > > > >\n> > > > > Signed-off-by: William Vinnicombe <william.vinnicombe@raspberrypi.com>\n> > > > > ---\n> > > > >  src/libcamera/pipeline/rpi/common/pipeline_base.cpp | 1 +\n> > > > >  1 file changed, 1 insertion(+)\n> > > > >\n> > > > > diff --git a/src/libcamera/pipeline/rpi/common/pipeline_base.cpp b/src/libcamera/pipeline/rpi/common/pipeline_base.cpp\n> > > > > index 9f788c9d..5afa8dbb 100644\n> > > > > --- a/src/libcamera/pipeline/rpi/common/pipeline_base.cpp\n> > > > > +++ b/src/libcamera/pipeline/rpi/common/pipeline_base.cpp\n> > > > > @@ -367,6 +367,7 @@ V4L2DeviceFormat PipelineHandlerBase::toV4L2DeviceFormat(const V4L2VideoDevice *\n> > > > >         deviceFormat.planesCount = info.numPlanes();\n> > > > >         deviceFormat.fourcc = dev->toV4L2PixelFormat(stream->pixelFormat);\n> > > > >         deviceFormat.size = stream->size;\n> > > > > +       deviceFormat.planes[0].bpl = stream->stride;\n> > >\n> > > Shouldn't the stride be set for all planes ?\n> >\n> > As there isn't any per-plane stride information in the stream\n> > configuration, and our pipeline handler only reads the stride from the\n> > first plane, I think it's safer to only set the stride for the first\n> > plane in this configuration.\n>\n> From a libcamera API point of view, we've opted for a single stride\n> value related to the first plane, with the stride of the other planes\n> derived from the first plane. The rationale is that not all hardware\n> platforms would allow configuration of the stride per-plane, and we\n> haven't come across use cases for per-plane stride values.\n>\n> From a V4L2 point of view, however, the stride is defined per plane.\n> Unless I'm mistaken, Pi 4 supports the single planar API only (formats\n> with multiple planes, such as NV12, use a single V4L2 plane to store all\n> the planes), but Pi 5 uses the V4L2 multi planar API. As this patch is\n> for common code, I think it would be best to initialize all the planes\n> correctly instead of relying on the kernel driver to fix the values.\n\nPi 5 supports the multiplanar API, but we still only use single-plane\nformats within it.  Lots of things would need to be fixed up if we\nswitched to use true multiplanar buffers.\n\nRegards,\nNaush\n\n\n>\n> > > > >         deviceFormat.colorSpace = stream->colorSpace;\n> > > > >\n> > > > >         return deviceFormat;\n>\n> --\n> Regards,\n>\n> Laurent Pinchart","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 D50B9C3237\n\tfor <parsemail@patchwork.libcamera.org>;\n\tMon, 18 Dec 2023 08:52:44 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id CE7A862B40;\n\tMon, 18 Dec 2023 09:52:43 +0100 (CET)","from mail-yw1-x112d.google.com (mail-yw1-x112d.google.com\n\t[IPv6:2607:f8b0:4864:20::112d])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 68B8962B2E\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tMon, 18 Dec 2023 09:52:41 +0100 (CET)","by mail-yw1-x112d.google.com with SMTP id\n\t00721157ae682-5e611740893so6343137b3.0\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tMon, 18 Dec 2023 00:52:41 -0800 (PST)"],"DKIM-Signature":["v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org;\n\ts=mail; t=1702889563;\n\tbh=XrxJgU2yCne9zlJnE64cA1COS9sSMI3HSSM23i/FJmc=;\n\th=References:In-Reply-To:Date:To:Subject:List-Id:List-Unsubscribe:\n\tList-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:Cc:\n\tFrom;\n\tb=U7vZUsf/Gam/Ts5Pt9RNbAk3H58IEm0SvP3b0Y/Rpeyw/5uTuZOVXq4/hBx76pJRd\n\tj1WcM/62qz6LkTMqCvbVRMipsCm9dR9XKEJbPYHICAQ3lI/wrzlXUkm+6CvuT3Bm4v\n\tC8f2UwUqgKIGnpaP5nTErd5nd8rUIsNTnRQgoFGVm3GFuX/p1JAx63n7gkPh8zKVmZ\n\t/jONzaE1RNXwFDI9W5AcCerTcsCDTz1t8ZCfiGt4FoQ+k0KQ5Cv4ZxRLWzD8TU0f8Z\n\tT8vdF7cUV1an9B/k8EW4PUxQA2fu+0qErUcDc+fHyJV2xPoYCNAHUcyTSUWZTKg2LE\n\tu4BQSus02XE5w==","v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=raspberrypi.com; s=google; t=1702889560; x=1703494360;\n\tdarn=lists.libcamera.org; \n\th=cc:to:subject:message-id:date:from:in-reply-to:references\n\t:mime-version:from:to:cc:subject:date:message-id:reply-to;\n\tbh=YbnK+C0pjci8ir/X9LYH5BeXtnwgvZiby1VCAbTb2wQ=;\n\tb=IavI0RAKwg2oB9JwbdFgjr57j+n3xCUmJRy/MPEtQ/278t7o6wO8951EX+HiQZf6ip\n\t+rVyaAu5Qo6tuTs+tJjvgMjQLuBzw16D6Y9U3bbdndSBQ5CGMhM7FsI82RwaPJrF5vHf\n\tgqQ9/H4sH/BoUyJdGwSJLOpLTdP3gnImh9Idic+X6M4LFxb8DmP+7AVcRGyRNcI1S+D+\n\tz72apzROqYjsX3lch6C1pb7e40WKZiqhrbax2mcGYuB+kCjOFo4wvQAtKKKgBzoj5+WP\n\tXkZwHMq9kaCyrDeA5juEMXs9SCvj6oPzWZW1rm2ZU7UC3eonwkVx825H0qT90/vunqbJ\n\tssEw=="],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (2048-bit key; \n\tunprotected) header.d=raspberrypi.com\n\theader.i=@raspberrypi.com\n\theader.b=\"IavI0RAK\"; dkim-atps=neutral","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20230601; t=1702889560; x=1703494360;\n\th=cc:to:subject:message-id:date:from:in-reply-to:references\n\t:mime-version:x-gm-message-state:from:to:cc:subject:date:message-id\n\t:reply-to;\n\tbh=YbnK+C0pjci8ir/X9LYH5BeXtnwgvZiby1VCAbTb2wQ=;\n\tb=iYbqg1aEibz83KvoYIPyId67xuRgSkYA7mELtYmgl8gpJlxGNKIV0BJLEtMXysc8v6\n\tV4gp/lltSMvrLBrL4az1cmPXVmOCLpR2D0tX4zdS3oZiSYOxS7sbMfdaqZkyA/Zt/Y3g\n\t8+nQVqzg1w70en6UFZ5i8jGGYwuQH+Bkv+/cBK7g6+XcYxvW74WfDh3VFrSl94qwsPiy\n\tRHNFlErSqIN61mB1knT4l1RwbI83WnqZv947gukdFkuYpBaLOvJgCvTHfOyASlUYAjER\n\tOYc7wvQX7hFK0pFq6Rumvbn4lvxFIWtyAcWzddLyTFK2HZ+sc8wmfzzs0Axyhtg3j9+4\n\tuzRg==","X-Gm-Message-State":"AOJu0Yw2W84SoL6tv2t0vRcxZTz0hLQro6JOsYM29b6YbzAWKgnYuDtT\n\tbD6GWhlUABkqNCZeYMEGAXB8OgpGHZspaq5eRob0kZG0xwWeFUgJ","X-Google-Smtp-Source":"AGHT+IFADSQugE0l8IsocLSqjbzyOA5WH36+mv5+4TuqpV5CeLTsU+pRlynvYbrpgNmvwJWXJMjiz0ILRQQ7gBek/vI=","X-Received":"by 2002:a81:4992:0:b0:5e6:f44c:6d89 with SMTP id\n\tw140-20020a814992000000b005e6f44c6d89mr398532ywa.85.1702889560210;\n\tMon, 18 Dec 2023 00:52:40 -0800 (PST)","MIME-Version":"1.0","References":"<20231211171406.37827-1-william.vinnicombe@raspberrypi.com>\n\t<CAHW6GYJ=heCbDCVLOCpW6tFXKi6wjzK=aWU3Q5TMwAgLwozTHg@mail.gmail.com>\n\t<20231212100840.GN27535@pendragon.ideasonboard.com>\n\t<CAA9M1nU0ztuzpvhNFKa7HkXHNS6XJXaYpjdbnfdPCSn_MBo10g@mail.gmail.com>\n\t<20231218035045.GO5290@pendragon.ideasonboard.com>","In-Reply-To":"<20231218035045.GO5290@pendragon.ideasonboard.com>","Date":"Mon, 18 Dec 2023 08:52:33 +0000","Message-ID":"<CAEmqJPqMH1nroYE56iX9WOVFoqGAfg+phZU+upWu4zpwmvwp_w@mail.gmail.com>","To":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","Content-Type":"text/plain; charset=\"UTF-8\"","Subject":"Re: [libcamera-devel] [PATCH] pipeline: rpi: Respect provided stride","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":"Naushir Patuck via libcamera-devel\n\t<libcamera-devel@lists.libcamera.org>","Reply-To":"Naushir Patuck <naush@raspberrypi.com>","Cc":"libcamera-devel@lists.libcamera.org","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":28351,"web_url":"https://patchwork.libcamera.org/comment/28351/","msgid":"<20231221154403.GB13598@pendragon.ideasonboard.com>","date":"2023-12-21T15:44:03","subject":"Re: [libcamera-devel] [PATCH] pipeline: rpi: Respect provided stride","submitter":{"id":2,"url":"https://patchwork.libcamera.org/api/people/2/","name":"Laurent Pinchart","email":"laurent.pinchart@ideasonboard.com"},"content":"Hi Naush,\n\nOn Mon, Dec 18, 2023 at 08:52:33AM +0000, Naushir Patuck wrote:\n> On Mon, 18 Dec 2023 at 03:50, Laurent Pinchart via libcamera-devel wrote:\n> > On Tue, Dec 12, 2023 at 01:24:52PM +0000, William Vinnicombe wrote:\n> > > On Tue, 12 Dec 2023 at 10:08, Laurent Pinchart wrote:\n> > > > On Tue, Dec 12, 2023 at 09:56:22AM +0000, David Plowman via libcamera-devel wrote:\n> > > > > On Mon, 11 Dec 2023 at 17:14, William Vinnicombe via libcamera-devel wrote:\n> > > > > >\n> > > > > > When converting from StreamConfiguration to V4L2DeviceFormat, the stride\n> > > > > > was being dropped.\n> > > > >\n> > > > > I might add a \"with the result that users could not request a custom\n> > > > > stride\" (a bit like playing consequences!) just for the extra\n> > > > > clarification... but with or without that it looks good to me:\n> > > >\n> > > > That looks like a nice addition, I can update the commit message when\n> > > > pushing if a v2 is not needed.\n> > >\n> > > That sounds good, thanks\n> > >\n> > > > > Reviewed-by: David Plowman <david.plowman@raspberrypi.com>\n> > > > >\n> > > > > > Set the stride in the V4L2DeviceFormat to prevent this happening.\n> > > > > >\n> > > > > > Signed-off-by: William Vinnicombe <william.vinnicombe@raspberrypi.com>\n> > > > > > ---\n> > > > > >  src/libcamera/pipeline/rpi/common/pipeline_base.cpp | 1 +\n> > > > > >  1 file changed, 1 insertion(+)\n> > > > > >\n> > > > > > diff --git a/src/libcamera/pipeline/rpi/common/pipeline_base.cpp b/src/libcamera/pipeline/rpi/common/pipeline_base.cpp\n> > > > > > index 9f788c9d..5afa8dbb 100644\n> > > > > > --- a/src/libcamera/pipeline/rpi/common/pipeline_base.cpp\n> > > > > > +++ b/src/libcamera/pipeline/rpi/common/pipeline_base.cpp\n> > > > > > @@ -367,6 +367,7 @@ V4L2DeviceFormat PipelineHandlerBase::toV4L2DeviceFormat(const V4L2VideoDevice *\n> > > > > >         deviceFormat.planesCount = info.numPlanes();\n> > > > > >         deviceFormat.fourcc = dev->toV4L2PixelFormat(stream->pixelFormat);\n> > > > > >         deviceFormat.size = stream->size;\n> > > > > > +       deviceFormat.planes[0].bpl = stream->stride;\n> > > >\n> > > > Shouldn't the stride be set for all planes ?\n> > >\n> > > As there isn't any per-plane stride information in the stream\n> > > configuration, and our pipeline handler only reads the stride from the\n> > > first plane, I think it's safer to only set the stride for the first\n> > > plane in this configuration.\n> >\n> > From a libcamera API point of view, we've opted for a single stride\n> > value related to the first plane, with the stride of the other planes\n> > derived from the first plane. The rationale is that not all hardware\n> > platforms would allow configuration of the stride per-plane, and we\n> > haven't come across use cases for per-plane stride values.\n> >\n> > From a V4L2 point of view, however, the stride is defined per plane.\n> > Unless I'm mistaken, Pi 4 supports the single planar API only (formats\n> > with multiple planes, such as NV12, use a single V4L2 plane to store all\n> > the planes), but Pi 5 uses the V4L2 multi planar API. As this patch is\n> > for common code, I think it would be best to initialize all the planes\n> > correctly instead of relying on the kernel driver to fix the values.\n> \n> Pi 5 supports the multiplanar API, but we still only use single-plane\n> formats within it.  Lots of things would need to be fixed up if we\n> switched to use true multiplanar buffers.\n\nI may be missing something, but aren't these formats multi-planar\nhttps://github.com/raspberrypi/linux/blob/rpi-6.1.y/drivers/media/platform/raspberrypi/pisp_be/pisp_be_formats.h#L127\n?\n\n> > > > > >         deviceFormat.colorSpace = stream->colorSpace;\n> > > > > >\n> > > > > >         return deviceFormat;","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 346C1C31E9\n\tfor <parsemail@patchwork.libcamera.org>;\n\tThu, 21 Dec 2023 15:43:59 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 73A9062B40;\n\tThu, 21 Dec 2023 16:43:58 +0100 (CET)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 9EC0A629E3\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tThu, 21 Dec 2023 16:43:57 +0100 (CET)","from pendragon.ideasonboard.com (213-243-189-158.bb.dnainternet.fi\n\t[213.243.189.158])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 60979480;\n\tThu, 21 Dec 2023 16:43:06 +0100 (CET)"],"DKIM-Signature":["v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org;\n\ts=mail; t=1703173438;\n\tbh=4+KJpOPJvSU8G7bNjCqAhFmp3z/HLU9aO6TzOm3SZIM=;\n\th=Date:To:References:In-Reply-To:Subject:List-Id:List-Unsubscribe:\n\tList-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:Cc:\n\tFrom;\n\tb=LLducDj/1HzklatBRojWiEtiLBWNmI0PxPUeNfMLNko+IsK2C5zfEmGYKfiPyvlDW\n\tf57fv3z2NjG/mmk+woaS5Wfk185RvDq1HpA2qjYtO/o4RMyB615sCQ1v8ZQDgFygfS\n\tzhAq2t8lm+aAFhUl1okaqLFpA/SHwUJGTr5ohcUaboIdGsUKSwJ6ZBn6dhRFfpgxHf\n\tTyRdJ1YQedKlPcm2RJsGNBMYmYIPiJVX5lURDla0SDoAwoZQfcCF5zU3DwXQhb/Iri\n\t5khVqpiivQvQp3Apii9Ns+LNpB//B6WL9QAfngAakg2xFGt+RKIQ8hXo/S8xpHaW4+\n\tGqPyui3z6+22w==","v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1703173386;\n\tbh=4+KJpOPJvSU8G7bNjCqAhFmp3z/HLU9aO6TzOm3SZIM=;\n\th=Date:From:To:Cc:Subject:References:In-Reply-To:From;\n\tb=wB1VOpq4SDyJZVc8dgiXIeOoo0DFBnCsJGaomZgoO+7A/NHf8ydjq7EDVRHVfof1Q\n\tOxI/LYnoATrmBjr1pHNqFVS7RqfoGrlBPqi0qu+nLpGUNIbdo0gjTuojWBO97RJp57\n\tZSeZzZK3z/MXOcGwq+/jr4In+PHngGfZMVwjG3rU="],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key; \n\tunprotected) header.d=ideasonboard.com\n\theader.i=@ideasonboard.com\n\theader.b=\"wB1VOpq4\"; dkim-atps=neutral","Date":"Thu, 21 Dec 2023 17:44:03 +0200","To":"Naushir Patuck <naush@raspberrypi.com>","Message-ID":"<20231221154403.GB13598@pendragon.ideasonboard.com>","References":"<20231211171406.37827-1-william.vinnicombe@raspberrypi.com>\n\t<CAHW6GYJ=heCbDCVLOCpW6tFXKi6wjzK=aWU3Q5TMwAgLwozTHg@mail.gmail.com>\n\t<20231212100840.GN27535@pendragon.ideasonboard.com>\n\t<CAA9M1nU0ztuzpvhNFKa7HkXHNS6XJXaYpjdbnfdPCSn_MBo10g@mail.gmail.com>\n\t<20231218035045.GO5290@pendragon.ideasonboard.com>\n\t<CAEmqJPqMH1nroYE56iX9WOVFoqGAfg+phZU+upWu4zpwmvwp_w@mail.gmail.com>","MIME-Version":"1.0","Content-Type":"text/plain; charset=utf-8","Content-Disposition":"inline","In-Reply-To":"<CAEmqJPqMH1nroYE56iX9WOVFoqGAfg+phZU+upWu4zpwmvwp_w@mail.gmail.com>","Subject":"Re: [libcamera-devel] [PATCH] pipeline: rpi: Respect provided stride","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":"Laurent Pinchart via libcamera-devel\n\t<libcamera-devel@lists.libcamera.org>","Reply-To":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","Cc":"libcamera-devel@lists.libcamera.org","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":28352,"web_url":"https://patchwork.libcamera.org/comment/28352/","msgid":"<CAEmqJPp34igBo0EHqPzNUjKBEffDm=63yM1yO1R5tubicW3efA@mail.gmail.com>","date":"2023-12-21T15:57:35","subject":"Re: [libcamera-devel] [PATCH] pipeline: rpi: Respect provided stride","submitter":{"id":34,"url":"https://patchwork.libcamera.org/api/people/34/","name":"Naushir Patuck","email":"naush@raspberrypi.com"},"content":"Hi Laurent,\n\nOn Thu, 21 Dec 2023 at 15:43, Laurent Pinchart\n<laurent.pinchart@ideasonboard.com> wrote:\n>\n> Hi Naush,\n>\n> On Mon, Dec 18, 2023 at 08:52:33AM +0000, Naushir Patuck wrote:\n> > On Mon, 18 Dec 2023 at 03:50, Laurent Pinchart via libcamera-devel wrote:\n> > > On Tue, Dec 12, 2023 at 01:24:52PM +0000, William Vinnicombe wrote:\n> > > > On Tue, 12 Dec 2023 at 10:08, Laurent Pinchart wrote:\n> > > > > On Tue, Dec 12, 2023 at 09:56:22AM +0000, David Plowman via libcamera-devel wrote:\n> > > > > > On Mon, 11 Dec 2023 at 17:14, William Vinnicombe via libcamera-devel wrote:\n> > > > > > >\n> > > > > > > When converting from StreamConfiguration to V4L2DeviceFormat, the stride\n> > > > > > > was being dropped.\n> > > > > >\n> > > > > > I might add a \"with the result that users could not request a custom\n> > > > > > stride\" (a bit like playing consequences!) just for the extra\n> > > > > > clarification... but with or without that it looks good to me:\n> > > > >\n> > > > > That looks like a nice addition, I can update the commit message when\n> > > > > pushing if a v2 is not needed.\n> > > >\n> > > > That sounds good, thanks\n> > > >\n> > > > > > Reviewed-by: David Plowman <david.plowman@raspberrypi.com>\n> > > > > >\n> > > > > > > Set the stride in the V4L2DeviceFormat to prevent this happening.\n> > > > > > >\n> > > > > > > Signed-off-by: William Vinnicombe <william.vinnicombe@raspberrypi.com>\n> > > > > > > ---\n> > > > > > >  src/libcamera/pipeline/rpi/common/pipeline_base.cpp | 1 +\n> > > > > > >  1 file changed, 1 insertion(+)\n> > > > > > >\n> > > > > > > diff --git a/src/libcamera/pipeline/rpi/common/pipeline_base.cpp b/src/libcamera/pipeline/rpi/common/pipeline_base.cpp\n> > > > > > > index 9f788c9d..5afa8dbb 100644\n> > > > > > > --- a/src/libcamera/pipeline/rpi/common/pipeline_base.cpp\n> > > > > > > +++ b/src/libcamera/pipeline/rpi/common/pipeline_base.cpp\n> > > > > > > @@ -367,6 +367,7 @@ V4L2DeviceFormat PipelineHandlerBase::toV4L2DeviceFormat(const V4L2VideoDevice *\n> > > > > > >         deviceFormat.planesCount = info.numPlanes();\n> > > > > > >         deviceFormat.fourcc = dev->toV4L2PixelFormat(stream->pixelFormat);\n> > > > > > >         deviceFormat.size = stream->size;\n> > > > > > > +       deviceFormat.planes[0].bpl = stream->stride;\n> > > > >\n> > > > > Shouldn't the stride be set for all planes ?\n> > > >\n> > > > As there isn't any per-plane stride information in the stream\n> > > > configuration, and our pipeline handler only reads the stride from the\n> > > > first plane, I think it's safer to only set the stride for the first\n> > > > plane in this configuration.\n> > >\n> > > From a libcamera API point of view, we've opted for a single stride\n> > > value related to the first plane, with the stride of the other planes\n> > > derived from the first plane. The rationale is that not all hardware\n> > > platforms would allow configuration of the stride per-plane, and we\n> > > haven't come across use cases for per-plane stride values.\n> > >\n> > > From a V4L2 point of view, however, the stride is defined per plane.\n> > > Unless I'm mistaken, Pi 4 supports the single planar API only (formats\n> > > with multiple planes, such as NV12, use a single V4L2 plane to store all\n> > > the planes), but Pi 5 uses the V4L2 multi planar API. As this patch is\n> > > for common code, I think it would be best to initialize all the planes\n> > > correctly instead of relying on the kernel driver to fix the values.\n> >\n> > Pi 5 supports the multiplanar API, but we still only use single-plane\n> > formats within it.  Lots of things would need to be fixed up if we\n> > switched to use true multiplanar buffers.\n>\n> I may be missing something, but aren't these formats multi-planar\n> https://github.com/raspberrypi/linux/blob/rpi-6.1.y/drivers/media/platform/raspberrypi/pisp_be/pisp_be_formats.h#L127\n> ?\n\nThe kernel driver supports them, but unless I am mistaken libcamera\nwill only ever use the single-plane variants for the pisp/vc4 pipeline\nhandlers.\n\nRegards,\nNaush\n\n>\n> > > > > > >         deviceFormat.colorSpace = stream->colorSpace;\n> > > > > > >\n> > > > > > >         return deviceFormat;\n>\n> --\n> Regards,\n>\n> Laurent Pinchart","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 C9E7BC3237\n\tfor <parsemail@patchwork.libcamera.org>;\n\tThu, 21 Dec 2023 15:58:13 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 1BED162B40;\n\tThu, 21 Dec 2023 16:58:13 +0100 (CET)","from mail-yb1-xb2e.google.com (mail-yb1-xb2e.google.com\n\t[IPv6:2607:f8b0:4864:20::b2e])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 2B6DB629E3\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tThu, 21 Dec 2023 16:58:11 +0100 (CET)","by mail-yb1-xb2e.google.com with SMTP id\n\t3f1490d57ef6-dbd73cc1e52so897690276.0\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tThu, 21 Dec 2023 07:58:11 -0800 (PST)"],"DKIM-Signature":["v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org;\n\ts=mail; t=1703174293;\n\tbh=6+w85fFcBtkAp7qJ9uhkoUB8VmlTHSsQJAI5MI9KvpA=;\n\th=References:In-Reply-To:Date:To:Subject:List-Id:List-Unsubscribe:\n\tList-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:Cc:\n\tFrom;\n\tb=H9fosjhvYxh168Yvv2fmuGVkZjj1Lnx0tZ8rWKuNKrdQm5yhsGlXDHYVHyvgkHrQU\n\tbFtuo+Q2OLEkrEF6LVgmTfaPPAiNc9qqMAActzUF2NUAsCE/T4btGO6Mvi24k85gTT\n\tQjy6Qlj8qhgGju+YETOPw8agnpe7iprimJdgXb63Ww6whdTCj6RwkKckWqfT8xRU+l\n\t4yZX7NmRQjnbagSch7XwuyiG9aWrQnYG8FbkEf3QSkBP4zsHIVkc22E+1olt7HuYjA\n\tKM4rPAaJKukRR7bnLpNzHb/yyXkAGnPHb00uDdhJO7g/Ey1i1Xi7Xn4PRUGEMgwkSL\n\t3nj8xmYFKRy8g==","v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=raspberrypi.com; s=google; t=1703174290; x=1703779090;\n\tdarn=lists.libcamera.org; \n\th=cc:to:subject:message-id:date:from:in-reply-to:references\n\t:mime-version:from:to:cc:subject:date:message-id:reply-to;\n\tbh=Kfr6I/hMZjEQbzuEKwfZ237ztjffmFX+n+UtEn6pkhM=;\n\tb=RhObHCd5hAbp1zVmuSJ2znzIkIBzhIs6Fgeeriv3MVShma49LQUGYEeXXI9MkWefow\n\tsyKv9YsLR01qr9fK7C9jReYiRZMfwI1Yl1p4DCK/hhdmVk5+Qu7Xw9pB7iX2m72I21N7\n\tCAqSgIVS7XtXNippb2ZNlDmZaAqGFn3o36I5gj6IRUY7baXhhEiWzksCuxhU6WD95GB4\n\tBIkk4YnBoSzjB60Yxo/sWzzXyotd8njsHBJ8qR6AHFVgN+aNkk2ok2TrJ+ZeoP5Eopz/\n\tBIV450t3O+I53IDpJeWoK/H8em4cH//UEpzQfMGt9n6JmffLqV64D5IMNfrVHy9M+zLY\n\twsxA=="],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (2048-bit key; \n\tunprotected) header.d=raspberrypi.com\n\theader.i=@raspberrypi.com\n\theader.b=\"RhObHCd5\"; dkim-atps=neutral","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20230601; t=1703174290; x=1703779090;\n\th=cc:to:subject:message-id:date:from:in-reply-to:references\n\t:mime-version:x-gm-message-state:from:to:cc:subject:date:message-id\n\t:reply-to;\n\tbh=Kfr6I/hMZjEQbzuEKwfZ237ztjffmFX+n+UtEn6pkhM=;\n\tb=MspUFPsXywG5VWbeyZkdy2NjFDzVEkcRXhnRkIh/AzRcquOrQgteziW9og5XZnQcUy\n\tr/yVx1yrU4mJhsThGI9yypjDCvGfp4Yem446NFCFtNXiiJjppg5JlFiIPMd1+q8f3r2N\n\tCiYi7uIE8phgPLJz9ibIPv5FBSxvSbEXRJJFzaJoAulnblFvusgYODBbXRXz6ktNgmMr\n\tDlgpteJL9FTTJ0CT2RNRXdyipnxjw1L0G8UeVYn7eVraY4YEvEP4PvbWVtUqXmb2Rcio\n\tCQlDx+Gtq24UoFdS9kqUbejkDt2tAXHS0F9pkaqSWnmiA+gyw0EIX1GveoAsENTrS/RT\n\tBNIQ==","X-Gm-Message-State":"AOJu0YwkErsC5vdpKoavicoZoQ/C+fux1f1mICkkYfkQgwHz90+RCXWz\n\tU0nVMW28UAzd5lEY80O5DMvpBKBX8STdHA3jtoEoqkNrnyU8lhou","X-Google-Smtp-Source":"AGHT+IEVTMGEeVgiFjfm3AIjnPJBUEOdAxyRw+pXe/DZjVcIRd7u+7TNgp7kcXHSfvNX8ZYFs+CmeTc/qpPcY6a0X1M=","X-Received":"by 2002:a25:add8:0:b0:d9a:e397:3b4 with SMTP id\n\td24-20020a25add8000000b00d9ae39703b4mr1319316ybe.46.1703174289762;\n\tThu, 21 Dec 2023 07:58:09 -0800 (PST)","MIME-Version":"1.0","References":"<20231211171406.37827-1-william.vinnicombe@raspberrypi.com>\n\t<CAHW6GYJ=heCbDCVLOCpW6tFXKi6wjzK=aWU3Q5TMwAgLwozTHg@mail.gmail.com>\n\t<20231212100840.GN27535@pendragon.ideasonboard.com>\n\t<CAA9M1nU0ztuzpvhNFKa7HkXHNS6XJXaYpjdbnfdPCSn_MBo10g@mail.gmail.com>\n\t<20231218035045.GO5290@pendragon.ideasonboard.com>\n\t<CAEmqJPqMH1nroYE56iX9WOVFoqGAfg+phZU+upWu4zpwmvwp_w@mail.gmail.com>\n\t<20231221154403.GB13598@pendragon.ideasonboard.com>","In-Reply-To":"<20231221154403.GB13598@pendragon.ideasonboard.com>","Date":"Thu, 21 Dec 2023 15:57:35 +0000","Message-ID":"<CAEmqJPp34igBo0EHqPzNUjKBEffDm=63yM1yO1R5tubicW3efA@mail.gmail.com>","To":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","Content-Type":"text/plain; charset=\"UTF-8\"","Subject":"Re: [libcamera-devel] [PATCH] pipeline: rpi: Respect provided stride","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":"Naushir Patuck via libcamera-devel\n\t<libcamera-devel@lists.libcamera.org>","Reply-To":"Naushir Patuck <naush@raspberrypi.com>","Cc":"libcamera-devel@lists.libcamera.org","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":28353,"web_url":"https://patchwork.libcamera.org/comment/28353/","msgid":"<20231221162642.GC13598@pendragon.ideasonboard.com>","date":"2023-12-21T16:26:42","subject":"Re: [libcamera-devel] [PATCH] pipeline: rpi: Respect provided stride","submitter":{"id":2,"url":"https://patchwork.libcamera.org/api/people/2/","name":"Laurent Pinchart","email":"laurent.pinchart@ideasonboard.com"},"content":"On Thu, Dec 21, 2023 at 03:57:35PM +0000, Naushir Patuck wrote:\n> On Thu, 21 Dec 2023 at 15:43, Laurent Pinchart wrote:\n> > On Mon, Dec 18, 2023 at 08:52:33AM +0000, Naushir Patuck wrote:\n> > > On Mon, 18 Dec 2023 at 03:50, Laurent Pinchart via libcamera-devel wrote:\n> > > > On Tue, Dec 12, 2023 at 01:24:52PM +0000, William Vinnicombe wrote:\n> > > > > On Tue, 12 Dec 2023 at 10:08, Laurent Pinchart wrote:\n> > > > > > On Tue, Dec 12, 2023 at 09:56:22AM +0000, David Plowman via libcamera-devel wrote:\n> > > > > > > On Mon, 11 Dec 2023 at 17:14, William Vinnicombe via libcamera-devel wrote:\n> > > > > > > >\n> > > > > > > > When converting from StreamConfiguration to V4L2DeviceFormat, the stride\n> > > > > > > > was being dropped.\n> > > > > > >\n> > > > > > > I might add a \"with the result that users could not request a custom\n> > > > > > > stride\" (a bit like playing consequences!) just for the extra\n> > > > > > > clarification... but with or without that it looks good to me:\n> > > > > >\n> > > > > > That looks like a nice addition, I can update the commit message when\n> > > > > > pushing if a v2 is not needed.\n> > > > >\n> > > > > That sounds good, thanks\n> > > > >\n> > > > > > > Reviewed-by: David Plowman <david.plowman@raspberrypi.com>\n> > > > > > >\n> > > > > > > > Set the stride in the V4L2DeviceFormat to prevent this happening.\n> > > > > > > >\n> > > > > > > > Signed-off-by: William Vinnicombe <william.vinnicombe@raspberrypi.com>\n> > > > > > > > ---\n> > > > > > > >  src/libcamera/pipeline/rpi/common/pipeline_base.cpp | 1 +\n> > > > > > > >  1 file changed, 1 insertion(+)\n> > > > > > > >\n> > > > > > > > diff --git a/src/libcamera/pipeline/rpi/common/pipeline_base.cpp b/src/libcamera/pipeline/rpi/common/pipeline_base.cpp\n> > > > > > > > index 9f788c9d..5afa8dbb 100644\n> > > > > > > > --- a/src/libcamera/pipeline/rpi/common/pipeline_base.cpp\n> > > > > > > > +++ b/src/libcamera/pipeline/rpi/common/pipeline_base.cpp\n> > > > > > > > @@ -367,6 +367,7 @@ V4L2DeviceFormat PipelineHandlerBase::toV4L2DeviceFormat(const V4L2VideoDevice *\n> > > > > > > >         deviceFormat.planesCount = info.numPlanes();\n> > > > > > > >         deviceFormat.fourcc = dev->toV4L2PixelFormat(stream->pixelFormat);\n> > > > > > > >         deviceFormat.size = stream->size;\n> > > > > > > > +       deviceFormat.planes[0].bpl = stream->stride;\n> > > > > >\n> > > > > > Shouldn't the stride be set for all planes ?\n> > > > >\n> > > > > As there isn't any per-plane stride information in the stream\n> > > > > configuration, and our pipeline handler only reads the stride from the\n> > > > > first plane, I think it's safer to only set the stride for the first\n> > > > > plane in this configuration.\n> > > >\n> > > > From a libcamera API point of view, we've opted for a single stride\n> > > > value related to the first plane, with the stride of the other planes\n> > > > derived from the first plane. The rationale is that not all hardware\n> > > > platforms would allow configuration of the stride per-plane, and we\n> > > > haven't come across use cases for per-plane stride values.\n> > > >\n> > > > From a V4L2 point of view, however, the stride is defined per plane.\n> > > > Unless I'm mistaken, Pi 4 supports the single planar API only (formats\n> > > > with multiple planes, such as NV12, use a single V4L2 plane to store all\n> > > > the planes), but Pi 5 uses the V4L2 multi planar API. As this patch is\n> > > > for common code, I think it would be best to initialize all the planes\n> > > > correctly instead of relying on the kernel driver to fix the values.\n> > >\n> > > Pi 5 supports the multiplanar API, but we still only use single-plane\n> > > formats within it.  Lots of things would need to be fixed up if we\n> > > switched to use true multiplanar buffers.\n> >\n> > I may be missing something, but aren't these formats multi-planar\n> > https://github.com/raspberrypi/linux/blob/rpi-6.1.y/drivers/media/platform/raspberrypi/pisp_be/pisp_be_formats.h#L127\n> > ?\n> \n> The kernel driver supports them, but unless I am mistaken libcamera\n> will only ever use the single-plane variants for the pisp/vc4 pipeline\n> handlers.\n\nAh right. OK, let's ignore it for now. It would be nice to use those\nformats in the future though.\n\nI'll merge this patch.\n\n> > > > > > > >         deviceFormat.colorSpace = stream->colorSpace;\n> > > > > > > >\n> > > > > > > >         return deviceFormat;","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 53065C31E9\n\tfor <parsemail@patchwork.libcamera.org>;\n\tThu, 21 Dec 2023 16:26:38 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id BB43662B40;\n\tThu, 21 Dec 2023 17:26:37 +0100 (CET)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 6435B629E3\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tThu, 21 Dec 2023 17:26:36 +0100 (CET)","from pendragon.ideasonboard.com (213-243-189-158.bb.dnainternet.fi\n\t[213.243.189.158])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 1810B27C;\n\tThu, 21 Dec 2023 17:25:45 +0100 (CET)"],"DKIM-Signature":["v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org;\n\ts=mail; t=1703175997;\n\tbh=2gfH7SMzCvksobZPJaozHD6HCgQwTh1T/KLwB2m/PcQ=;\n\th=Date:To:References:In-Reply-To:Subject:List-Id:List-Unsubscribe:\n\tList-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:Cc:\n\tFrom;\n\tb=3Nx9GzpoaAW3MCIyt1EGjZrj1P84JpbKqh4u7+i2FZz0XylwnR8xAuwdmDP1dme2f\n\t0/O+DrqtYQllErLDXNOxfbNB/9Eyfp1gBaQQ2JZSjA2YT5l3kQ0qNNd1oBSyicoXLw\n\tcbXHGQLpuiwb3YxG3/IA/b2HIYPM7CXMfnJsXAHW3rOPATz8TCwehQlWeMiQjgIEz+\n\tQby2OkShCP3DxjSPUwyfSzAYJ4GS7ZBdvn4IJp8xGKGQc24nyp14GBIVdqaVJFt2EO\n\t4dqvL0dhuK7kNH5NGvn2Lt2i2/JtcdxG5OAY5f0Y1m/oHEcSFupn3bN5UFAHQzQYyH\n\tM3IEjymSK5NPw==","v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1703175945;\n\tbh=2gfH7SMzCvksobZPJaozHD6HCgQwTh1T/KLwB2m/PcQ=;\n\th=Date:From:To:Cc:Subject:References:In-Reply-To:From;\n\tb=IXE4C8CS4BsH2pjZTsmmpTHqyXPDQbtapfA87yRk8eiI3AVJwwiehRpHkskuCxiEq\n\tpXG70sPD+TWfddKy72JPmfPilg2WjtHsPs+zLnMUgbV1Eudp9ExUvWy5Sb55orSvAC\n\tbwHrFX0rdERaxLIja/II2BFr6ITW9MVyTYiEUh6E="],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key; \n\tunprotected) header.d=ideasonboard.com\n\theader.i=@ideasonboard.com\n\theader.b=\"IXE4C8CS\"; dkim-atps=neutral","Date":"Thu, 21 Dec 2023 18:26:42 +0200","To":"Naushir Patuck <naush@raspberrypi.com>","Message-ID":"<20231221162642.GC13598@pendragon.ideasonboard.com>","References":"<20231211171406.37827-1-william.vinnicombe@raspberrypi.com>\n\t<CAHW6GYJ=heCbDCVLOCpW6tFXKi6wjzK=aWU3Q5TMwAgLwozTHg@mail.gmail.com>\n\t<20231212100840.GN27535@pendragon.ideasonboard.com>\n\t<CAA9M1nU0ztuzpvhNFKa7HkXHNS6XJXaYpjdbnfdPCSn_MBo10g@mail.gmail.com>\n\t<20231218035045.GO5290@pendragon.ideasonboard.com>\n\t<CAEmqJPqMH1nroYE56iX9WOVFoqGAfg+phZU+upWu4zpwmvwp_w@mail.gmail.com>\n\t<20231221154403.GB13598@pendragon.ideasonboard.com>\n\t<CAEmqJPp34igBo0EHqPzNUjKBEffDm=63yM1yO1R5tubicW3efA@mail.gmail.com>","MIME-Version":"1.0","Content-Type":"text/plain; charset=utf-8","Content-Disposition":"inline","In-Reply-To":"<CAEmqJPp34igBo0EHqPzNUjKBEffDm=63yM1yO1R5tubicW3efA@mail.gmail.com>","Subject":"Re: [libcamera-devel] [PATCH] pipeline: rpi: Respect provided stride","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":"Laurent Pinchart via libcamera-devel\n\t<libcamera-devel@lists.libcamera.org>","Reply-To":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","Cc":"libcamera-devel@lists.libcamera.org","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}}]