{"id":2335,"url":"https://patchwork.libcamera.org/api/1.1/patches/2335/?format=json","web_url":"https://patchwork.libcamera.org/patch/2335/","project":{"id":1,"url":"https://patchwork.libcamera.org/api/1.1/projects/1/?format=json","name":"libcamera","link_name":"libcamera","list_id":"libcamera_core","list_email":"libcamera-devel@lists.libcamera.org","web_url":"","scm_url":"","webscm_url":""},"msgid":"<20191120015506.362440-5-niklas.soderlund@ragnatech.se>","date":"2019-11-20T01:55:00","name":"[libcamera-devel,v2,04/10] libcamera: camera: Remove explicit stream to buffer map in requestCompleted signal","commit_ref":null,"pull_url":null,"state":"accepted","archived":false,"hash":"b923d6e4ca311d8cfab670c792010139ec257e51","submitter":{"id":5,"url":"https://patchwork.libcamera.org/api/1.1/people/5/?format=json","name":"Niklas Söderlund","email":"niklas.soderlund@ragnatech.se"},"delegate":null,"mbox":"https://patchwork.libcamera.org/patch/2335/mbox/","series":[{"id":572,"url":"https://patchwork.libcamera.org/api/1.1/series/572/?format=json","web_url":"https://patchwork.libcamera.org/project/libcamera/list/?series=572","date":"2019-11-20T01:54:56","name":"libcamera: Fixes found while working on new","version":2,"mbox":"https://patchwork.libcamera.org/series/572/mbox/"}],"comments":"https://patchwork.libcamera.org/api/patches/2335/comments/","check":"pending","checks":"https://patchwork.libcamera.org/api/patches/2335/checks/","tags":{},"headers":{"Return-Path":"<niklas.soderlund@ragnatech.se>","Received":["from vsp-unauthed02.binero.net (vsp-unauthed02.binero.net\n\t[195.74.38.227])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 14FC26138B\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tWed, 20 Nov 2019 02:55:31 +0100 (CET)","from bismarck.berto.se (p54ac5865.dip0.t-ipconnect.de\n\t[84.172.88.101]) by bin-vsp-out-01.atm.binero.net (Halon) with ESMTPA\n\tid d440ac38-0b38-11ea-a00b-005056917a89;\n\tWed, 20 Nov 2019 02:55:30 +0100 (CET)"],"X-Halon-ID":"d440ac38-0b38-11ea-a00b-005056917a89","Authorized-sender":"niklas@soderlund.pp.se","From":"=?utf-8?q?Niklas_S=C3=B6derlund?= <niklas.soderlund@ragnatech.se>","To":"libcamera-devel@lists.libcamera.org","Date":"Wed, 20 Nov 2019 02:55:00 +0100","Message-Id":"<20191120015506.362440-5-niklas.soderlund@ragnatech.se>","X-Mailer":"git-send-email 2.24.0","In-Reply-To":"<20191120015506.362440-1-niklas.soderlund@ragnatech.se>","References":"<20191120015506.362440-1-niklas.soderlund@ragnatech.se>","MIME-Version":"1.0","Content-Type":"text/plain; charset=UTF-8","Content-Transfer-Encoding":"8bit","Subject":"[libcamera-devel] [PATCH v2 04/10] libcamera: camera: Remove\n\texplicit stream to buffer map in requestCompleted signal","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>","X-List-Received-Date":"Wed, 20 Nov 2019 01:55:31 -0000"},"content":"The stream to buffer map in the requestCompleted signal is taken\ndirectly from the request which is part of the same signal. Remove the\nmap as it can be fetched directly from the request.\n\nSigned-off-by: Niklas Söderlund <niklas.soderlund@ragnatech.se>\nReviewed-by: Jacopo Mondi <jacopo@jmondi.org>\nReviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>\nReviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n---\n include/libcamera/camera.h    | 3 +--\n src/android/camera_device.cpp | 4 ++--\n src/android/camera_device.h   | 3 +--\n src/cam/capture.cpp           | 4 +++-\n src/cam/capture.h             | 3 +--\n src/libcamera/camera.cpp      | 2 +-\n src/qcam/main_window.cpp      | 5 +++--\n src/qcam/main_window.h        | 4 +---\n test/camera/capture.cpp       | 4 +++-\n 9 files changed, 16 insertions(+), 16 deletions(-)","diff":"diff --git a/include/libcamera/camera.h b/include/libcamera/camera.h\nindex 21fac550f4121fdc..ef6a37bb142c83a6 100644\n--- a/include/libcamera/camera.h\n+++ b/include/libcamera/camera.h\n@@ -7,7 +7,6 @@\n #ifndef __LIBCAMERA_CAMERA_H__\n #define __LIBCAMERA_CAMERA_H__\n \n-#include <map>\n #include <memory>\n #include <set>\n #include <stdint.h>\n@@ -79,7 +78,7 @@ public:\n \tconst std::string &name() const;\n \n \tSignal<Request *, Buffer *> bufferCompleted;\n-\tSignal<Request *, const std::map<Stream *, Buffer *> &> requestCompleted;\n+\tSignal<Request *> requestCompleted;\n \tSignal<Camera *> disconnected;\n \n \tint acquire();\ndiff --git a/src/android/camera_device.cpp b/src/android/camera_device.cpp\nindex 897f545864a94c6d..065e0292e186c2ad 100644\n--- a/src/android/camera_device.cpp\n+++ b/src/android/camera_device.cpp\n@@ -769,9 +769,9 @@ error:\n \tdelete descriptor;\n }\n \n-void CameraDevice::requestComplete(Request *request,\n-\t\t\t\t   const std::map<Stream *, Buffer *> &buffers)\n+void CameraDevice::requestComplete(Request *request)\n {\n+\tconst std::map<Stream *, Buffer *> &buffers = request->buffers();\n \tBuffer *libcameraBuffer = buffers.begin()->second;\n \tcamera3_buffer_status status = CAMERA3_BUFFER_STATUS_OK;\n \tstd::unique_ptr<CameraMetadata> resultMetadata;\ndiff --git a/src/android/camera_device.h b/src/android/camera_device.h\nindex 2105b5b9a1e7f50e..caa617dcbfe19408 100644\n--- a/src/android/camera_device.h\n+++ b/src/android/camera_device.h\n@@ -34,8 +34,7 @@ public:\n \tconst camera_metadata_t *constructDefaultRequestSettings(int type);\n \tint configureStreams(camera3_stream_configuration_t *stream_list);\n \tvoid processCaptureRequest(camera3_capture_request_t *request);\n-\tvoid requestComplete(libcamera::Request *request,\n-\t\t\t     const std::map<libcamera::Stream *, libcamera::Buffer *> &buffers);\n+\tvoid requestComplete(libcamera::Request *request);\n \n private:\n \tstruct Camera3RequestDescriptor {\ndiff --git a/src/cam/capture.cpp b/src/cam/capture.cpp\nindex 0d7854d674e0a78d..27332df1d55a5c2d 100644\n--- a/src/cam/capture.cpp\n+++ b/src/cam/capture.cpp\n@@ -133,11 +133,13 @@ int Capture::capture(EventLoop *loop)\n \treturn ret;\n }\n \n-void Capture::requestComplete(Request *request, const std::map<Stream *, Buffer *> &buffers)\n+void Capture::requestComplete(Request *request)\n {\n \tif (request->status() == Request::RequestCancelled)\n \t\treturn;\n \n+\tconst std::map<Stream *, Buffer *> &buffers = request->buffers();\n+\n \tstd::chrono::steady_clock::time_point now = std::chrono::steady_clock::now();\n \tdouble fps = std::chrono::duration_cast<std::chrono::milliseconds>(now - last_).count();\n \tfps = last_ != std::chrono::steady_clock::time_point() && fps\ndiff --git a/src/cam/capture.h b/src/cam/capture.h\nindex ee0dc421111197c1..4d396afb8c771a74 100644\n--- a/src/cam/capture.h\n+++ b/src/cam/capture.h\n@@ -28,8 +28,7 @@ public:\n private:\n \tint capture(EventLoop *loop);\n \n-\tvoid requestComplete(libcamera::Request *request,\n-\t\t\t     const std::map<libcamera::Stream *, libcamera::Buffer *> &buffers);\n+\tvoid requestComplete(libcamera::Request *request);\n \n \tlibcamera::Camera *camera_;\n \tlibcamera::CameraConfiguration *config_;\ndiff --git a/src/libcamera/camera.cpp b/src/libcamera/camera.cpp\nindex 76c737cb93813115..e810fb725d81350d 100644\n--- a/src/libcamera/camera.cpp\n+++ b/src/libcamera/camera.cpp\n@@ -919,7 +919,7 @@ void Camera::requestComplete(Request *request)\n \t\t\tstream->unmapBuffer(buffer);\n \t}\n \n-\trequestCompleted.emit(request, request->buffers());\n+\trequestCompleted.emit(request);\n \tdelete request;\n }\n \ndiff --git a/src/qcam/main_window.cpp b/src/qcam/main_window.cpp\nindex 3d56309227235fec..cca7365ae75687f9 100644\n--- a/src/qcam/main_window.cpp\n+++ b/src/qcam/main_window.cpp\n@@ -248,12 +248,13 @@ void MainWindow::stopCapture()\n \tsetWindowTitle(title_);\n }\n \n-void MainWindow::requestComplete(Request *request,\n-\t\t\t\t const std::map<Stream *, Buffer *> &buffers)\n+void MainWindow::requestComplete(Request *request)\n {\n \tif (request->status() == Request::RequestCancelled)\n \t\treturn;\n \n+\tconst std::map<Stream *, Buffer *> &buffers = request->buffers();\n+\n \tframesCaptured_++;\n \n \tBuffer *buffer = buffers.begin()->second;\ndiff --git a/src/qcam/main_window.h b/src/qcam/main_window.h\nindex 30dd8743104d75e0..0786e915ec512255 100644\n--- a/src/qcam/main_window.h\n+++ b/src/qcam/main_window.h\n@@ -7,7 +7,6 @@\n #ifndef __QCAM_MAIN_WINDOW_H__\n #define __QCAM_MAIN_WINDOW_H__\n \n-#include <map>\n #include <memory>\n \n #include <QElapsedTimer>\n@@ -49,8 +48,7 @@ private:\n \tint startCapture();\n \tvoid stopCapture();\n \n-\tvoid requestComplete(Request *request,\n-\t\t\t     const std::map<Stream *, Buffer *> &buffers);\n+\tvoid requestComplete(Request *request);\n \tint display(Buffer *buffer);\n \n \tQString title_;\ndiff --git a/test/camera/capture.cpp b/test/camera/capture.cpp\nindex 791ccad15f7042f9..83f974749affd3cd 100644\n--- a/test/camera/capture.cpp\n+++ b/test/camera/capture.cpp\n@@ -27,11 +27,13 @@ protected:\n \t\tcompleteBuffersCount_++;\n \t}\n \n-\tvoid requestComplete(Request *request, const std::map<Stream *, Buffer *> &buffers)\n+\tvoid requestComplete(Request *request)\n \t{\n \t\tif (request->status() != Request::RequestComplete)\n \t\t\treturn;\n \n+\t\tconst std::map<Stream *, Buffer *> &buffers = request->buffers();\n+\n \t\tcompleteRequestsCount_++;\n \n \t\t/* Create a new request. */\n","prefixes":["libcamera-devel","v2","04/10"]}