[{"id":14670,"web_url":"https://patchwork.libcamera.org/comment/14670/","msgid":"<YAnzE0r/fQgu7JpU@pendragon.ideasonboard.com>","date":"2021-01-21T21:33:07","subject":"Re: [libcamera-devel] [PATCH 2/7] android: camera_device: Pass\n\tcamera3 request to descriptor","submitter":{"id":2,"url":"https://patchwork.libcamera.org/api/people/2/","name":"Laurent Pinchart","email":"laurent.pinchart@ideasonboard.com"},"content":"Hi Jacopo,\n\nThank you for the patch.\n\nOn Thu, Jan 21, 2021 at 05:53:00PM +0100, Jacopo Mondi wrote:\n> The Camera3RequestDescriptor class can access the number of buffers\n> and the frame number from the camera3_capture_request_t instead of\n> having the caller passing them to the constructor.\n> \n> This change allows to access other fields of the capture request, such\n> as the capture settings.\n> \n> Signed-off-by: Jacopo Mondi <jacopo@jmondi.org>\n\nReviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n\n> ---\n>  src/android/camera_device.cpp | 13 +++++++------\n>  src/android/camera_device.h   |  3 +--\n>  2 files changed, 8 insertions(+), 8 deletions(-)\n> \n> diff --git a/src/android/camera_device.cpp b/src/android/camera_device.cpp\n> index 7c70a0b314e6..f10b572749eb 100644\n> --- a/src/android/camera_device.cpp\n> +++ b/src/android/camera_device.cpp\n> @@ -295,16 +295,18 @@ MappedCamera3Buffer::MappedCamera3Buffer(const buffer_handle_t camera3buffer,\n>   */\n>  \n>  CameraDevice::Camera3RequestDescriptor::Camera3RequestDescriptor(\n> -\tCamera *camera, unsigned int frameNumber, unsigned int numBuffers)\n> -\t: frameNumber_(frameNumber), numBuffers_(numBuffers)\n> +\tCamera *camera, const camera3_capture_request_t *camera3Request)\n>  {\n> -\tbuffers_ = new camera3_stream_buffer_t[numBuffers];\n> +\tframeNumber_ = camera3Request->frame_number;\n> +\n> +\tnumBuffers_ = camera3Request->num_output_buffers;\n> +\tbuffers_ = new camera3_stream_buffer_t[numBuffers_];\n>  \n>  \t/*\n>  \t * FrameBuffer instances created by wrapping a camera3 provided dmabuf\n>  \t * are emplaced in this vector of unique_ptr<> for lifetime management.\n>  \t */\n> -\tframeBuffers_.reserve(numBuffers);\n> +\tframeBuffers_.reserve(numBuffers_);\n>  \n>  \t/*\n>  \t * Create the libcamera::Request unique_ptr<> to tie its lifetime\n> @@ -1683,8 +1685,7 @@ int CameraDevice::processCaptureRequest(camera3_capture_request_t *camera3Reques\n>  \t * at request complete time.\n>  \t */\n>  \tCamera3RequestDescriptor *descriptor =\n> -\t\tnew Camera3RequestDescriptor(camera_.get(), camera3Request->frame_number,\n> -\t\t\t\t\t     camera3Request->num_output_buffers);\n> +\t\tnew Camera3RequestDescriptor(camera_.get(), camera3Request);\n>  \n>  \tLOG(HAL, Debug) << \"Queueing Request to libcamera with \"\n>  \t\t\t<< descriptor->numBuffers_ << \" HAL streams\";\n> diff --git a/src/android/camera_device.h b/src/android/camera_device.h\n> index 912e54a60d4b..ab3c848edd0a 100644\n> --- a/src/android/camera_device.h\n> +++ b/src/android/camera_device.h\n> @@ -75,8 +75,7 @@ private:\n>  \n>  \tstruct Camera3RequestDescriptor {\n>  \t\tCamera3RequestDescriptor(libcamera::Camera *camera,\n> -\t\t\t\t\t unsigned int frameNumber,\n> -\t\t\t\t\t unsigned int numBuffers);\n> +\t\t\t\t\t const camera3_capture_request_t *camera3Request);\n>  \t\t~Camera3RequestDescriptor();\n>  \n>  \t\tuint32_t frameNumber_;","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 F3A97BD808\n\tfor <parsemail@patchwork.libcamera.org>;\n\tThu, 21 Jan 2021 21:33:26 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id C426D68220;\n\tThu, 21 Jan 2021 22:33:26 +0100 (CET)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id A79D668212\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tThu, 21 Jan 2021 22:33:25 +0100 (CET)","from pendragon.ideasonboard.com (62-78-145-57.bb.dnainternet.fi\n\t[62.78.145.57])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 3537E50E;\n\tThu, 21 Jan 2021 22:33:25 +0100 (CET)"],"Authentication-Results":"lancelot.ideasonboard.com;\n\tdkim=fail reason=\"signature verification failed\" (1024-bit key;\n\tunprotected) header.d=ideasonboard.com header.i=@ideasonboard.com\n\theader.b=\"Oy9nIy7J\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1611264805;\n\tbh=bAgwvqdRwhIq69N4OpiCAqPDuO5P1b3nGdvKxlJIHhs=;\n\th=Date:From:To:Cc:Subject:References:In-Reply-To:From;\n\tb=Oy9nIy7J22H2uHmGBl6sQyB185HYzAAEJ6hoA+VYUWkePwbVfZHmD0QbZsaP9XfKO\n\tJJRoz59XQnwmjGXBXXvYp4y7toO54+zoVG3nBjgxFt04ZSLFFj3wXtd+m41lMH8Aek\n\t4qXKhLD2nKYrVt35hN6PBryHh3BPICYtMLt3nTk4=","Date":"Thu, 21 Jan 2021 23:33:07 +0200","From":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","To":"Jacopo Mondi <jacopo@jmondi.org>","Message-ID":"<YAnzE0r/fQgu7JpU@pendragon.ideasonboard.com>","References":"<20210121165305.367801-1-jacopo@jmondi.org>\n\t<20210121165305.367801-3-jacopo@jmondi.org>","MIME-Version":"1.0","Content-Disposition":"inline","In-Reply-To":"<20210121165305.367801-3-jacopo@jmondi.org>","Subject":"Re: [libcamera-devel] [PATCH 2/7] android: camera_device: Pass\n\tcamera3 request to descriptor","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":14678,"web_url":"https://patchwork.libcamera.org/comment/14678/","msgid":"<20210122034355.GE1943@pyrite.rasen.tech>","date":"2021-01-22T03:43:55","subject":"Re: [libcamera-devel] [PATCH 2/7] android: camera_device: Pass\n\tcamera3 request to descriptor","submitter":{"id":17,"url":"https://patchwork.libcamera.org/api/people/17/","name":"Paul Elder","email":"paul.elder@ideasonboard.com"},"content":"Hi Jacopo,\n\nOn Thu, Jan 21, 2021 at 05:53:00PM +0100, Jacopo Mondi wrote:\n> The Camera3RequestDescriptor class can access the number of buffers\n> and the frame number from the camera3_capture_request_t instead of\n> having the caller passing them to the constructor.\n> \n> This change allows to access other fields of the capture request, such\n> as the capture settings.\n> \n> Signed-off-by: Jacopo Mondi <jacopo@jmondi.org>\n\nReviewed-by: Paul Elder <paul.elder@ideasonboard.com>\n\n> ---\n>  src/android/camera_device.cpp | 13 +++++++------\n>  src/android/camera_device.h   |  3 +--\n>  2 files changed, 8 insertions(+), 8 deletions(-)\n> \n> diff --git a/src/android/camera_device.cpp b/src/android/camera_device.cpp\n> index 7c70a0b314e6..f10b572749eb 100644\n> --- a/src/android/camera_device.cpp\n> +++ b/src/android/camera_device.cpp\n> @@ -295,16 +295,18 @@ MappedCamera3Buffer::MappedCamera3Buffer(const buffer_handle_t camera3buffer,\n>   */\n>  \n>  CameraDevice::Camera3RequestDescriptor::Camera3RequestDescriptor(\n> -\tCamera *camera, unsigned int frameNumber, unsigned int numBuffers)\n> -\t: frameNumber_(frameNumber), numBuffers_(numBuffers)\n> +\tCamera *camera, const camera3_capture_request_t *camera3Request)\n>  {\n> -\tbuffers_ = new camera3_stream_buffer_t[numBuffers];\n> +\tframeNumber_ = camera3Request->frame_number;\n> +\n> +\tnumBuffers_ = camera3Request->num_output_buffers;\n> +\tbuffers_ = new camera3_stream_buffer_t[numBuffers_];\n>  \n>  \t/*\n>  \t * FrameBuffer instances created by wrapping a camera3 provided dmabuf\n>  \t * are emplaced in this vector of unique_ptr<> for lifetime management.\n>  \t */\n> -\tframeBuffers_.reserve(numBuffers);\n> +\tframeBuffers_.reserve(numBuffers_);\n>  \n>  \t/*\n>  \t * Create the libcamera::Request unique_ptr<> to tie its lifetime\n> @@ -1683,8 +1685,7 @@ int CameraDevice::processCaptureRequest(camera3_capture_request_t *camera3Reques\n>  \t * at request complete time.\n>  \t */\n>  \tCamera3RequestDescriptor *descriptor =\n> -\t\tnew Camera3RequestDescriptor(camera_.get(), camera3Request->frame_number,\n> -\t\t\t\t\t     camera3Request->num_output_buffers);\n> +\t\tnew Camera3RequestDescriptor(camera_.get(), camera3Request);\n>  \n>  \tLOG(HAL, Debug) << \"Queueing Request to libcamera with \"\n>  \t\t\t<< descriptor->numBuffers_ << \" HAL streams\";\n> diff --git a/src/android/camera_device.h b/src/android/camera_device.h\n> index 912e54a60d4b..ab3c848edd0a 100644\n> --- a/src/android/camera_device.h\n> +++ b/src/android/camera_device.h\n> @@ -75,8 +75,7 @@ private:\n>  \n>  \tstruct Camera3RequestDescriptor {\n>  \t\tCamera3RequestDescriptor(libcamera::Camera *camera,\n> -\t\t\t\t\t unsigned int frameNumber,\n> -\t\t\t\t\t unsigned int numBuffers);\n> +\t\t\t\t\t const camera3_capture_request_t *camera3Request);\n>  \t\t~Camera3RequestDescriptor();\n>  \n>  \t\tuint32_t frameNumber_;\n> -- \n> 2.29.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 B8C65C0F2A\n\tfor <parsemail@patchwork.libcamera.org>;\n\tFri, 22 Jan 2021 03:44:04 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 48F7068228;\n\tFri, 22 Jan 2021 04:44:04 +0100 (CET)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 5015E68212\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tFri, 22 Jan 2021 04:44:03 +0100 (CET)","from pyrite.rasen.tech (unknown\n\t[IPv6:2400:4051:61:600:2c71:1b79:d06d:5032])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id B012EB56;\n\tFri, 22 Jan 2021 04:44:01 +0100 (CET)"],"Authentication-Results":"lancelot.ideasonboard.com;\n\tdkim=fail reason=\"signature verification failed\" (1024-bit key;\n\tunprotected) header.d=ideasonboard.com header.i=@ideasonboard.com\n\theader.b=\"umxSK8Jk\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1611287043;\n\tbh=ankflk8XKx2o/GkiLgkLnh4WpmxgivDa5sqjBhUnfX4=;\n\th=Date:From:To:Cc:Subject:References:In-Reply-To:From;\n\tb=umxSK8JkMmaF4nlcZmzZlM+IzcWKoZFSFT0Ly0Ojn5/LPW9Pxj9EYu6gyPoy5L5HN\n\tHvlYyXHmQT+0xuESjeoxU3x5RfX4LcBYya5BeYbzmVDj9ILoW89f3Pf8DknQsEHJMt\n\tzq+PIIf7/hcjZo+M5xgszVy+3F15/r+kHy7fP+zA=","Date":"Fri, 22 Jan 2021 12:43:55 +0900","From":"paul.elder@ideasonboard.com","To":"Jacopo Mondi <jacopo@jmondi.org>","Message-ID":"<20210122034355.GE1943@pyrite.rasen.tech>","References":"<20210121165305.367801-1-jacopo@jmondi.org>\n\t<20210121165305.367801-3-jacopo@jmondi.org>","MIME-Version":"1.0","Content-Disposition":"inline","In-Reply-To":"<20210121165305.367801-3-jacopo@jmondi.org>","Subject":"Re: [libcamera-devel] [PATCH 2/7] android: camera_device: Pass\n\tcamera3 request to descriptor","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>"}}]