[{"id":18983,"web_url":"https://patchwork.libcamera.org/comment/18983/","msgid":"<20210820135833.2vbg5valigqi4j7j@uno.localdomain>","date":"2021-08-20T13:58:33","subject":"Re: [libcamera-devel] [PATCH v2 3/3] android: camera_device:\n\tConfigure one stream for identical stream requests","submitter":{"id":3,"url":"https://patchwork.libcamera.org/api/people/3/","name":"Jacopo Mondi","email":"jacopo@jmondi.org"},"content":"Hi Hiro,\n\nOn Fri, Aug 20, 2021 at 05:12:14AM +0900, Hirokazu Honda wrote:\n> An Android HAL client may request identical stream requests. It is\n> redundant that a native camera device produces a separate stream for\n> each of the identical requests.\n> Configure camera one stream configuration for the identical stream\n> requests.\n>\n> Signed-off-by: Hirokazu Honda <hiroh@chromium.org>\n> ---\n>  src/android/camera_device.cpp | 28 +++++++++++++++++++++++-----\n>  1 file changed, 23 insertions(+), 5 deletions(-)\n>\n> diff --git a/src/android/camera_device.cpp b/src/android/camera_device.cpp\n> index a69b687a..88cfd117 100644\n> --- a/src/android/camera_device.cpp\n> +++ b/src/android/camera_device.cpp\n> @@ -617,14 +617,32 @@ int CameraDevice::configureStreams(camera3_stream_configuration_t *stream_list)\n>  \t\t\tcontinue;\n>  \t\t}\n>\n> +\t\t/* This stream will be produced by hardware. */\n> +\t\tstream->usage |= GRALLOC_USAGE_HW_CAMERA_WRITE;\n> +\n> +\t\t/*\n> +\t\t * If a CameraStream with the same size and format of the\n> +\t\t * current stream has already been requested, associate the two.\n> +\t\t */\n> +\t\tauto iter = std::find_if(\n> +\t\t\tstreamConfigs.begin(), streamConfigs.end(),\n> +\t\t\t[size, format](const Camera3StreamConfig &streamConfig) {\n> +\t\t\t\treturn streamConfig.config.size == size &&\n> +\t\t\t\t       streamConfig.config.pixelFormat == format;\n> +\t\t\t});\n> +\t\tif (iter != streamConfigs.end()) {\n> +\t\t\t/* Add usage to copy the buffer in streams[0] to stream. */\n> +\t\t\titer->streams[0].stream->usage |= GRALLOC_USAGE_SW_READ_OFTEN;\n> +\t\t\tstream->usage |= GRALLOC_USAGE_SW_WRITE_OFTEN;\n> +\t\t\titer->streams.push_back({ stream, CameraStream::Type::Mapped });\n> +\t\t\tcontinue;\n> +\t\t}\n> +\n>  \t\tCamera3StreamConfig streamConfig;\n>  \t\tstreamConfig.streams = { { stream, CameraStream::Type::Direct } };\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> @@ -1077,6 +1095,7 @@ void CameraDevice::requestComplete(Request *request)\n>  \tcamera3_capture_result_t captureResult = {};\n>  \tcaptureResult.frame_number = descriptor.frameNumber_;\n>  \tcaptureResult.num_output_buffers = descriptor.buffers_.size();\n> +\t/* Handle post-processing. */\n\nIs this the right place where to move this comment should this replace\n-\t/* Handle any JPEG compression. */\n\n>  \tfor (camera3_stream_buffer_t &buffer : descriptor.buffers_) {\n>  \t\tbuffer.acquire_fence = -1;\n>  \t\tbuffer.release_fence = -1;\n> @@ -1132,12 +1151,11 @@ void CameraDevice::requestComplete(Request *request)\n>  \t\tresultMetadata = std::make_unique<CameraMetadata>(0, 0);\n>  \t}\n>\n> -\t/* Handle any JPEG compression. */\n>  \tfor (camera3_stream_buffer_t &buffer : descriptor.buffers_) {\n>  \t\tCameraStream *cameraStream =\n>  \t\t\tstatic_cast<CameraStream *>(buffer.stream->priv);\n>\n> -\t\tif (cameraStream->camera3Stream().format != HAL_PIXEL_FORMAT_BLOB)\n> +\t\tif (cameraStream->type() == CameraStream::Type::Direct)\n>  \t\t\tcontinue;\n\nExcellent. Minor nit apart\nReviewed-by: Jacopo Mondi <jacopo@jmondi.org>\n\nThanks\n   j\n\n>\n>  \t\tFrameBuffer *src = request->findBuffer(cameraStream->stream());\n> --\n> 2.33.0.rc2.250.ged5fa647cd-goog\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 BE6FABD87C\n\tfor <parsemail@patchwork.libcamera.org>;\n\tFri, 20 Aug 2021 13:57:48 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 46B30688A2;\n\tFri, 20 Aug 2021 15:57:48 +0200 (CEST)","from relay3-d.mail.gandi.net (relay3-d.mail.gandi.net\n\t[217.70.183.195])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 4B0F06888E\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tFri, 20 Aug 2021 15:57:47 +0200 (CEST)","(Authenticated sender: jacopo@jmondi.org)\n\tby relay3-d.mail.gandi.net (Postfix) with ESMTPSA id 51AAD60019;\n\tFri, 20 Aug 2021 13:57:46 +0000 (UTC)"],"Date":"Fri, 20 Aug 2021 15:58:33 +0200","From":"Jacopo Mondi <jacopo@jmondi.org>","To":"Hirokazu Honda <hiroh@chromium.org>","Message-ID":"<20210820135833.2vbg5valigqi4j7j@uno.localdomain>","References":"<20210819201214.1554322-1-hiroh@chromium.org>\n\t<20210819201214.1554322-4-hiroh@chromium.org>","MIME-Version":"1.0","Content-Type":"text/plain; charset=utf-8","Content-Disposition":"inline","In-Reply-To":"<20210819201214.1554322-4-hiroh@chromium.org>","Subject":"Re: [libcamera-devel] [PATCH v2 3/3] android: camera_device:\n\tConfigure one stream for identical stream requests","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","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":18998,"web_url":"https://patchwork.libcamera.org/comment/18998/","msgid":"<CAO5uPHPd3zWDEwYbSp9juRBCqUxkW0M=SCAXQW6f1uVo-iZWxg@mail.gmail.com>","date":"2021-08-23T08:19:13","subject":"Re: [libcamera-devel] [PATCH v2 3/3] android: camera_device:\n\tConfigure one stream for identical stream requests","submitter":{"id":63,"url":"https://patchwork.libcamera.org/api/people/63/","name":"Hirokazu Honda","email":"hiroh@chromium.org"},"content":"Hi Jacopo,\n\nOn Fri, Aug 20, 2021 at 10:57 PM Jacopo Mondi <jacopo@jmondi.org> wrote:\n>\n> Hi Hiro,\n>\n> On Fri, Aug 20, 2021 at 05:12:14AM +0900, Hirokazu Honda wrote:\n> > An Android HAL client may request identical stream requests. It is\n> > redundant that a native camera device produces a separate stream for\n> > each of the identical requests.\n> > Configure camera one stream configuration for the identical stream\n> > requests.\n> >\n> > Signed-off-by: Hirokazu Honda <hiroh@chromium.org>\n> > ---\n> >  src/android/camera_device.cpp | 28 +++++++++++++++++++++++-----\n> >  1 file changed, 23 insertions(+), 5 deletions(-)\n> >\n> > diff --git a/src/android/camera_device.cpp b/src/android/camera_device.cpp\n> > index a69b687a..88cfd117 100644\n> > --- a/src/android/camera_device.cpp\n> > +++ b/src/android/camera_device.cpp\n> > @@ -617,14 +617,32 @@ int CameraDevice::configureStreams(camera3_stream_configuration_t *stream_list)\n> >                       continue;\n> >               }\n> >\n> > +             /* This stream will be produced by hardware. */\n> > +             stream->usage |= GRALLOC_USAGE_HW_CAMERA_WRITE;\n> > +\n> > +             /*\n> > +              * If a CameraStream with the same size and format of the\n> > +              * current stream has already been requested, associate the two.\n> > +              */\n> > +             auto iter = std::find_if(\n> > +                     streamConfigs.begin(), streamConfigs.end(),\n> > +                     [size, format](const Camera3StreamConfig &streamConfig) {\n> > +                             return streamConfig.config.size == size &&\n> > +                                    streamConfig.config.pixelFormat == format;\n> > +                     });\n> > +             if (iter != streamConfigs.end()) {\n> > +                     /* Add usage to copy the buffer in streams[0] to stream. */\n> > +                     iter->streams[0].stream->usage |= GRALLOC_USAGE_SW_READ_OFTEN;\n> > +                     stream->usage |= GRALLOC_USAGE_SW_WRITE_OFTEN;\n> > +                     iter->streams.push_back({ stream, CameraStream::Type::Mapped });\n> > +                     continue;\n> > +             }\n> > +\n> >               Camera3StreamConfig streamConfig;\n> >               streamConfig.streams = { { stream, CameraStream::Type::Direct } };\n> >               streamConfig.config.size = size;\n> >               streamConfig.config.pixelFormat = format;\n> >               streamConfigs.push_back(std::move(streamConfig));\n> > -\n> > -             /* This stream will be produced by hardware. */\n> > -             stream->usage |= GRALLOC_USAGE_HW_CAMERA_WRITE;\n> >       }\n> >\n> >       /* Now handle the MJPEG streams, adding a new stream if required. */\n> > @@ -1077,6 +1095,7 @@ void CameraDevice::requestComplete(Request *request)\n> >       camera3_capture_result_t captureResult = {};\n> >       captureResult.frame_number = descriptor.frameNumber_;\n> >       captureResult.num_output_buffers = descriptor.buffers_.size();\n> > +     /* Handle post-processing. */\n>\n> Is this the right place where to move this comment should this replace\n\nSorry, I don't get your suggestion. Can you rephrase?\n\nRegards,\n-Hiro\n> -       /* Handle any JPEG compression. */\n>\n> >       for (camera3_stream_buffer_t &buffer : descriptor.buffers_) {\n> >               buffer.acquire_fence = -1;\n> >               buffer.release_fence = -1;\n> > @@ -1132,12 +1151,11 @@ void CameraDevice::requestComplete(Request *request)\n> >               resultMetadata = std::make_unique<CameraMetadata>(0, 0);\n> >       }\n> >\n> > -     /* Handle any JPEG compression. */\n> >       for (camera3_stream_buffer_t &buffer : descriptor.buffers_) {\n> >               CameraStream *cameraStream =\n> >                       static_cast<CameraStream *>(buffer.stream->priv);\n> >\n> > -             if (cameraStream->camera3Stream().format != HAL_PIXEL_FORMAT_BLOB)\n> > +             if (cameraStream->type() == CameraStream::Type::Direct)\n> >                       continue;\n>\n> Excellent. Minor nit apart\n> Reviewed-by: Jacopo Mondi <jacopo@jmondi.org>\n>\n> Thanks\n>    j\n>\n> >\n> >               FrameBuffer *src = request->findBuffer(cameraStream->stream());\n> > --\n> > 2.33.0.rc2.250.ged5fa647cd-goog\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 EB0BDBD87C\n\tfor <parsemail@patchwork.libcamera.org>;\n\tMon, 23 Aug 2021 08:19:27 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 7593368892;\n\tMon, 23 Aug 2021 10:19:27 +0200 (CEST)","from mail-ed1-x531.google.com (mail-ed1-x531.google.com\n\t[IPv6:2a00:1450:4864:20::531])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id BEEE068891\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tMon, 23 Aug 2021 10:19:25 +0200 (CEST)","by mail-ed1-x531.google.com with SMTP id s3so12693181edd.11\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tMon, 23 Aug 2021 01:19:25 -0700 (PDT)"],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key;\n\tunprotected) header.d=chromium.org header.i=@chromium.org\n\theader.b=\"ch5pexhx\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org;\n\ts=google; \n\th=mime-version:references:in-reply-to:from:date:message-id:subject:to\n\t:cc; bh=/p782uUVJeK6eO/B02ugitjyNDOq4xAry+elKmhapvQ=;\n\tb=ch5pexhxdbYAU8v2EB/oxfvtOCJd04HgCeR+vFhRvO8LzlSzdaMEzAEwD7osBBaeV/\n\tLZ8ONUICRA2430FyQwZYjZTMZ6Eug5BDrT1Y1V4Du4TgntE350t2fHkHTU3HC9d9EZ6J\n\tWFZkrZ2QKdEgvX6y5PiOWBQ48j/fEotNjnLoo=","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20161025;\n\th=x-gm-message-state:mime-version:references:in-reply-to:from:date\n\t:message-id:subject:to:cc;\n\tbh=/p782uUVJeK6eO/B02ugitjyNDOq4xAry+elKmhapvQ=;\n\tb=ItaGZNRFEKsK0XC6J/9n9aGZIXc5vYl3mWsIL9HaYwJh5cdBMhDZK/NBjIdXCDlK/V\n\tgQ3NHUd7TsKZOfgf0CAnKqmFizYwbcvw6qY2KE+Fi7UQxy1JaA5514lwipj0LV/rJAzn\n\twb4pHdVfoMbmoOpL4W6J57yM3ucQahqnPjWRvBvBMhVPAj/Py2MRGT9Tx2X74AURsq4V\n\tHDtQ1nZqx/GGt9USkcABTRaVQ9bxAGtC+zbA4RTGbVigwMy/rB2vXemlFm9If/iMIH9g\n\tN8q3Kll/ibxAP9dsfo4xASRLSdKd3Znf9SwvJyBu1mUeKpYZgFDfEMqeU0WNSGyHzVeM\n\tIacw==","X-Gm-Message-State":"AOAM531aK6crJfJ7AY6mR88n+g7xl7j0ZZ23guKzFX/5Euw4ABzw8M0S\n\tyLZbsm+/LAgSJ4RkAV/+bikSd6yMqg/jT7GeVl4FPg==","X-Google-Smtp-Source":"ABdhPJzoY9vmyASzwqSpiir1cjm8NkKHpA/HdbdyD19J+PW2pK4y8+lYt20JXWrsn5enSmaw0f7vzJ9At8Hr4oQBpm8=","X-Received":"by 2002:a50:9e87:: with SMTP id\n\ta7mr35624945edf.202.1629706765335; \n\tMon, 23 Aug 2021 01:19:25 -0700 (PDT)","MIME-Version":"1.0","References":"<20210819201214.1554322-1-hiroh@chromium.org>\n\t<20210819201214.1554322-4-hiroh@chromium.org>\n\t<20210820135833.2vbg5valigqi4j7j@uno.localdomain>","In-Reply-To":"<20210820135833.2vbg5valigqi4j7j@uno.localdomain>","From":"Hirokazu Honda <hiroh@chromium.org>","Date":"Mon, 23 Aug 2021 17:19:13 +0900","Message-ID":"<CAO5uPHPd3zWDEwYbSp9juRBCqUxkW0M=SCAXQW6f1uVo-iZWxg@mail.gmail.com>","To":"Jacopo Mondi <jacopo@jmondi.org>","Content-Type":"text/plain; charset=\"UTF-8\"","Subject":"Re: [libcamera-devel] [PATCH v2 3/3] android: camera_device:\n\tConfigure one stream for identical stream requests","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 <libcamera-devel@lists.libcamera.org>","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":19001,"web_url":"https://patchwork.libcamera.org/comment/19001/","msgid":"<20210823093018.5qfhdunyujkulrov@uno.localdomain>","date":"2021-08-23T09:30:18","subject":"Re: [libcamera-devel] [PATCH v2 3/3] android: camera_device:\n\tConfigure one stream for identical stream requests","submitter":{"id":3,"url":"https://patchwork.libcamera.org/api/people/3/","name":"Jacopo Mondi","email":"jacopo@jmondi.org"},"content":"Hi Hiro,\n\nOn Mon, Aug 23, 2021 at 05:19:13PM +0900, Hirokazu Honda wrote:\n> Hi Jacopo,\n>\n> On Fri, Aug 20, 2021 at 10:57 PM Jacopo Mondi <jacopo@jmondi.org> wrote:\n> >\n> > Hi Hiro,\n> >\n> > On Fri, Aug 20, 2021 at 05:12:14AM +0900, Hirokazu Honda wrote:\n> > > An Android HAL client may request identical stream requests. It is\n> > > redundant that a native camera device produces a separate stream for\n> > > each of the identical requests.\n> > > Configure camera one stream configuration for the identical stream\n> > > requests.\n> > >\n> > > Signed-off-by: Hirokazu Honda <hiroh@chromium.org>\n> > > ---\n> > >  src/android/camera_device.cpp | 28 +++++++++++++++++++++++-----\n> > >  1 file changed, 23 insertions(+), 5 deletions(-)\n> > >\n> > > diff --git a/src/android/camera_device.cpp b/src/android/camera_device.cpp\n> > > index a69b687a..88cfd117 100644\n> > > --- a/src/android/camera_device.cpp\n> > > +++ b/src/android/camera_device.cpp\n> > > @@ -617,14 +617,32 @@ int CameraDevice::configureStreams(camera3_stream_configuration_t *stream_list)\n> > >                       continue;\n> > >               }\n> > >\n> > > +             /* This stream will be produced by hardware. */\n> > > +             stream->usage |= GRALLOC_USAGE_HW_CAMERA_WRITE;\n> > > +\n> > > +             /*\n> > > +              * If a CameraStream with the same size and format of the\n> > > +              * current stream has already been requested, associate the two.\n> > > +              */\n> > > +             auto iter = std::find_if(\n> > > +                     streamConfigs.begin(), streamConfigs.end(),\n> > > +                     [size, format](const Camera3StreamConfig &streamConfig) {\n> > > +                             return streamConfig.config.size == size &&\n> > > +                                    streamConfig.config.pixelFormat == format;\n> > > +                     });\n> > > +             if (iter != streamConfigs.end()) {\n> > > +                     /* Add usage to copy the buffer in streams[0] to stream. */\n> > > +                     iter->streams[0].stream->usage |= GRALLOC_USAGE_SW_READ_OFTEN;\n> > > +                     stream->usage |= GRALLOC_USAGE_SW_WRITE_OFTEN;\n> > > +                     iter->streams.push_back({ stream, CameraStream::Type::Mapped });\n> > > +                     continue;\n> > > +             }\n> > > +\n> > >               Camera3StreamConfig streamConfig;\n> > >               streamConfig.streams = { { stream, CameraStream::Type::Direct } };\n> > >               streamConfig.config.size = size;\n> > >               streamConfig.config.pixelFormat = format;\n> > >               streamConfigs.push_back(std::move(streamConfig));\n> > > -\n> > > -             /* This stream will be produced by hardware. */\n> > > -             stream->usage |= GRALLOC_USAGE_HW_CAMERA_WRITE;\n> > >       }\n> > >\n> > >       /* Now handle the MJPEG streams, adding a new stream if required. */\n> > > @@ -1077,6 +1095,7 @@ void CameraDevice::requestComplete(Request *request)\n> > >       camera3_capture_result_t captureResult = {};\n> > >       captureResult.frame_number = descriptor.frameNumber_;\n> > >       captureResult.num_output_buffers = descriptor.buffers_.size();\n> > > +     /* Handle post-processing. */\n> >\n> > Is this the right place where to move this comment should this replace\n>\n> Sorry, I don't get your suggestion. Can you rephrase?\n\nI would have replaced\n\n-     /* Handle any JPEG compression. */\n+     /* Handle post-processing. */\n\nwith\n>\n> Regards,\n> -Hiro\n> > -       /* Handle any JPEG compression. */\n> >\n> > >       for (camera3_stream_buffer_t &buffer : descriptor.buffers_) {\n> > >               buffer.acquire_fence = -1;\n> > >               buffer.release_fence = -1;\n> > > @@ -1132,12 +1151,11 @@ void CameraDevice::requestComplete(Request *request)\n> > >               resultMetadata = std::make_unique<CameraMetadata>(0, 0);\n> > >       }\n> > >\n> > > -     /* Handle any JPEG compression. */\n> > >       for (camera3_stream_buffer_t &buffer : descriptor.buffers_) {\n> > >               CameraStream *cameraStream =\n> > >                       static_cast<CameraStream *>(buffer.stream->priv);\n> > >\n> > > -             if (cameraStream->camera3Stream().format != HAL_PIXEL_FORMAT_BLOB)\n> > > +             if (cameraStream->type() == CameraStream::Type::Direct)\n> > >                       continue;\n> >\n> > Excellent. Minor nit apart\n> > Reviewed-by: Jacopo Mondi <jacopo@jmondi.org>\n> >\n> > Thanks\n> >    j\n> >\n> > >\n> > >               FrameBuffer *src = request->findBuffer(cameraStream->stream());\n> > > --\n> > > 2.33.0.rc2.250.ged5fa647cd-goog\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 3C7C1BD87C\n\tfor <parsemail@patchwork.libcamera.org>;\n\tMon, 23 Aug 2021 09:29:32 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 5D846688A3;\n\tMon, 23 Aug 2021 11:29:31 +0200 (CEST)","from relay3-d.mail.gandi.net (relay3-d.mail.gandi.net\n\t[217.70.183.195])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id BB0DD68891\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tMon, 23 Aug 2021 11:29:29 +0200 (CEST)","(Authenticated sender: jacopo@jmondi.org)\n\tby relay3-d.mail.gandi.net (Postfix) with ESMTPSA id 06DCD6000A;\n\tMon, 23 Aug 2021 09:29:28 +0000 (UTC)"],"Date":"Mon, 23 Aug 2021 11:30:18 +0200","From":"Jacopo Mondi <jacopo@jmondi.org>","To":"Hirokazu Honda <hiroh@chromium.org>","Message-ID":"<20210823093018.5qfhdunyujkulrov@uno.localdomain>","References":"<20210819201214.1554322-1-hiroh@chromium.org>\n\t<20210819201214.1554322-4-hiroh@chromium.org>\n\t<20210820135833.2vbg5valigqi4j7j@uno.localdomain>\n\t<CAO5uPHPd3zWDEwYbSp9juRBCqUxkW0M=SCAXQW6f1uVo-iZWxg@mail.gmail.com>","MIME-Version":"1.0","Content-Type":"text/plain; charset=utf-8","Content-Disposition":"inline","In-Reply-To":"<CAO5uPHPd3zWDEwYbSp9juRBCqUxkW0M=SCAXQW6f1uVo-iZWxg@mail.gmail.com>","Subject":"Re: [libcamera-devel] [PATCH v2 3/3] android: camera_device:\n\tConfigure one stream for identical stream requests","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 <libcamera-devel@lists.libcamera.org>","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}}]