[{"id":35737,"web_url":"https://patchwork.libcamera.org/comment/35737/","msgid":"<175741005598.2127323.3808045284763234009@neptunite.rasen.tech>","date":"2025-09-09T09:27:35","subject":"Re: [PATCH v16 08/12] config: Add global configuration file\n\tdocumentation","submitter":{"id":17,"url":"https://patchwork.libcamera.org/api/people/17/","name":"Paul Elder","email":"paul.elder@ideasonboard.com"},"content":"Hi Milan,\n\nThanks for the patch.\n\nQuoting Milan Zamazal (2025-07-29 16:31:56)\n> Extend (and rename) the documentation of environment variables with\n> information about the configuration file.\n> \n> Signed-off-by: Milan Zamazal <mzamazal@redhat.com>\n\nIn the commit title, s/config:/Documentation:/\n(and optionally s/documentation//)\n\n> ---\n>  Documentation/documentation-contents.rst      |   2 +-\n>  Documentation/index.rst                       |   2 +-\n>  Documentation/meson.build                     |   2 +-\n>  ...ariables.rst => runtime_configuration.rst} | 105 ++++++++++++++++--\n>  4 files changed, 99 insertions(+), 12 deletions(-)\n>  rename Documentation/{environment_variables.rst => runtime_configuration.rst} (67%)\n> \n> diff --git a/Documentation/documentation-contents.rst b/Documentation/documentation-contents.rst\n> index 5c1118493..4be3729cf 100644\n> --- a/Documentation/documentation-contents.rst\n> +++ b/Documentation/documentation-contents.rst\n> @@ -7,7 +7,7 @@\n>     * :doc:`/feature_requirements`\n>     * :doc:`/guides/application-developer`\n>     * :doc:`/python-bindings`\n> -   * :doc:`/environment_variables`\n> +   * :doc:`/runtime_configuration`\n>     * :doc:`/api-html/index`\n>     * :doc:`/code-of-conduct`\n>     * |\n> diff --git a/Documentation/index.rst b/Documentation/index.rst\n> index 251112fbd..200de6f67 100644\n> --- a/Documentation/index.rst\n> +++ b/Documentation/index.rst\n> @@ -12,13 +12,13 @@\n>  \n>     Application Writer's Guide <guides/application-developer>\n>     Camera Sensor Model <camera-sensor-model>\n> -   Environment variables <environment_variables>\n>     Feature Requirements <feature_requirements>\n>     IPA Writer's guide <guides/ipa>\n>     Lens driver requirements <lens_driver_requirements>\n>     libcamera Architecture <libcamera_architecture>\n>     Pipeline Handler Writer's Guide <guides/pipeline-handler>\n>     Python Bindings <python-bindings>\n> +   Runtime configuration <runtime_configuration>\n>     Sensor driver requirements <sensor_driver_requirements>\n>     SoftwareISP Benchmarking <software-isp-benchmarking>\n>     Tracing guide <guides/tracing>\n> diff --git a/Documentation/meson.build b/Documentation/meson.build\n> index 3afdcc1a8..4e17c41c0 100644\n> --- a/Documentation/meson.build\n> +++ b/Documentation/meson.build\n> @@ -129,7 +129,6 @@ if sphinx.found()\n>          'contributing.rst',\n>          'design/ae.rst',\n>          'documentation-contents.rst',\n> -        'environment_variables.rst',\n>          'feature_requirements.rst',\n>          'guides/application-developer.rst',\n>          'guides/ipa.rst',\n> @@ -141,6 +140,7 @@ if sphinx.found()\n>          'libcamera_architecture.rst',\n>          'mali-c55.dot',\n>          'python-bindings.rst',\n> +        'runtime_configuration.rst',\n>          'sensor_driver_requirements.rst',\n>          'software-isp-benchmarking.rst',\n>         '../README.rst',\n> diff --git a/Documentation/environment_variables.rst b/Documentation/runtime_configuration.rst\n> similarity index 67%\n> rename from Documentation/environment_variables.rst\n> rename to Documentation/runtime_configuration.rst\n> index 6f1235587..8fd80c311 100644\n> --- a/Documentation/environment_variables.rst\n> +++ b/Documentation/runtime_configuration.rst\n> @@ -2,15 +2,98 @@\n>  \n>  .. include:: documentation-contents.rst\n>  \n> -Environment variables\n> +Runtime configuration\n>  =====================\n>  \n> -The libcamera behaviour can be tuned through environment variables. This\n> -document lists all the available variables and describes their usage.\n> +The libcamera behaviour can be tuned through a configuration file or\n> +environment variables. This document lists all the configuration options\n> +and describes their usage.\n> +\n> +General rules\n> +-------------\n> +\n> +The configuration file is looked up in the following locations, in this\n> +order:\n> +\n> +- $XDG_CONFIG_HOME/libcamera/configuration.yaml\n> +- LIBCAMERA_SYSCONF_DIR/configuration.yaml\n> +- LIBCAMERA_DATA_DIR/libcamera/configuration.yaml\n> +\n> +The first configuration file found wins, configuration files in other\n> +locations are ignored.\n> +\n> +Settings in environment variables take precedence over settings in\n> +configuration files. This allows overriding behaviour temporarily\n> +without the need to modify configuration files.\n> +\n> +Configuration options\n> +---------------------\n> +\n> +Here is an overview of the available configuration options, in the YAML\n> +file structure:\n> +\n> +::\n> +\n> +  configuration:\n> +    ipa:\n> +      force_isolation: # true/false\n> +      config_paths:\n> +      - ... # full path to a directory\n> +      module_paths:\n> +      - ... # full path to a directory\n> +    pipelines_match_list:\n> +    - ... # pipeline name\n> +    pipelines:\n> +      rpi:\n> +        bcm2835:\n> +          pipeline_handler:\n> +            ...\n> +        pisp:\n> +          pipeline_handler:\n> +            ...\n> +      simple:\n> +        supported_devices:\n> +        - driver: # driver name, e.g. `mxc-isi`\n> +          software_isp: # true/false\n> +\n> +Configuration file example\n> +--------------------------\n> +\n> +::\n> +\n> +   ---\n> +   version: 1\n> +   configuration:\n> +     ipa:\n> +       config_paths:\n> +       - /home/user/.libcamera/share/ipa\n> +       - /opt/libcamera/vendor/share/ipa\n> +       module_paths:\n> +       - /home/user/.libcamera/lib\n> +       - /opt/libcamera/vendor/lib\n> +       proxy_paths:\n> +       - /home/user/.libcamera/proxy/worker\n> +       - /opt/libcamera/vendor/proxy/worker\n> +       force_isolation: true\n> +     pipelines_match_list:\n> +     - rkisp1\n> +     - simple\n> +     pipelines:\n> +       rpi:\n> +         bcm2835:\n> +           pipeline_handler:\n> +             min_unicam_buffers: 2\n> +             min_total_unicam_buffers: 2\n> +       simple:\n> +         supported_devices:\n> +         - driver: mxc-isi\n> +           software_isp: true\n>  \n>  List of variables\n>  -----------------\n>  \n> +The corresponding configuration file paths, if available, are listed in parentheses.\n> +\n>  LIBCAMERA_LOG_FILE\n>     The custom destination for log output.\n>  \n> @@ -24,27 +107,27 @@ LIBCAMERA_LOG_LEVELS\n>  LIBCAMERA_LOG_NO_COLOR\n>     Disable coloring of log messages (`more <Notes about debugging_>`__).\n>  \n> -LIBCAMERA_IPA_CONFIG_PATH\n> +LIBCAMERA_IPA_CONFIG_PATH (ipa.config_paths)\n>     Define custom search locations for IPA configurations (`more <IPA configuration_>`__).\n>  \n>     Example value: ``${HOME}/.libcamera/share/ipa:/opt/libcamera/vendor/share/ipa``\n>  \n> -LIBCAMERA_IPA_FORCE_ISOLATION\n> +LIBCAMERA_IPA_FORCE_ISOLATION (ipa.force_isolation)\n>     When set to a non-empty string, force process isolation of all IPA modules.\n>  \n>     Example value: ``1``\n>  \n> -LIBCAMERA_IPA_MODULE_PATH\n> +LIBCAMERA_IPA_MODULE_PATH (ipa.module_paths)\n>     Define custom search locations for IPA modules (`more <IPA module_>`__).\n>  \n>     Example value: ``${HOME}/.libcamera/lib:/opt/libcamera/vendor/lib``\n>  \n> -LIBCAMERA_IPA_PROXY_PATH\n> +LIBCAMERA_IPA_PROXY_PATH (ipa.proxy_paths)\n>     Define custom full path for a proxy worker for a given executable name.\n>  \n>     Example value: ``${HOME}/.libcamera/proxy/worker:/opt/libcamera/vendor/proxy/worker``\n>  \n> -LIBCAMERA_PIPELINES_MATCH_LIST\n> +LIBCAMERA_PIPELINES_MATCH_LIST (pipelines_match_list)\n>     Define an ordered list of pipeline names to be used to match the media\n>     devices in the system. The pipeline handler names used to populate the\n>     variable are the ones passed to the REGISTER_PIPELINE_HANDLER() macro in the\n> @@ -55,6 +138,10 @@ LIBCAMERA_PIPELINES_MATCH_LIST\n>  LIBCAMERA_RPI_CONFIG_FILE\n>     Define a custom configuration file to use in the Raspberry Pi pipeline handler.\n>  \n> +   Instead of using a separate configuration file, the whole\n> +   configuration can be put directly to the global configuration file as\n\ns/to/into/\n\nWith these changes,\n\nReviewed-by: Paul Elder <paul.elder@ideasonboard.com>\n\n> +   outlined above.\n> +\n>     Example value: ``/usr/local/share/libcamera/pipeline/rpi/vc4/minimal_mem.yaml``\n>  \n>  LIBCAMERA_<NAME>_TUNING_FILE\n> @@ -156,7 +243,7 @@ code.\n>  IPA configuration\n>  ~~~~~~~~~~~~~~~~~\n>  \n> -IPA modules use configuration files to store parameters. The format and\n> +IPA modules use their own configuration files to store parameters. The format and\n>  contents of the configuration files is specific to the IPA module. They usually\n>  contain tuning parameters for the algorithms, in JSON format.\n>  \n> -- \n> 2.50.1\n>","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 BB097C324E\n\tfor <parsemail@patchwork.libcamera.org>;\n\tTue,  9 Sep 2025 09:27:45 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id BA24269339;\n\tTue,  9 Sep 2025 11:27:44 +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 2B15769339\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue,  9 Sep 2025 11:27:42 +0200 (CEST)","from neptunite.rasen.tech (unknown\n\t[IPv6:2404:7a81:160:2100:6f3a:4f34:f1fa:8b3])\n\tby perceval.ideasonboard.com (Postfix) with UTF8SMTPSA id 5B0AD605;\n\tTue,  9 Sep 2025 11:26:28 +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=\"UD7dVPGi\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1757409988;\n\tbh=kd6wBcfr0l9R2C2LjPQgiWYPnHMtska5yRxACvfbd8Y=;\n\th=In-Reply-To:References:Subject:From:Cc:To:Date:From;\n\tb=UD7dVPGiGk8pBEG1fEPJ0lvr9bAkohTXOvBhKGkzvjoUC1a8D0fU1X1Rq2tlv1DvQ\n\tqHArhutPYRJC17eoDJzE2SGbQrObkwPrmbY9ZluNEE1cN2Ahs26phGzQHZVXUOEODk\n\tZbPKI11r0jc7tyhi5YAPOObgSf4XW25GXFyFKTv8=","Content-Type":"text/plain; charset=\"utf-8\"","MIME-Version":"1.0","Content-Transfer-Encoding":"quoted-printable","In-Reply-To":"<20250729073201.5369-9-mzamazal@redhat.com>","References":"<20250729073201.5369-1-mzamazal@redhat.com>\n\t<20250729073201.5369-9-mzamazal@redhat.com>","Subject":"Re: [PATCH v16 08/12] config: Add global configuration file\n\tdocumentation","From":"Paul Elder <paul.elder@ideasonboard.com>","Cc":"Milan Zamazal <mzamazal@redhat.com>, Kieran Bingham\n\t<kieran.bingham@ideasonboard.com>, =?utf-8?q?Barnab=C3=A1s_P=C5=91cze?=\n\t<barnabas.pocze@ideasonboard.com>, Laurent Pinchart\n\t<laurent.pinchart@ideasonboard.com>","To":"Milan Zamazal <mzamazal@redhat.com>, libcamera-devel@lists.libcamera.org","Date":"Tue, 09 Sep 2025 18:27:35 +0900","Message-ID":"<175741005598.2127323.3808045284763234009@neptunite.rasen.tech>","User-Agent":"alot/0.0.0","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>"}},{"id":35738,"web_url":"https://patchwork.libcamera.org/comment/35738/","msgid":"<175741010156.2127323.1275641106613795257@neptunite.rasen.tech>","date":"2025-09-09T09:28:21","subject":"Re: [PATCH v16 08/12] config: Add global configuration file\n\tdocumentation","submitter":{"id":17,"url":"https://patchwork.libcamera.org/api/people/17/","name":"Paul Elder","email":"paul.elder@ideasonboard.com"},"content":"Quoting Paul Elder (2025-09-09 18:27:35)\n> Hi Milan,\n> \n> Thanks for the patch.\n> \n> Quoting Milan Zamazal (2025-07-29 16:31:56)\n> > Extend (and rename) the documentation of environment variables with\n> > information about the configuration file.\n> > \n> > Signed-off-by: Milan Zamazal <mzamazal@redhat.com>\n> \n> In the commit title, s/config:/Documentation:/\n> (and optionally s/documentation//)\n\nnvm, it's better to keep \"documentation\".\n\n\nPaul\n\n> \n> > ---\n> >  Documentation/documentation-contents.rst      |   2 +-\n> >  Documentation/index.rst                       |   2 +-\n> >  Documentation/meson.build                     |   2 +-\n> >  ...ariables.rst => runtime_configuration.rst} | 105 ++++++++++++++++--\n> >  4 files changed, 99 insertions(+), 12 deletions(-)\n> >  rename Documentation/{environment_variables.rst => runtime_configuration.rst} (67%)\n> > \n> > diff --git a/Documentation/documentation-contents.rst b/Documentation/documentation-contents.rst\n> > index 5c1118493..4be3729cf 100644\n> > --- a/Documentation/documentation-contents.rst\n> > +++ b/Documentation/documentation-contents.rst\n> > @@ -7,7 +7,7 @@\n> >     * :doc:`/feature_requirements`\n> >     * :doc:`/guides/application-developer`\n> >     * :doc:`/python-bindings`\n> > -   * :doc:`/environment_variables`\n> > +   * :doc:`/runtime_configuration`\n> >     * :doc:`/api-html/index`\n> >     * :doc:`/code-of-conduct`\n> >     * |\n> > diff --git a/Documentation/index.rst b/Documentation/index.rst\n> > index 251112fbd..200de6f67 100644\n> > --- a/Documentation/index.rst\n> > +++ b/Documentation/index.rst\n> > @@ -12,13 +12,13 @@\n> >  \n> >     Application Writer's Guide <guides/application-developer>\n> >     Camera Sensor Model <camera-sensor-model>\n> > -   Environment variables <environment_variables>\n> >     Feature Requirements <feature_requirements>\n> >     IPA Writer's guide <guides/ipa>\n> >     Lens driver requirements <lens_driver_requirements>\n> >     libcamera Architecture <libcamera_architecture>\n> >     Pipeline Handler Writer's Guide <guides/pipeline-handler>\n> >     Python Bindings <python-bindings>\n> > +   Runtime configuration <runtime_configuration>\n> >     Sensor driver requirements <sensor_driver_requirements>\n> >     SoftwareISP Benchmarking <software-isp-benchmarking>\n> >     Tracing guide <guides/tracing>\n> > diff --git a/Documentation/meson.build b/Documentation/meson.build\n> > index 3afdcc1a8..4e17c41c0 100644\n> > --- a/Documentation/meson.build\n> > +++ b/Documentation/meson.build\n> > @@ -129,7 +129,6 @@ if sphinx.found()\n> >          'contributing.rst',\n> >          'design/ae.rst',\n> >          'documentation-contents.rst',\n> > -        'environment_variables.rst',\n> >          'feature_requirements.rst',\n> >          'guides/application-developer.rst',\n> >          'guides/ipa.rst',\n> > @@ -141,6 +140,7 @@ if sphinx.found()\n> >          'libcamera_architecture.rst',\n> >          'mali-c55.dot',\n> >          'python-bindings.rst',\n> > +        'runtime_configuration.rst',\n> >          'sensor_driver_requirements.rst',\n> >          'software-isp-benchmarking.rst',\n> >         '../README.rst',\n> > diff --git a/Documentation/environment_variables.rst b/Documentation/runtime_configuration.rst\n> > similarity index 67%\n> > rename from Documentation/environment_variables.rst\n> > rename to Documentation/runtime_configuration.rst\n> > index 6f1235587..8fd80c311 100644\n> > --- a/Documentation/environment_variables.rst\n> > +++ b/Documentation/runtime_configuration.rst\n> > @@ -2,15 +2,98 @@\n> >  \n> >  .. include:: documentation-contents.rst\n> >  \n> > -Environment variables\n> > +Runtime configuration\n> >  =====================\n> >  \n> > -The libcamera behaviour can be tuned through environment variables. This\n> > -document lists all the available variables and describes their usage.\n> > +The libcamera behaviour can be tuned through a configuration file or\n> > +environment variables. This document lists all the configuration options\n> > +and describes their usage.\n> > +\n> > +General rules\n> > +-------------\n> > +\n> > +The configuration file is looked up in the following locations, in this\n> > +order:\n> > +\n> > +- $XDG_CONFIG_HOME/libcamera/configuration.yaml\n> > +- LIBCAMERA_SYSCONF_DIR/configuration.yaml\n> > +- LIBCAMERA_DATA_DIR/libcamera/configuration.yaml\n> > +\n> > +The first configuration file found wins, configuration files in other\n> > +locations are ignored.\n> > +\n> > +Settings in environment variables take precedence over settings in\n> > +configuration files. This allows overriding behaviour temporarily\n> > +without the need to modify configuration files.\n> > +\n> > +Configuration options\n> > +---------------------\n> > +\n> > +Here is an overview of the available configuration options, in the YAML\n> > +file structure:\n> > +\n> > +::\n> > +\n> > +  configuration:\n> > +    ipa:\n> > +      force_isolation: # true/false\n> > +      config_paths:\n> > +      - ... # full path to a directory\n> > +      module_paths:\n> > +      - ... # full path to a directory\n> > +    pipelines_match_list:\n> > +    - ... # pipeline name\n> > +    pipelines:\n> > +      rpi:\n> > +        bcm2835:\n> > +          pipeline_handler:\n> > +            ...\n> > +        pisp:\n> > +          pipeline_handler:\n> > +            ...\n> > +      simple:\n> > +        supported_devices:\n> > +        - driver: # driver name, e.g. `mxc-isi`\n> > +          software_isp: # true/false\n> > +\n> > +Configuration file example\n> > +--------------------------\n> > +\n> > +::\n> > +\n> > +   ---\n> > +   version: 1\n> > +   configuration:\n> > +     ipa:\n> > +       config_paths:\n> > +       - /home/user/.libcamera/share/ipa\n> > +       - /opt/libcamera/vendor/share/ipa\n> > +       module_paths:\n> > +       - /home/user/.libcamera/lib\n> > +       - /opt/libcamera/vendor/lib\n> > +       proxy_paths:\n> > +       - /home/user/.libcamera/proxy/worker\n> > +       - /opt/libcamera/vendor/proxy/worker\n> > +       force_isolation: true\n> > +     pipelines_match_list:\n> > +     - rkisp1\n> > +     - simple\n> > +     pipelines:\n> > +       rpi:\n> > +         bcm2835:\n> > +           pipeline_handler:\n> > +             min_unicam_buffers: 2\n> > +             min_total_unicam_buffers: 2\n> > +       simple:\n> > +         supported_devices:\n> > +         - driver: mxc-isi\n> > +           software_isp: true\n> >  \n> >  List of variables\n> >  -----------------\n> >  \n> > +The corresponding configuration file paths, if available, are listed in parentheses.\n> > +\n> >  LIBCAMERA_LOG_FILE\n> >     The custom destination for log output.\n> >  \n> > @@ -24,27 +107,27 @@ LIBCAMERA_LOG_LEVELS\n> >  LIBCAMERA_LOG_NO_COLOR\n> >     Disable coloring of log messages (`more <Notes about debugging_>`__).\n> >  \n> > -LIBCAMERA_IPA_CONFIG_PATH\n> > +LIBCAMERA_IPA_CONFIG_PATH (ipa.config_paths)\n> >     Define custom search locations for IPA configurations (`more <IPA configuration_>`__).\n> >  \n> >     Example value: ``${HOME}/.libcamera/share/ipa:/opt/libcamera/vendor/share/ipa``\n> >  \n> > -LIBCAMERA_IPA_FORCE_ISOLATION\n> > +LIBCAMERA_IPA_FORCE_ISOLATION (ipa.force_isolation)\n> >     When set to a non-empty string, force process isolation of all IPA modules.\n> >  \n> >     Example value: ``1``\n> >  \n> > -LIBCAMERA_IPA_MODULE_PATH\n> > +LIBCAMERA_IPA_MODULE_PATH (ipa.module_paths)\n> >     Define custom search locations for IPA modules (`more <IPA module_>`__).\n> >  \n> >     Example value: ``${HOME}/.libcamera/lib:/opt/libcamera/vendor/lib``\n> >  \n> > -LIBCAMERA_IPA_PROXY_PATH\n> > +LIBCAMERA_IPA_PROXY_PATH (ipa.proxy_paths)\n> >     Define custom full path for a proxy worker for a given executable name.\n> >  \n> >     Example value: ``${HOME}/.libcamera/proxy/worker:/opt/libcamera/vendor/proxy/worker``\n> >  \n> > -LIBCAMERA_PIPELINES_MATCH_LIST\n> > +LIBCAMERA_PIPELINES_MATCH_LIST (pipelines_match_list)\n> >     Define an ordered list of pipeline names to be used to match the media\n> >     devices in the system. The pipeline handler names used to populate the\n> >     variable are the ones passed to the REGISTER_PIPELINE_HANDLER() macro in the\n> > @@ -55,6 +138,10 @@ LIBCAMERA_PIPELINES_MATCH_LIST\n> >  LIBCAMERA_RPI_CONFIG_FILE\n> >     Define a custom configuration file to use in the Raspberry Pi pipeline handler.\n> >  \n> > +   Instead of using a separate configuration file, the whole\n> > +   configuration can be put directly to the global configuration file as\n> \n> s/to/into/\n> \n> With these changes,\n> \n> Reviewed-by: Paul Elder <paul.elder@ideasonboard.com>\n> \n> > +   outlined above.\n> > +\n> >     Example value: ``/usr/local/share/libcamera/pipeline/rpi/vc4/minimal_mem.yaml``\n> >  \n> >  LIBCAMERA_<NAME>_TUNING_FILE\n> > @@ -156,7 +243,7 @@ code.\n> >  IPA configuration\n> >  ~~~~~~~~~~~~~~~~~\n> >  \n> > -IPA modules use configuration files to store parameters. The format and\n> > +IPA modules use their own configuration files to store parameters. The format and\n> >  contents of the configuration files is specific to the IPA module. They usually\n> >  contain tuning parameters for the algorithms, in JSON format.\n> >  \n> > -- \n> > 2.50.1\n> >","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 4EBFFC324E\n\tfor <parsemail@patchwork.libcamera.org>;\n\tTue,  9 Sep 2025 09:28:29 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 02E2369339;\n\tTue,  9 Sep 2025 11:28:29 +0200 (CEST)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 78E7769339\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue,  9 Sep 2025 11:28:27 +0200 (CEST)","from neptunite.rasen.tech (unknown\n\t[IPv6:2404:7a81:160:2100:6f3a:4f34:f1fa:8b3])\n\tby perceval.ideasonboard.com (Postfix) with UTF8SMTPSA id 1272E605;\n\tTue,  9 Sep 2025 11:27: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=\"HB5eFXI/\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1757410034;\n\tbh=fJyiPaPKvniNuatEL+m69TTRyyDDYx9pOZFIyTg7v+E=;\n\th=In-Reply-To:References:Subject:From:Cc:To:Date:From;\n\tb=HB5eFXI/xxsNyOLdbKF3ns5oVEgNchA+cbA0gWc1UEfDwFd26w9vCd/p3jEZ7W2Gy\n\tAl5d4ckozuWLzAziEw8YeL5hZ7zPQtmHVmNxpCNCMvEP1GgKVC4XI5elf3c3tXnyl4\n\t3wl7aa53m6IerfCKHTgcgZs+6VXL00CBYzTJuVdQ=","Content-Type":"text/plain; charset=\"utf-8\"","MIME-Version":"1.0","Content-Transfer-Encoding":"quoted-printable","In-Reply-To":"<175741005598.2127323.3808045284763234009@neptunite.rasen.tech>","References":"<20250729073201.5369-1-mzamazal@redhat.com>\n\t<20250729073201.5369-9-mzamazal@redhat.com>\n\t<175741005598.2127323.3808045284763234009@neptunite.rasen.tech>","Subject":"Re: [PATCH v16 08/12] config: Add global configuration file\n\tdocumentation","From":"Paul Elder <paul.elder@ideasonboard.com>","Cc":"Milan Zamazal <mzamazal@redhat.com>, Kieran Bingham\n\t<kieran.bingham@ideasonboard.com>, =?utf-8?q?Barnab=C3=A1s_P=C5=91cze?=\n\t<barnabas.pocze@ideasonboard.com>, Laurent Pinchart\n\t<laurent.pinchart@ideasonboard.com>","To":"Milan Zamazal <mzamazal@redhat.com>, libcamera-devel@lists.libcamera.org","Date":"Tue, 09 Sep 2025 18:28:21 +0900","Message-ID":"<175741010156.2127323.1275641106613795257@neptunite.rasen.tech>","User-Agent":"alot/0.0.0","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>"}}]