Patch Detail
Show a patch.
GET /api/patches/9306/?format=api
{ "id": 9306, "url": "https://patchwork.libcamera.org/api/patches/9306/?format=api", "web_url": "https://patchwork.libcamera.org/patch/9306/", "project": { "id": 1, "url": "https://patchwork.libcamera.org/api/projects/1/?format=api", "name": "libcamera", "link_name": "libcamera", "list_id": "libcamera_core", "list_email": "libcamera-devel@lists.libcamera.org", "web_url": "", "scm_url": "", "webscm_url": "" }, "msgid": "<20200813095344.3495212-3-niklas.soderlund@ragnatech.se>", "date": "2020-08-13T09:53:44", "name": "[libcamera-devel,v2,2/2] libcamera: request: Make Stream pointer const", "commit_ref": "27869c5f649c4b524e142014be073b40230ecbc4", "pull_url": null, "state": "accepted", "archived": false, "hash": "78d6e2ef4f1ef47a27d70ec7bc8dd292684270dc", "submitter": { "id": 5, "url": "https://patchwork.libcamera.org/api/people/5/?format=api", "name": "Niklas Söderlund", "email": "niklas.soderlund@ragnatech.se" }, "delegate": null, "mbox": "https://patchwork.libcamera.org/patch/9306/mbox/", "series": [ { "id": 1216, "url": "https://patchwork.libcamera.org/api/series/1216/?format=api", "web_url": "https://patchwork.libcamera.org/project/libcamera/list/?series=1216", "date": "2020-08-13T09:53:42", "name": "libcamera: request: Make Stream pointer const", "version": 2, "mbox": "https://patchwork.libcamera.org/series/1216/mbox/" } ], "comments": "https://patchwork.libcamera.org/api/patches/9306/comments/", "check": "pending", "checks": "https://patchwork.libcamera.org/api/patches/9306/checks/", "tags": {}, "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 1ECF5BD87E\n\tfor <parsemail@patchwork.libcamera.org>;\n\tThu, 13 Aug 2020 09:53:56 +0000 (UTC)", "from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 62A3E613B1;\n\tThu, 13 Aug 2020 11:53:55 +0200 (CEST)", "from bin-mail-out-05.binero.net (bin-mail-out-05.binero.net\n\t[195.74.38.228])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 5BE98603D9\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tThu, 13 Aug 2020 11:53:54 +0200 (CEST)", "from bismarck.berto.se (p54ac52a8.dip0.t-ipconnect.de\n\t[84.172.82.168]) by bin-vsp-out-01.atm.binero.net (Halon) with ESMTPA\n\tid e49cc835-dd4a-11ea-92dc-005056917a89;\n\tThu, 13 Aug 2020 11:53:52 +0200 (CEST)" ], "X-Halon-ID": "e49cc835-dd4a-11ea-92dc-005056917a89", "Authorized-sender": "niklas.soderlund@fsdn.se", "From": "=?utf-8?q?Niklas_S=C3=B6derlund?= <niklas.soderlund@ragnatech.se>", "To": "libcamera-devel@lists.libcamera.org", "Date": "Thu, 13 Aug 2020 11:53:44 +0200", "Message-Id": "<20200813095344.3495212-3-niklas.soderlund@ragnatech.se>", "X-Mailer": "git-send-email 2.28.0", "In-Reply-To": "<20200813095344.3495212-1-niklas.soderlund@ragnatech.se>", "References": "<20200813095344.3495212-1-niklas.soderlund@ragnatech.se>", "MIME-Version": "1.0", "Subject": "[libcamera-devel] [PATCH v2 2/2] libcamera: request: Make Stream\n\tpointer const", "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>", "Content-Type": "text/plain; charset=\"utf-8\"", "Content-Transfer-Encoding": "base64", "Errors-To": "libcamera-devel-bounces@lists.libcamera.org", "Sender": "\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>" }, "content": "The Stream pointer just acts as a key in the Request object. There is no\ngood use-case to modify a stream from a pointer retrieved from the\nRequest, make it const. This allow pipeline handlers to better express\nthat the Stream pointer is retrieved in a Request should just be treated\nas a key.\n\nSigned-off-by: Niklas Söderlund <niklas.soderlund@ragnatech.se>\n---\n include/libcamera/request.h | 6 +++---\n src/cam/capture.cpp | 4 ++--\n src/cam/capture.h | 2 +-\n src/libcamera/camera.cpp | 4 ++--\n src/libcamera/pipeline/ipu3/ipu3.cpp | 2 +-\n src/libcamera/request.cpp | 6 +++---\n src/qcam/main_window.h | 2 +-\n test/camera/buffer_import.cpp | 2 +-\n test/camera/capture.cpp | 2 +-\n 9 files changed, 15 insertions(+), 15 deletions(-)", "diff": "diff --git a/include/libcamera/request.h b/include/libcamera/request.h\nindex e74f56a7d6415315..5976ac50c9d3c42b 100644\n--- a/include/libcamera/request.h\n+++ b/include/libcamera/request.h\n@@ -31,7 +31,7 @@ public:\n \t\tRequestCancelled,\n \t};\n \n-\tusing BufferMap = std::map<Stream *, FrameBuffer *>;\n+\tusing BufferMap = std::map<const Stream *, FrameBuffer *>;\n \n \tRequest(Camera *camera, uint64_t cookie = 0);\n \tRequest(const Request &) = delete;\n@@ -41,8 +41,8 @@ public:\n \tControlList &controls() { return *controls_; }\n \tControlList &metadata() { return *metadata_; }\n \tconst BufferMap &buffers() const { return bufferMap_; }\n-\tint addBuffer(Stream *stream, FrameBuffer *buffer);\n-\tFrameBuffer *findBuffer(Stream *stream) const;\n+\tint addBuffer(const Stream *stream, FrameBuffer *buffer);\n+\tFrameBuffer *findBuffer(const Stream *stream) const;\n \n \tuint64_t cookie() const { return cookie_; }\n \tStatus status() const { return status_; }\ndiff --git a/src/cam/capture.cpp b/src/cam/capture.cpp\nindex 0720376983470f2f..af9029b743de606b 100644\n--- a/src/cam/capture.cpp\n+++ b/src/cam/capture.cpp\n@@ -169,7 +169,7 @@ void Capture::requestComplete(Request *request)\n \tinfo << \"fps: \" << std::fixed << std::setprecision(2) << fps;\n \n \tfor (auto it = buffers.begin(); it != buffers.end(); ++it) {\n-\t\tStream *stream = it->first;\n+\t\tconst Stream *stream = it->first;\n \t\tFrameBuffer *buffer = it->second;\n \t\tconst std::string &name = streamName_[stream];\n \n@@ -209,7 +209,7 @@ void Capture::requestComplete(Request *request)\n \t}\n \n \tfor (auto it = buffers.begin(); it != buffers.end(); ++it) {\n-\t\tStream *stream = it->first;\n+\t\tconst Stream *stream = it->first;\n \t\tFrameBuffer *buffer = it->second;\n \n \t\trequest->addBuffer(stream, buffer);\ndiff --git a/src/cam/capture.h b/src/cam/capture.h\nindex 32940a2a12138887..b4e39d51fdfa9512 100644\n--- a/src/cam/capture.h\n+++ b/src/cam/capture.h\n@@ -36,7 +36,7 @@ private:\n \tstd::shared_ptr<libcamera::Camera> camera_;\n \tlibcamera::CameraConfiguration *config_;\n \n-\tstd::map<libcamera::Stream *, std::string> streamName_;\n+\tstd::map<const libcamera::Stream *, std::string> streamName_;\n \tBufferWriter *writer_;\n \tstd::chrono::steady_clock::time_point last_;\n \ndiff --git a/src/libcamera/camera.cpp b/src/libcamera/camera.cpp\nindex 820fa1e3065e5f88..afdd47750f58f190 100644\n--- a/src/libcamera/camera.cpp\n+++ b/src/libcamera/camera.cpp\n@@ -279,7 +279,7 @@ public:\n \tstd::shared_ptr<PipelineHandler> pipe_;\n \tstd::string id_;\n \tstd::set<Stream *> streams_;\n-\tstd::set<Stream *> activeStreams_;\n+\tstd::set<const Stream *> activeStreams_;\n \n private:\n \tbool disconnected_;\n@@ -889,7 +889,7 @@ int Camera::queueRequest(Request *request)\n \t}\n \n \tfor (auto const &it : request->buffers()) {\n-\t\tStream *stream = it.first;\n+\t\tconst Stream *stream = it.first;\n \n \t\tif (p_->activeStreams_.find(stream) == p_->activeStreams_.end()) {\n \t\t\tLOG(Camera, Error) << \"Invalid request\";\ndiff --git a/src/libcamera/pipeline/ipu3/ipu3.cpp b/src/libcamera/pipeline/ipu3/ipu3.cpp\nindex d931ed333b4a1df6..019e50b8f444c153 100644\n--- a/src/libcamera/pipeline/ipu3/ipu3.cpp\n+++ b/src/libcamera/pipeline/ipu3/ipu3.cpp\n@@ -663,7 +663,7 @@ int PipelineHandlerIPU3::queueRequestDevice(Camera *camera, Request *request)\n \n \t/* Queue all buffers from the request aimed for the ImgU. */\n \tfor (auto it : request->buffers()) {\n-\t\tStream *stream = static_cast<Stream *>(it.first);\n+\t\tconst Stream *stream = it.first;\n \t\tFrameBuffer *buffer = it.second;\n \t\tint ret;\n \ndiff --git a/src/libcamera/request.cpp b/src/libcamera/request.cpp\nindex d5f11e8c43c32766..60b306922de2fe06 100644\n--- a/src/libcamera/request.cpp\n+++ b/src/libcamera/request.cpp\n@@ -127,7 +127,7 @@ Request::~Request()\n * \\retval -EEXIST The request already contains a buffer for the stream\n * \\retval -EINVAL The buffer does not reference a valid Stream\n */\n-int Request::addBuffer(Stream *stream, FrameBuffer *buffer)\n+int Request::addBuffer(const Stream *stream, FrameBuffer *buffer)\n {\n \tif (!stream) {\n \t\tLOG(Request, Error) << \"Invalid stream reference\";\n@@ -162,9 +162,9 @@ int Request::addBuffer(Stream *stream, FrameBuffer *buffer)\n * \\return The buffer associated with the stream, or nullptr if the stream is\n * not part of this request\n */\n-FrameBuffer *Request::findBuffer(Stream *stream) const\n+FrameBuffer *Request::findBuffer(const Stream *stream) const\n {\n-\tauto it = bufferMap_.find(stream);\n+\tconst auto it = bufferMap_.find(stream);\n \tif (it == bufferMap_.end())\n \t\treturn nullptr;\n \ndiff --git a/src/qcam/main_window.h b/src/qcam/main_window.h\nindex 6e1bcd76a2438b4c..3d21779e3f4a7c44 100644\n--- a/src/qcam/main_window.h\n+++ b/src/qcam/main_window.h\n@@ -126,7 +126,7 @@ private:\n \tbool captureRaw_;\n \tStream *vfStream_;\n \tStream *rawStream_;\n-\tstd::map<Stream *, QQueue<FrameBuffer *>> freeBuffers_;\n+\tstd::map<const Stream *, QQueue<FrameBuffer *>> freeBuffers_;\n \tQQueue<CaptureRequest> doneQueue_;\n \tQMutex mutex_; /* Protects freeBuffers_ and doneQueue_ */\n \ndiff --git a/test/camera/buffer_import.cpp b/test/camera/buffer_import.cpp\nindex 726d2cb2fe757066..97a8582761a74dc6 100644\n--- a/test/camera/buffer_import.cpp\n+++ b/test/camera/buffer_import.cpp\n@@ -51,7 +51,7 @@ protected:\n \t\tcompleteRequestsCount_++;\n \n \t\t/* Create a new request. */\n-\t\tStream *stream = buffers.begin()->first;\n+\t\tconst Stream *stream = buffers.begin()->first;\n \t\tFrameBuffer *buffer = buffers.begin()->second;\n \n \t\trequest = camera_->createRequest();\ndiff --git a/test/camera/capture.cpp b/test/camera/capture.cpp\nindex ae572eb955753151..0fe3bf9be7f13f4f 100644\n--- a/test/camera/capture.cpp\n+++ b/test/camera/capture.cpp\n@@ -44,7 +44,7 @@ protected:\n \t\tcompleteRequestsCount_++;\n \n \t\t/* Create a new request. */\n-\t\tStream *stream = buffers.begin()->first;\n+\t\tconst Stream *stream = buffers.begin()->first;\n \t\tFrameBuffer *buffer = buffers.begin()->second;\n \n \t\trequest = camera_->createRequest();\n", "prefixes": [ "libcamera-devel", "v2", "2/2" ] }