Cover Letter Detail
Show a cover letter.
GET /api/covers/21353/?format=api
{ "id": 21353, "url": "https://patchwork.libcamera.org/api/covers/21353/?format=api", "web_url": "https://patchwork.libcamera.org/cover/21353/", "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": "<20240925095850.348259-1-mzamazal@redhat.com>", "date": "2024-09-25T09:58:32", "name": "[v4,00/15] Add global configuration file", "submitter": { "id": 177, "url": "https://patchwork.libcamera.org/api/people/177/?format=api", "name": "Milan Zamazal", "email": "mzamazal@redhat.com" }, "mbox": "https://patchwork.libcamera.org/cover/21353/mbox/", "series": [ { "id": 4623, "url": "https://patchwork.libcamera.org/api/series/4623/?format=api", "web_url": "https://patchwork.libcamera.org/project/libcamera/list/?series=4623", "date": "2024-09-25T09:58:32", "name": "Add global configuration file", "version": 4, "mbox": "https://patchwork.libcamera.org/series/4623/mbox/" } ], "comments": "https://patchwork.libcamera.org/api/covers/21353/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 DCD22C0F1B\n\tfor <parsemail@patchwork.libcamera.org>;\n\tWed, 25 Sep 2024 09:59:08 +0000 (UTC)", "from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id D504363502;\n\tWed, 25 Sep 2024 11:59:07 +0200 (CEST)", "from us-smtp-delivery-124.mimecast.com\n\t(us-smtp-delivery-124.mimecast.com [170.10.133.124])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id B0489634F4\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tWed, 25 Sep 2024 11:59:05 +0200 (CEST)", "from mx-prod-mc-01.mail-002.prod.us-west-2.aws.redhat.com\n\t(ec2-54-186-198-63.us-west-2.compute.amazonaws.com [54.186.198.63])\n\tby relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3,\n\tcipher=TLS_AES_256_GCM_SHA384) id us-mta-274-LrCBa1S3PpKF6F5xpdwoZw-1;\n\tWed, 25 Sep 2024 05:59:03 -0400", "from mx-prod-int-03.mail-002.prod.us-west-2.aws.redhat.com (unknown\n\t[10.30.177.12])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\tkey-exchange X25519 server-signature RSA-PSS (2048 bits)\n\tserver-digest SHA256) (No client certificate requested)\n\tby mx-prod-mc-01.mail-002.prod.us-west-2.aws.redhat.com (Postfix)\n\twith ESMTPS id 17399193E8EF; Wed, 25 Sep 2024 09:59:02 +0000 (UTC)", "from nuthatch.redhat.com (unknown [10.45.225.29])\n\tby mx-prod-int-03.mail-002.prod.us-west-2.aws.redhat.com (Postfix)\n\twith ESMTP id 2A8CF19560AA; Wed, 25 Sep 2024 09:58:59 +0000 (UTC)" ], "Authentication-Results": "lancelot.ideasonboard.com; dkim=pass (1024-bit key;\n\tunprotected) header.d=redhat.com header.i=@redhat.com\n\theader.b=\"WQdjnAFW\"; dkim-atps=neutral", "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;\n\ts=mimecast20190719; t=1727258344;\n\th=from:from:reply-to:subject:subject:date:date:message-id:message-id:\n\tto:to:cc:cc:mime-version:mime-version:content-type:content-type:\n\tcontent-transfer-encoding:content-transfer-encoding;\n\tbh=vZXHAHoCOOD3twr9WyXTj2sxQIJXrclv5CKsoswCVRE=;\n\tb=WQdjnAFWTryJZGbQDx4c6xi0fBUc8YgHpWvH5fzuinzlqAXbJB1OW8EUL/sZAD3MF8vfwN\n\tW7yLIMU5YARWSlkZMIV2/pbMCx2CJymNb/jgupoj+JI7zD7ZRu9Gyu85E/8DsUCl33umDp\n\t53do2A4lUa5aL3JvE6mkz5zUfbBDwa4=", "X-MC-Unique": "LrCBa1S3PpKF6F5xpdwoZw-1", "From": "Milan Zamazal <mzamazal@redhat.com>", "To": "libcamera-devel@lists.libcamera.org", "Cc": "Milan Zamazal <mzamazal@redhat.com>,\n\tKieran Bingham <kieran.bingham@ideasonboard.com>,\n\tNaushir Patuck <naush@raspberrypi.com>", "Subject": "[PATCH v4 00/15] Add global configuration file", "Date": "Wed, 25 Sep 2024 11:58:32 +0200", "Message-ID": "<20240925095850.348259-1-mzamazal@redhat.com>", "MIME-Version": "1.0", "X-Scanned-By": "MIMEDefang 3.0 on 10.30.177.12", "X-Mimecast-Spam-Score": "0", "X-Mimecast-Originator": "redhat.com", "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 patch series introduces global configuration file for libcamera, to\nprovide runtime configuration means other than environment variables.\nInstead of, or in addition to, the growing list of configuration\nenvironment variables, the whole configuration can be specified in a\nsingle configuration file. This is both simpler and more flexible.\n\nThis is not a replacement for specific configuration files already\npresent in libcamera.\n\nThe patches implement what is needed to introduce a configuration file\nthat can handle the current environment variables and software ISP\nTODOs. They demonstrate how to deal with the key points that must be\nconsidered. See commit messages for more details.\n\nThe configuration file is a YAML file. It is looked up in user’s home\ndirectory or, if not present, in system-wide libcamera directories.\nEnvironment variables, if set, still take precedence.\n\nThis patch series is not exhaustive, there can be future enhancements,\nmost notably configuration file validation to avoid confusions caused by\ntypos etc.\n\nNot everything has been tested because some of the patches are related\nto specific hardware.\n\nChanges in v4:\n- Rebased on current master.\n- Configuration option for LIBCAMERA_IPA_PROXY_PATH added.\n- Added a patch to include stdlib.h instead of cstdlib in yaml_parser.cpp.\n\nChanges in v3:\n- Added a configuration item for the newly introduced\n LIBCAMERA_PIPELINES_MATCH_LIST variable.\n- A minor indentation fix.\n- Fixed `pipelines.' x `pipeline.' configuration item naming mismatch.\n- Tuning files are looked up now by particular cameras attached rather than\n being specified for the whole pipeline.\n- Helpers use std::string& instead of char* for confPath arguments.\n- Protection against returning YamlObject::empty as a regular value (the\n problem has been probably exposed by addition of\n LIBCAMERA_PIPELINES_MATCH_LIST).\n\nChanges in v2:\n- Rebased on master.\n- Various cleanups, documentation improvements and minor fixes.\n- Configuration option for LIBCAMERA_RPI_TUNING_FILE added (Naush).\n- Two more patches for software ISP configuration added.\n\nMilan Zamazal (15):\n config: Introduce global runtime configuration\n yaml: Include stdlib.h instead of cstdlib\n config: Move global configuration to base\n config: Look up logging levels in the configuration file\n config: Add configuration retrieval helpers\n config: Look up log file in configuration file\n config: Look up log color configuration in configuration file\n config: Look up rpi paths in configuration file\n config: Look up IPA configurables in configuration file\n config: Look up RkISP1 tuning file in configuration file\n config: Look up pipelines match list in configuration file\n config: Allow enabling software ISP in runtime\n config: Add global configuration file documentation\n libcamera: software_isp: Make input buffer copying configurable\n libcamera: software_isp: Make measurement configurable\n\n Documentation/documentation-contents.rst | 2 +-\n Documentation/index.rst | 4 +-\n Documentation/meson.build | 2 +-\n ...ariables.rst => runtime_configuration.rst} | 119 ++++++++--\n .../libcamera/internal/global_configuration.h | 67 ++++++\n include/libcamera/internal/meson.build | 1 +\n src/libcamera/base/global_configuration.cpp | 219 ++++++++++++++++++\n src/libcamera/base/log.cpp | 24 +-\n src/libcamera/base/meson.build | 15 ++\n src/libcamera/{ => base}/yaml_parser.cpp | 2 +-\n src/libcamera/camera_manager.cpp | 19 +-\n src/libcamera/ipa_manager.cpp | 23 +-\n src/libcamera/ipa_proxy.cpp | 16 +-\n src/libcamera/meson.build | 14 --\n src/libcamera/pipeline/rkisp1/rkisp1.cpp | 20 +-\n .../pipeline/rpi/common/pipeline_base.cpp | 18 +-\n src/libcamera/pipeline/simple/simple.cpp | 12 +\n src/libcamera/process.cpp | 11 +-\n src/libcamera/software_isp/TODO | 36 ---\n src/libcamera/software_isp/debayer_cpu.cpp | 30 ++-\n src/libcamera/software_isp/debayer_cpu.h | 7 +-\n 21 files changed, 549 insertions(+), 112 deletions(-)\n rename Documentation/{environment_variables.rst => runtime_configuration.rst} (61%)\n create mode 100644 include/libcamera/internal/global_configuration.h\n create mode 100644 src/libcamera/base/global_configuration.cpp\n rename src/libcamera/{ => base}/yaml_parser.cpp (99%)" }