[{"id":15493,"web_url":"https://patchwork.libcamera.org/comment/15493/","msgid":"<20210305195838.3i44dv3k4vzlps3n@uno.localdomain>","date":"2021-03-05T19:58:38","subject":"Re: [libcamera-devel] [PATCH] android: camera_device: Update\n\tgralloc usage flags for streams","submitter":{"id":3,"url":"https://patchwork.libcamera.org/api/people/3/","name":"Jacopo Mondi","email":"jacopo@jmondi.org"},"content":"Hi Laurent,\n\nOn Fri, Mar 05, 2021 at 01:56:28PM +0200, Laurent Pinchart wrote:\n> When configuring streams, the camera HAL is supposed to update the\n> gralloc usage flags to reflect the operations it will need to do on the\n> stream buffers. Failure to do so leads to incorrect format selection by\n> gralloc for the HAL_PIXEL_FORMAT_IMPLEMENTATION_DEFINED format, as\n> gralloc will not take into consideration the need of the camera to\n> access the buffers.\n\nYou know how happy this makes me!\n\nI've tested with OpenCamera and run CTS without noticing regressions,\nso please add\nTested-by: Jacopo Mondi <jacopo@jmondi.org>\n\nThanks\n j\n\n\n>\n> Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n> ---\n>  src/android/camera_device.cpp | 16 +++++++++++++++-\n>  1 file changed, 15 insertions(+), 1 deletion(-)\n>\n> diff --git a/src/android/camera_device.cpp b/src/android/camera_device.cpp\n> index ae01c362559e..3ee683705d00 100644\n> --- a/src/android/camera_device.cpp\n> +++ b/src/android/camera_device.cpp\n> @@ -1539,6 +1539,9 @@ int CameraDevice::configureStreams(camera3_stream_configuration_t *stream_list)\n>  \t\tstreamConfig.config.size = size;\n>  \t\tstreamConfig.config.pixelFormat = format;\n>  \t\tstreamConfigs.push_back(std::move(streamConfig));\n> +\n> +\t\t/* This stream will be produced by hardware. */\n> +\t\tstream->usage |= GRALLOC_USAGE_HW_CAMERA_WRITE;\n>  \t}\n>\n>  \t/* Now handle the MJPEG streams, adding a new stream if required. */\n> @@ -1548,7 +1551,8 @@ int CameraDevice::configureStreams(camera3_stream_configuration_t *stream_list)\n>\n>  \t\t/* Search for a compatible stream in the non-JPEG ones. */\n>  \t\tfor (size_t i = 0; i < streamConfigs.size(); ++i) {\n> -\t\t\tconst auto &cfg = streamConfigs[i].config;\n> +\t\t\tCamera3StreamConfig &streamConfig = streamConfigs[i];\n> +\t\t\tconst auto &cfg = streamConfig.config;\n>\n>  \t\t\t/*\n>  \t\t\t * \\todo The PixelFormat must also be compatible with\n> @@ -1563,6 +1567,13 @@ int CameraDevice::configureStreams(camera3_stream_configuration_t *stream_list)\n>\n>  \t\t\ttype = CameraStream::Type::Mapped;\n>  \t\t\tindex = i;\n> +\n> +\t\t\t/*\n> +\t\t\t * The source stream will be read by software to\n> +\t\t\t * produce the JPEG stream.\n> +\t\t\t */\n> +\t\t\tcamera3_stream_t *stream = streamConfig.streams[0].stream;\n> +\t\t\tstream->usage |= GRALLOC_USAGE_SW_READ_OFTEN;\n>  \t\t\tbreak;\n>  \t\t}\n>\n> @@ -1590,6 +1601,9 @@ int CameraDevice::configureStreams(camera3_stream_configuration_t *stream_list)\n>  \t\t\tindex = streamConfigs.size() - 1;\n>  \t\t}\n>\n> +\t\t/* The JPEG stream will be produced by software. */\n> +\t\tjpegStream->usage |= GRALLOC_USAGE_SW_WRITE_OFTEN;\n> +\n>  \t\tstreamConfigs[index].streams.push_back({ jpegStream, type });\n>  \t}\n>\n> --\n> Regards,\n>\n> Laurent Pinchart\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 C9266BD1F1\n\tfor <parsemail@patchwork.libcamera.org>;\n\tFri,  5 Mar 2021 19:58:11 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 86AD768A9A;\n\tFri,  5 Mar 2021 20:58:11 +0100 (CET)","from relay7-d.mail.gandi.net (relay7-d.mail.gandi.net\n\t[217.70.183.200])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id A36E768A99\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tFri,  5 Mar 2021 20:58:10 +0100 (CET)","from uno.localdomain (host-79-22-58-175.retail.telecomitalia.it\n\t[79.22.58.175]) (Authenticated sender: jacopo@jmondi.org)\n\tby relay7-d.mail.gandi.net (Postfix) with ESMTPSA id 16D7320007;\n\tFri,  5 Mar 2021 19:58:09 +0000 (UTC)"],"X-Originating-IP":"79.22.58.175","Date":"Fri, 5 Mar 2021 20:58:38 +0100","From":"Jacopo Mondi <jacopo@jmondi.org>","To":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","Message-ID":"<20210305195838.3i44dv3k4vzlps3n@uno.localdomain>","References":"<20210305115628.19811-1-laurent.pinchart@ideasonboard.com>","MIME-Version":"1.0","Content-Disposition":"inline","In-Reply-To":"<20210305115628.19811-1-laurent.pinchart@ideasonboard.com>","Subject":"Re: [libcamera-devel] [PATCH] android: camera_device: Update\n\tgralloc usage flags for streams","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>","Cc":"libcamera-devel@lists.libcamera.org","Content-Type":"text/plain; charset=\"us-ascii\"","Content-Transfer-Encoding":"7bit","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":15495,"web_url":"https://patchwork.libcamera.org/comment/15495/","msgid":"<20210305201913.ssxlbu3zwq3bbgo5@uno.localdomain>","date":"2021-03-05T20:19:13","subject":"Re: [libcamera-devel] [PATCH] android: camera_device: Update\n\tgralloc usage flags for streams","submitter":{"id":3,"url":"https://patchwork.libcamera.org/api/people/3/","name":"Jacopo Mondi","email":"jacopo@jmondi.org"},"content":"Oh and I forgot, tested-by implies\nReviewed-by: Jacopo Mondi <jacopo@jmondi.org>\n\nOn Fri, Mar 05, 2021 at 01:56:28PM +0200, Laurent Pinchart wrote:\n> When configuring streams, the camera HAL is supposed to update the\n> gralloc usage flags to reflect the operations it will need to do on the\n> stream buffers. Failure to do so leads to incorrect format selection by\n> gralloc for the HAL_PIXEL_FORMAT_IMPLEMENTATION_DEFINED format, as\n> gralloc will not take into consideration the need of the camera to\n> access the buffers.\n>\n> Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n> ---\n>  src/android/camera_device.cpp | 16 +++++++++++++++-\n>  1 file changed, 15 insertions(+), 1 deletion(-)\n>\n> diff --git a/src/android/camera_device.cpp b/src/android/camera_device.cpp\n> index ae01c362559e..3ee683705d00 100644\n> --- a/src/android/camera_device.cpp\n> +++ b/src/android/camera_device.cpp\n> @@ -1539,6 +1539,9 @@ int CameraDevice::configureStreams(camera3_stream_configuration_t *stream_list)\n>  \t\tstreamConfig.config.size = size;\n>  \t\tstreamConfig.config.pixelFormat = format;\n>  \t\tstreamConfigs.push_back(std::move(streamConfig));\n> +\n> +\t\t/* This stream will be produced by hardware. */\n> +\t\tstream->usage |= GRALLOC_USAGE_HW_CAMERA_WRITE;\n>  \t}\n>\n>  \t/* Now handle the MJPEG streams, adding a new stream if required. */\n> @@ -1548,7 +1551,8 @@ int CameraDevice::configureStreams(camera3_stream_configuration_t *stream_list)\n>\n>  \t\t/* Search for a compatible stream in the non-JPEG ones. */\n>  \t\tfor (size_t i = 0; i < streamConfigs.size(); ++i) {\n> -\t\t\tconst auto &cfg = streamConfigs[i].config;\n> +\t\t\tCamera3StreamConfig &streamConfig = streamConfigs[i];\n> +\t\t\tconst auto &cfg = streamConfig.config;\n>\n>  \t\t\t/*\n>  \t\t\t * \\todo The PixelFormat must also be compatible with\n> @@ -1563,6 +1567,13 @@ int CameraDevice::configureStreams(camera3_stream_configuration_t *stream_list)\n>\n>  \t\t\ttype = CameraStream::Type::Mapped;\n>  \t\t\tindex = i;\n> +\n> +\t\t\t/*\n> +\t\t\t * The source stream will be read by software to\n> +\t\t\t * produce the JPEG stream.\n> +\t\t\t */\n> +\t\t\tcamera3_stream_t *stream = streamConfig.streams[0].stream;\n> +\t\t\tstream->usage |= GRALLOC_USAGE_SW_READ_OFTEN;\n>  \t\t\tbreak;\n>  \t\t}\n>\n> @@ -1590,6 +1601,9 @@ int CameraDevice::configureStreams(camera3_stream_configuration_t *stream_list)\n>  \t\t\tindex = streamConfigs.size() - 1;\n>  \t\t}\n>\n> +\t\t/* The JPEG stream will be produced by software. */\n> +\t\tjpegStream->usage |= GRALLOC_USAGE_SW_WRITE_OFTEN;\n> +\n>  \t\tstreamConfigs[index].streams.push_back({ jpegStream, type });\n>  \t}\n>\n> --\n> Regards,\n>\n> Laurent Pinchart\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 E9462BD80C\n\tfor <parsemail@patchwork.libcamera.org>;\n\tFri,  5 Mar 2021 20:18:47 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 8046168A99;\n\tFri,  5 Mar 2021 21:18:47 +0100 (CET)","from relay12.mail.gandi.net (relay12.mail.gandi.net\n\t[217.70.178.232])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id E6D5768A69\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tFri,  5 Mar 2021 21:18:45 +0100 (CET)","from uno.localdomain (host-79-22-58-175.retail.telecomitalia.it\n\t[79.22.58.175]) (Authenticated sender: jacopo@jmondi.org)\n\tby relay12.mail.gandi.net (Postfix) with ESMTPSA id 324BB200004;\n\tFri,  5 Mar 2021 20:18:44 +0000 (UTC)"],"Date":"Fri, 5 Mar 2021 21:19:13 +0100","From":"Jacopo Mondi <jacopo@jmondi.org>","To":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","Message-ID":"<20210305201913.ssxlbu3zwq3bbgo5@uno.localdomain>","References":"<20210305115628.19811-1-laurent.pinchart@ideasonboard.com>","MIME-Version":"1.0","Content-Disposition":"inline","In-Reply-To":"<20210305115628.19811-1-laurent.pinchart@ideasonboard.com>","Subject":"Re: [libcamera-devel] [PATCH] android: camera_device: Update\n\tgralloc usage flags for streams","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>","Cc":"libcamera-devel@lists.libcamera.org","Content-Type":"text/plain; charset=\"us-ascii\"","Content-Transfer-Encoding":"7bit","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":15496,"web_url":"https://patchwork.libcamera.org/comment/15496/","msgid":"<YEQEafIiFg4ws7W5@oden.dyn.berto.se>","date":"2021-03-06T22:38:33","subject":"Re: [libcamera-devel] [PATCH] android: camera_device: Update\n\tgralloc usage flags for streams","submitter":{"id":5,"url":"https://patchwork.libcamera.org/api/people/5/","name":"Niklas Söderlund","email":"niklas.soderlund@ragnatech.se"},"content":"Hi Laurent,\n\nThanks for your work.\n\nOn 2021-03-05 13:56:28 +0200, Laurent Pinchart wrote:\n> When configuring streams, the camera HAL is supposed to update the\n> gralloc usage flags to reflect the operations it will need to do on the\n> stream buffers. Failure to do so leads to incorrect format selection by\n> gralloc for the HAL_PIXEL_FORMAT_IMPLEMENTATION_DEFINED format, as\n> gralloc will not take into consideration the need of the camera to\n> access the buffers.\n> \n> Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n\nThis indeed fixes the OpenCamera issue.\n\nReviewed-by: Niklas Söderlund <niklas.soderlund@ragnatech.se>\n\n> ---\n>  src/android/camera_device.cpp | 16 +++++++++++++++-\n>  1 file changed, 15 insertions(+), 1 deletion(-)\n> \n> diff --git a/src/android/camera_device.cpp b/src/android/camera_device.cpp\n> index ae01c362559e..3ee683705d00 100644\n> --- a/src/android/camera_device.cpp\n> +++ b/src/android/camera_device.cpp\n> @@ -1539,6 +1539,9 @@ int CameraDevice::configureStreams(camera3_stream_configuration_t *stream_list)\n>  \t\tstreamConfig.config.size = size;\n>  \t\tstreamConfig.config.pixelFormat = format;\n>  \t\tstreamConfigs.push_back(std::move(streamConfig));\n> +\n> +\t\t/* This stream will be produced by hardware. */\n> +\t\tstream->usage |= GRALLOC_USAGE_HW_CAMERA_WRITE;\n>  \t}\n>  \n>  \t/* Now handle the MJPEG streams, adding a new stream if required. */\n> @@ -1548,7 +1551,8 @@ int CameraDevice::configureStreams(camera3_stream_configuration_t *stream_list)\n>  \n>  \t\t/* Search for a compatible stream in the non-JPEG ones. */\n>  \t\tfor (size_t i = 0; i < streamConfigs.size(); ++i) {\n> -\t\t\tconst auto &cfg = streamConfigs[i].config;\n> +\t\t\tCamera3StreamConfig &streamConfig = streamConfigs[i];\n> +\t\t\tconst auto &cfg = streamConfig.config;\n>  \n>  \t\t\t/*\n>  \t\t\t * \\todo The PixelFormat must also be compatible with\n> @@ -1563,6 +1567,13 @@ int CameraDevice::configureStreams(camera3_stream_configuration_t *stream_list)\n>  \n>  \t\t\ttype = CameraStream::Type::Mapped;\n>  \t\t\tindex = i;\n> +\n> +\t\t\t/*\n> +\t\t\t * The source stream will be read by software to\n> +\t\t\t * produce the JPEG stream.\n> +\t\t\t */\n> +\t\t\tcamera3_stream_t *stream = streamConfig.streams[0].stream;\n> +\t\t\tstream->usage |= GRALLOC_USAGE_SW_READ_OFTEN;\n>  \t\t\tbreak;\n>  \t\t}\n>  \n> @@ -1590,6 +1601,9 @@ int CameraDevice::configureStreams(camera3_stream_configuration_t *stream_list)\n>  \t\t\tindex = streamConfigs.size() - 1;\n>  \t\t}\n>  \n> +\t\t/* The JPEG stream will be produced by software. */\n> +\t\tjpegStream->usage |= GRALLOC_USAGE_SW_WRITE_OFTEN;\n> +\n>  \t\tstreamConfigs[index].streams.push_back({ jpegStream, type });\n>  \t}\n>  \n> -- \n> Regards,\n> \n> Laurent Pinchart\n> \n> _______________________________________________\n> libcamera-devel mailing list\n> libcamera-devel@lists.libcamera.org\n> https://lists.libcamera.org/listinfo/libcamera-devel","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 13E4ABD80C\n\tfor <parsemail@patchwork.libcamera.org>;\n\tSat,  6 Mar 2021 22:38:39 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 696E0602E8;\n\tSat,  6 Mar 2021 23:38:38 +0100 (CET)","from mail-lf1-x12e.google.com (mail-lf1-x12e.google.com\n\t[IPv6:2a00:1450:4864:20::12e])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 56AA460106\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tSat,  6 Mar 2021 23:38:36 +0100 (CET)","by mail-lf1-x12e.google.com with SMTP id f1so12898772lfu.3\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tSat, 06 Mar 2021 14:38:36 -0800 (PST)","from localhost (h-209-203.A463.priv.bahnhof.se. [155.4.209.203])\n\tby smtp.gmail.com with ESMTPSA id\n\tl15sm785626lfg.272.2021.03.06.14.38.34\n\t(version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n\tSat, 06 Mar 2021 14:38:34 -0800 (PST)"],"Authentication-Results":"lancelot.ideasonboard.com;\n\tdkim=fail reason=\"signature verification failed\" (2048-bit key;\n\tunprotected) header.d=ragnatech-se.20150623.gappssmtp.com\n\theader.i=@ragnatech-se.20150623.gappssmtp.com\n\theader.b=\"xdgTqcy1\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=ragnatech-se.20150623.gappssmtp.com; s=20150623;\n\th=date:from:to:cc:subject:message-id:references:mime-version\n\t:content-disposition:content-transfer-encoding:in-reply-to;\n\tbh=vsK1BjZDJ8XDveLBQ4Jops3WA9HPg4BWMxrUCYRcaSg=;\n\tb=xdgTqcy1ou9dc20ZMAu7aDHleh1mEayTX6vbCCmuNNjDfXvJ9NCU6IUwvWaVB4h1mI\n\tETo5x9m3UuD9LfspBngXNQrYLsteLcgISgVBUkmeTUZlFgYVzL6Jzj4ImtT8uthymL9T\n\tLHmIoQDJkU3AYT1rYcWCLTgAX88n5Vc2Ne5nZ11Y/mTv/zKo/EytmjpP0hNR3PIgJsi8\n\t97eNsVtQJVAMw/gLbNcSqMEt82Exh48iI7aLI787VKW6Z8zHerZyX6qhowrPBfTGjUQ0\n\t9rA9wDIpO6hHwJ59MnM9f53MAYtu3qy3DOW7SiekcdAzBlB3MCuq6NAdo4JXbUaltDG/\n\tgmAg==","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20161025;\n\th=x-gm-message-state:date:from:to:cc:subject:message-id:references\n\t:mime-version:content-disposition:content-transfer-encoding\n\t:in-reply-to;\n\tbh=vsK1BjZDJ8XDveLBQ4Jops3WA9HPg4BWMxrUCYRcaSg=;\n\tb=aJV3UPponQ/OaW0YdSSGQzabTH+neSUx2mCRdfKkweae060rvNPd0sxrtlTXbpozDl\n\tEbYlyWPgX8s7T5ghy7agZxW7oa2VbxrUNGLojG3I88U+ilH7J05gf3/JvK0ItGhLd+nq\n\t9lbactO8rfdBafE5W8kGRuSghrsE3naMkd+LH1VwwaN17qMjIml+iHzyeAjmT+ru6J5c\n\twNrdNGr4ddQ8E19NH5LlRpKPoDsHnmLHbzJoA0lrlEgSqXgEXjapDEooUp78ICN2a3wE\n\tRG6XJXv2fYzK2tSlxft9lRv11HfMgriJSW6IT9q+jvKiVRQH9mlQjlvFYtIIIVUE2d+L\n\tXZRQ==","X-Gm-Message-State":"AOAM531euvYEMGni4IOX+sAdz10yjrbHGOMa5VWOjxJWoSX2cWTq6DF+\n\ttwg7QfzK/wfvFctPmPhzZW8b5g==","X-Google-Smtp-Source":"ABdhPJxKEslEpDIu5f2juxf+OX32f/K9X6Wwxz1kWrkXxOTEJI/qGwzas9wUhGhM75P0ireFJCvTfQ==","X-Received":"by 2002:ac2:47e4:: with SMTP id\n\tb4mr10417995lfp.105.1615070315329; \n\tSat, 06 Mar 2021 14:38:35 -0800 (PST)","Date":"Sat, 6 Mar 2021 23:38:33 +0100","From":"Niklas =?iso-8859-1?q?S=F6derlund?= <niklas.soderlund@ragnatech.se>","To":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","Message-ID":"<YEQEafIiFg4ws7W5@oden.dyn.berto.se>","References":"<20210305115628.19811-1-laurent.pinchart@ideasonboard.com>","MIME-Version":"1.0","Content-Disposition":"inline","In-Reply-To":"<20210305115628.19811-1-laurent.pinchart@ideasonboard.com>","Subject":"Re: [libcamera-devel] [PATCH] android: camera_device: Update\n\tgralloc usage flags for streams","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>","Cc":"libcamera-devel@lists.libcamera.org","Content-Type":"text/plain; charset=\"iso-8859-1\"","Content-Transfer-Encoding":"quoted-printable","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}}]