{"id":26964,"url":"https://patchwork.libcamera.org/api/1.1/covers/26964/?format=json","web_url":"https://patchwork.libcamera.org/cover/26964/","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":"<20260618123844.656396-1-barnabas.pocze@ideasonboard.com>","date":"2026-06-18T12:38:17","name":"[RFC,v1,00/27] Misc. changes before request-buffer split","submitter":{"id":216,"url":"https://patchwork.libcamera.org/api/1.1/people/216/?format=json","name":"Barnabás Pőcze","email":"barnabas.pocze@ideasonboard.com"},"mbox":"https://patchwork.libcamera.org/cover/26964/mbox/","series":[{"id":6006,"url":"https://patchwork.libcamera.org/api/1.1/series/6006/?format=json","web_url":"https://patchwork.libcamera.org/project/libcamera/list/?series=6006","date":"2026-06-18T12:38:17","name":"Misc. changes before request-buffer split","version":1,"mbox":"https://patchwork.libcamera.org/series/6006/mbox/"}],"comments":"https://patchwork.libcamera.org/api/covers/26964/comments/","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 2E6FBBF415\n\tfor <parsemail@patchwork.libcamera.org>;\n\tThu, 18 Jun 2026 12:38:52 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 0DD27656CF;\n\tThu, 18 Jun 2026 14:38:50 +0200 (CEST)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[IPv6:2001:4b98:dc2:55:216:3eff:fef7:d647])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 8379862988\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tThu, 18 Jun 2026 14:38:48 +0200 (CEST)","from pb-laptop.local (185.182.214.63.nat.pool.zt.hu\n\t[185.182.214.63])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 897702F8\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tThu, 18 Jun 2026 14:38:13 +0200 (CEST)"],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key;\n\tunprotected) header.d=ideasonboard.com header.i=@ideasonboard.com\n\theader.b=\"D+tFJGj3\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1781786293;\n\tbh=VoUPeITHXWUs+a7MgV/CqqfUgdu3jd0Z3hyUw9Apg8s=;\n\th=From:To:Subject:Date:From;\n\tb=D+tFJGj32zYO/GycYtsjR4WsqDkC0rWb/8M/NSAxreLjjmRwGs1vjO2rdW/svrq1r\n\tUExxuCi+nFe96dPtdKbqveva26e+6rccqE96yuiZeO/lP1B5PCdAWR/7DnAvR8qFgP\n\tgn0nZnF5tFAwHWJKcrPxLi1IsX6q2oTQQmMtZJ0Y=","From":"=?utf-8?q?Barnab=C3=A1s_P=C5=91cze?= <barnabas.pocze@ideasonboard.com>","To":"libcamera-devel@lists.libcamera.org","Subject":"[RFC PATCH v1 00/27] Misc. changes before request-buffer split","Date":"Thu, 18 Jun 2026 14:38:17 +0200","Message-ID":"<20260618123844.656396-1-barnabas.pocze@ideasonboard.com>","X-Mailer":"git-send-email 2.54.0","MIME-Version":"1.0","Content-Type":"text/plain; charset=UTF-8","Content-Transfer-Encoding":"8bit","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>","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"},"content":"This is a collection of miscellaneous, intended to be non-functional changes\nthat I have made while working on the request-buffer split prototype. Some\nare requirements of that, and some are just random changes. But most of these\nshould be easy to review.\n\nBarnabás Pőcze (27):\n  apps: cam: Simplify buffer reuse\n  libcamera: request: Inline `Private::hasPendingRequests()`\n  libcamera: request: hasPendingBuffers(): Simplify\n  libcamera: request: Disassociate buffer when cancelling\n  libcamera: software_isp: Replace open-coded buffer cancellation\n  libcamera: pipeline: Replace open-coded buffer cancellation\n  libcamera: pipeline: imx8-isi: Use `completeBuffer()` return value\n  libcamera: pipeline: imx8-isi: pipeFromStream(): Take `ISICameraData`\n  libcamera: pipeline: ipu3: Remove `setRequest()` calls\n  libcamera: pipeline: mali-c55: Add missing `<queue>` include\n  libcamera: pipeline: rkisp1: Simplify dewarper configuration\n  libcamera: pipeline: rpi: Remove `requestQueue_`\n  libcamera: pipeline: virtual: Make copy of request's buffer map\n  libcamera: camera: Add missing `span.h` include\n  libcamera: request: completeBuffer(): Emit `bufferCompleted` here\n  libcamera: pipeline_handler: completeBuffer(): Inline and `static`\n  libcamera: pipeline_handler: Use `std::deque`\n  py: examples: simple-continuous-capture: Fix comment\n  py: cam: Remove unnecessary check\n  gstreamer: allocator: get_pool_size(): Fix return value\n  gstreamer: Use `FrameBuffer` cookie to associate with `GstBuffer`\n  v4l2: v4l2_camera: Avoid a level of indirection\n  v4l2: v4l2_camera: Use actually allocated buffer count\n  v4l2: v4l2_camera: Use buffer cookie for indexing\n  v4l2: v4l2_camera: Rename `Buffer` to `CompletedBuffer`\n  v4l2: v4l2_camera: Always clear pending requests\n  v4l2: v4l2_camera: Provide buffers one by one\n\n include/libcamera/camera.h                    |  1 +\n include/libcamera/internal/camera.h           |  7 +-\n include/libcamera/internal/pipeline_handler.h |  7 +-\n include/libcamera/internal/request.h          |  2 +-\n src/apps/cam/camera_session.cpp               |  7 +-\n src/gstreamer/gstlibcameraallocator.cpp       |  2 +-\n src/gstreamer/gstlibcamerasrc.cpp             | 37 ++++----\n src/libcamera/pipeline/imx8-isi/imx8-isi.cpp  | 24 +++--\n src/libcamera/pipeline/ipu3/cio2.cpp          |  3 +-\n src/libcamera/pipeline/ipu3/cio2.h            |  3 +-\n src/libcamera/pipeline/ipu3/frames.cpp        |  3 -\n src/libcamera/pipeline/ipu3/ipu3.cpp          | 16 +---\n src/libcamera/pipeline/mali-c55/mali-c55.cpp  |  1 +\n src/libcamera/pipeline/rkisp1/rkisp1.cpp      |  5 +-\n .../pipeline/rpi/common/pipeline_base.cpp     | 31 ++----\n .../pipeline/rpi/common/pipeline_base.h       |  2 -\n src/libcamera/pipeline/rpi/pisp/pisp.cpp      |  6 +-\n src/libcamera/pipeline/rpi/vc4/vc4.cpp        |  6 +-\n src/libcamera/pipeline/vimc/vimc.cpp          |  7 +-\n src/libcamera/pipeline/virtual/virtual.cpp    | 40 ++++----\n src/libcamera/pipeline_handler.cpp            | 15 +--\n src/libcamera/request.cpp                     | 11 ++-\n src/libcamera/software_isp/software_isp.cpp   |  6 +-\n src/py/cam/cam.py                             |  4 -\n src/py/examples/simple-continuous-capture.py  |  2 +-\n src/v4l2/v4l2_camera.cpp                      | 79 +++++++--------\n src/v4l2/v4l2_camera.h                        | 21 ++--\n src/v4l2/v4l2_camera_proxy.cpp                | 95 +++++++++----------\n src/v4l2/v4l2_camera_proxy.h                  |  2 -\n 29 files changed, 188 insertions(+), 257 deletions(-)\n\n--\n2.54.0"}