From patchwork Mon Oct 28 02:22:18 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Niklas_S=C3=B6derlund?= X-Patchwork-Id: 2253 Return-Path: Received: from bin-mail-out-05.binero.net (bin-mail-out-05.binero.net [195.74.38.228]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id 862FE61506 for ; Mon, 28 Oct 2019 03:22:46 +0100 (CET) X-Halon-ID: d241955c-f929-11e9-903a-005056917f90 Authorized-sender: niklas@soderlund.pp.se Received: from localhost.localdomain (unknown [93.2.121.143]) by bin-vsp-out-02.atm.binero.net (Halon) with ESMTPA id d241955c-f929-11e9-903a-005056917f90; Mon, 28 Oct 2019 03:22:43 +0100 (CET) From: =?utf-8?q?Niklas_S=C3=B6derlund?= To: libcamera-devel@lists.libcamera.org Date: Mon, 28 Oct 2019 03:22:18 +0100 Message-Id: <20191028022224.795355-5-niklas.soderlund@ragnatech.se> X-Mailer: git-send-email 2.23.0 In-Reply-To: <20191028022224.795355-1-niklas.soderlund@ragnatech.se> References: <20191028022224.795355-1-niklas.soderlund@ragnatech.se> MIME-Version: 1.0 Subject: [libcamera-devel] [PATCH 04/10] libcamera: camera: Remove explicit stream to buffer map in requestCompleted signal X-BeenThere: libcamera-devel@lists.libcamera.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 28 Oct 2019 02:22:47 -0000 The stream to buffer map in the requestCompleted signal is taken directly from the request which is part of the same signal. Remove the map as it can be fetched directly from the request. Signed-off-by: Niklas Söderlund Reviewed-by: Laurent Pinchart --- include/libcamera/camera.h | 2 +- src/cam/capture.cpp | 4 +++- src/cam/capture.h | 3 +-- src/libcamera/camera.cpp | 2 +- src/qcam/main_window.cpp | 5 +++-- src/qcam/main_window.h | 3 +-- test/camera/capture.cpp | 4 +++- 7 files changed, 13 insertions(+), 10 deletions(-) diff --git a/include/libcamera/camera.h b/include/libcamera/camera.h index 21fac550f4121fdc..268d2d37ccac8b71 100644 --- a/include/libcamera/camera.h +++ b/include/libcamera/camera.h @@ -79,7 +79,7 @@ public: const std::string &name() const; Signal bufferCompleted; - Signal &> requestCompleted; + Signal requestCompleted; Signal disconnected; int acquire(); diff --git a/src/cam/capture.cpp b/src/cam/capture.cpp index 0d7854d674e0a78d..27332df1d55a5c2d 100644 --- a/src/cam/capture.cpp +++ b/src/cam/capture.cpp @@ -133,11 +133,13 @@ int Capture::capture(EventLoop *loop) return ret; } -void Capture::requestComplete(Request *request, const std::map &buffers) +void Capture::requestComplete(Request *request) { if (request->status() == Request::RequestCancelled) return; + const std::map &buffers = request->buffers(); + std::chrono::steady_clock::time_point now = std::chrono::steady_clock::now(); double fps = std::chrono::duration_cast(now - last_).count(); fps = last_ != std::chrono::steady_clock::time_point() && fps diff --git a/src/cam/capture.h b/src/cam/capture.h index ee0dc421111197c1..4d396afb8c771a74 100644 --- a/src/cam/capture.h +++ b/src/cam/capture.h @@ -28,8 +28,7 @@ public: private: int capture(EventLoop *loop); - void requestComplete(libcamera::Request *request, - const std::map &buffers); + void requestComplete(libcamera::Request *request); libcamera::Camera *camera_; libcamera::CameraConfiguration *config_; diff --git a/src/libcamera/camera.cpp b/src/libcamera/camera.cpp index 76c737cb93813115..e810fb725d81350d 100644 --- a/src/libcamera/camera.cpp +++ b/src/libcamera/camera.cpp @@ -919,7 +919,7 @@ void Camera::requestComplete(Request *request) stream->unmapBuffer(buffer); } - requestCompleted.emit(request, request->buffers()); + requestCompleted.emit(request); delete request; } diff --git a/src/qcam/main_window.cpp b/src/qcam/main_window.cpp index 3d56309227235fec..cca7365ae75687f9 100644 --- a/src/qcam/main_window.cpp +++ b/src/qcam/main_window.cpp @@ -248,12 +248,13 @@ void MainWindow::stopCapture() setWindowTitle(title_); } -void MainWindow::requestComplete(Request *request, - const std::map &buffers) +void MainWindow::requestComplete(Request *request) { if (request->status() == Request::RequestCancelled) return; + const std::map &buffers = request->buffers(); + framesCaptured_++; Buffer *buffer = buffers.begin()->second; diff --git a/src/qcam/main_window.h b/src/qcam/main_window.h index 30dd8743104d75e0..78511581a8d5c025 100644 --- a/src/qcam/main_window.h +++ b/src/qcam/main_window.h @@ -49,8 +49,7 @@ private: int startCapture(); void stopCapture(); - void requestComplete(Request *request, - const std::map &buffers); + void requestComplete(Request *request); int display(Buffer *buffer); QString title_; diff --git a/test/camera/capture.cpp b/test/camera/capture.cpp index 791ccad15f7042f9..83f974749affd3cd 100644 --- a/test/camera/capture.cpp +++ b/test/camera/capture.cpp @@ -27,11 +27,13 @@ protected: completeBuffersCount_++; } - void requestComplete(Request *request, const std::map &buffers) + void requestComplete(Request *request) { if (request->status() != Request::RequestComplete) return; + const std::map &buffers = request->buffers(); + completeRequestsCount_++; /* Create a new request. */