Cover Letter Detail
Show a cover letter.
GET /api/1.1/covers/2972/?format=api
{ "id": 2972, "url": "https://patchwork.libcamera.org/api/1.1/covers/2972/?format=api", "web_url": "https://patchwork.libcamera.org/cover/2972/", "project": { "id": 1, "url": "https://patchwork.libcamera.org/api/1.1/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": "<20200306160002.30549-1-laurent.pinchart@ideasonboard.com>", "date": "2020-03-06T15:59:30", "name": "[libcamera-devel,v2,00/32] libcamera: Add support for array controls", "submitter": { "id": 2, "url": "https://patchwork.libcamera.org/api/1.1/people/2/?format=api", "name": "Laurent Pinchart", "email": "laurent.pinchart@ideasonboard.com" }, "mbox": "https://patchwork.libcamera.org/cover/2972/mbox/", "series": [ { "id": 703, "url": "https://patchwork.libcamera.org/api/1.1/series/703/?format=api", "web_url": "https://patchwork.libcamera.org/project/libcamera/list/?series=703", "date": "2020-03-06T15:59:30", "name": "libcamera: Add support for array controls", "version": 2, "mbox": "https://patchwork.libcamera.org/series/703/mbox/" } ], "comments": "https://patchwork.libcamera.org/api/covers/2972/comments/", "headers": { "Return-Path": "<laurent.pinchart@ideasonboard.com>", "Received": [ "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 7265160424\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tFri, 6 Mar 2020 17:00:11 +0100 (CET)", "from pendragon.bb.dnainternet.fi (81-175-216-236.bb.dnainternet.fi\n\t[81.175.216.236])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id E96BA24B\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tFri, 6 Mar 2020 17:00:10 +0100 (CET)" ], "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1583510411;\n\tbh=MpJvuZDjzBrOPvsg/HgJH2pGkWqIMvr3TvteRSPH9R4=;\n\th=From:To:Subject:Date:From;\n\tb=cWeaFSApvGY9hs2jgsB5595lcAK91mbADtKz3ufW4h+A9ACurcq6iPq09fCqBqemh\n\tCCpkG3os1ph6xzEWt4XrkdySLuwBy097E/IGcYPifuG4UDgWhAHAh28uZ12mOGzHJ5\n\twLDnjikcew4t0YVAyp1TQjFiXKe+bGFNmRj+GByA=", "From": "Laurent Pinchart <laurent.pinchart@ideasonboard.com>", "To": "libcamera-devel@lists.libcamera.org", "Date": "Fri, 6 Mar 2020 17:59:30 +0200", "Message-Id": "<20200306160002.30549-1-laurent.pinchart@ideasonboard.com>", "X-Mailer": "git-send-email 2.24.1", "MIME-Version": "1.0", "Content-Type": "text/plain; charset=UTF-8", "Content-Transfer-Encoding": "8bit", "Subject": "[libcamera-devel] [PATCH v2 00/32] libcamera: Add support for array\n\tcontrols", "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": "Fri, 06 Mar 2020 16:00:11 -0000" }, "content": "Hello,\n\nThis large patch series is the result of collective work from Jacopo and\nme. It adds support in the libcamera Control classes to handle array of\nvalues, in addition to the single values we support today.\n\nCompared to v1, small issues have been fixed, based on review comments.\nThe patches not meant for integration have been dropped.\n\nThe first two patches (01/32 and 02/32) add an implementation of the\nC++20 std::span<> class and a related test. This will be used\nextensively to support array controls.\n\nThe next 13 patches (03/32 to 15/32) refactor the control-related\nclasses, as well as the IPA control code, to prepare for array controls.\nPatch 16/32 is then the main change in the series, implementing support\nfor array controls, and patch 17/32 improves the ControlList::set() API\nto make array controls more usable. Patch 18/32 wires this up in the\nyaml parser.\n\nPatches 19/32 and 20/32 are a small intermission that add support for\nfloat and bytes controls (previously int8_t). The latter is particularly\nuseful to create byte array controls. Patch 21/32 then changes to\nboolean control print code to use lower case.\n\nPatch 22/32 adds support for array controls in the IPA protocol, patches\n23/32 to 25/32 improve the ByteStreamBuffer class and patches 26/32 to\n29/32 extend the control serializer to support array controls.\n\nPatches 30/32 and 31/32 extend the ControlValue test cases to test all\ncontrol types and array controls. Note that the array control API of the\nControlList class isn't tested here, for lack of an array control\ndefined in libcamera. Separate tests with a fictional array control have\nbeen performed and will be reposted separately when a real array control\nwill be available.\n\nPatch 32/32 finally extends the cam utility to support array controls.\n\nJacopo Mondi (12):\n libcamera: Add a C++20-compliant std::span<> implementation\n libcamera: gen-controls: Fix documentation issue with <<\n libcamera: ipa: Remove unused IPA control types\n libcamera: controls: Reorder ControlValue methods\n libcamera: controls: Support array controls in ControlValue\n libcamera: controls: Add a 'size' yaml property\n libcamera: controls: Add support for float controls\n libcamera: controls: Add support for byte controls\n libcamera: byte_stream_buffer: Fix documentation of read() and write()\n libcamera: byte_stream_buffer: Add Span<> support\n libcamera: control_serializer: Add support for array controls\n cam: Add option to list camera properties\n\nLaurent Pinchart (20):\n test: Add Span test\n libcamera: ipa: Make <ipa/ipa_controls.h> self-contained\n libcamera: ipa: Test control structure size with static_assert\n libcamera: controls: Don't convert 32-bit and 64-bit implicitly\n libcamera: controls: Decouple control and value type in\n ControlList::set()\n libcamera: controls: Return control by value\n libcamera: controls: Add templates to convert a type T to a\n ControlType\n libcamera: controls: Move ControlValue get() and set() to controls.h\n libcamera: controls: Move ControlValue constructor to controls.h\n libcamera: controls: Move Control constructor to controls.h\n libcamera: controls: Expose raw data in ControlValue\n libcamera: controls: Allow passing an std::initializer list to set()\n libcamera: controls: Convert bool ControlValue to lowercase strings\n libcamera: ipa: Support array controls in ipa_control_value_entry\n libcamera: byte_stream_buffer: Add zero-copy read() variant\n libcamera: control_serializer: Use explicit ControlTypeNone case\n libcamera: control_serializer: Simplify serialization of ControlValue\n libcamera: control_serializer: Use zero-copy ByteStreamBuffer::read()\n test: controls: control_value: Expand test to cover all control types\n test: controls: control_value: Expand test to cover array controls\n\n Documentation/Doxyfile.in | 5 +-\n include/ipa/ipa_controls.h | 19 +-\n include/libcamera/controls.h | 170 +++++++--\n include/libcamera/meson.build | 1 +\n include/libcamera/span.h | 417 +++++++++++++++++++++\n src/cam/main.cpp | 28 ++\n src/cam/main.h | 1 +\n src/libcamera/byte_stream_buffer.cpp | 61 ++-\n src/libcamera/control_serializer.cpp | 184 ++++-----\n src/libcamera/controls.cpp | 308 +++++++++------\n src/libcamera/gen-controls.py | 16 +-\n src/libcamera/include/byte_stream_buffer.h | 26 ++\n src/libcamera/include/control_serializer.h | 6 +-\n src/libcamera/ipa_controls.cpp | 53 +--\n test/controls/control_value.cpp | 211 +++++++++--\n test/meson.build | 1 +\n test/span.cpp | 181 +++++++++\n 17 files changed, 1394 insertions(+), 294 deletions(-)\n create mode 100644 include/libcamera/span.h\n create mode 100644 test/span.cpp" }