[PATCH v2 00/13] Add global configuration file
Milan Zamazal
mzamazal at redhat.com
Tue Apr 23 12:30:15 CEST 2024
This patch series introduces global configuration file for libcamera, to
provide runtime configuration means other than environment variables.
Instead of, or in addition to, the growing list of configuration
environment variables, the whole configuration can be specified in a
single configuration file. This is both simpler and more flexible.
This is not a replacement for specific configuration files already
present in libcamera.
The patches implement what is needed to introduce the configuration file
providing configuration options corresponding to the current environment
variables. They demonstrate how to deal with the key points that must
be considered. See commit messages for more details.
The configuration file is a YAML file. It is looked up in user’s home
directory or, if not present, in system-wide libcamera directories.
Environment variables, if set, still take precedence.
This patch series is not exhaustive, there can be future enhancements,
most notably configuration file validation to avoid confusions caused by
typos etc.
The initial RFC didn't get any objections, so posting a regular ready to
review patch series now.
Changes in v2:
- Rebased on master.
- Various cleanups, documentation improvements and minor fixes.
- Configuration option for LIBCAMERA_RPI_TUNING_FILE added (Naush).
- Two more patches for software ISP configuration added.
Milan Zamazal (13):
config: Introduce global runtime configuration
config: Move global configuration to base
config: Look up logging levels in the configuration file
config: Add configuration retrieval helpers
config: Look up log file in configuration file
config: Look up log color configuration in configuration file
config: Look up rpi paths in configuration file
config: Look up IPA configurables in configuration file
config: Look up RkISP1 tuning file in configuration file
config: Allow enabling software ISP in runtime
config: Add global configuration file documentation
libcamera: software_isp: Make input buffer copying configurable
libcamera: software_isp: Make measurement configurable
Documentation/index.rst | 2 +-
Documentation/meson.build | 2 +-
...ariables.rst => runtime_configuration.rst} | 104 ++++++++-
.../libcamera/internal/global_configuration.h | 64 +++++
include/libcamera/internal/meson.build | 1 +
src/libcamera/base/global_configuration.cpp | 219 ++++++++++++++++++
src/libcamera/base/log.cpp | 24 +-
src/libcamera/base/meson.build | 15 ++
src/libcamera/{ => base}/yaml_parser.cpp | 0
src/libcamera/camera_manager.cpp | 9 +
src/libcamera/ipa_manager.cpp | 23 +-
src/libcamera/ipa_proxy.cpp | 8 +-
src/libcamera/meson.build | 14 --
src/libcamera/pipeline/rkisp1/rkisp1.cpp | 9 +-
.../pipeline/rpi/common/pipeline_base.cpp | 16 +-
src/libcamera/pipeline/simple/simple.cpp | 12 +
src/libcamera/process.cpp | 11 +-
src/libcamera/software_isp/TODO | 36 ---
src/libcamera/software_isp/debayer_cpu.cpp | 30 ++-
src/libcamera/software_isp/debayer_cpu.h | 7 +-
20 files changed, 508 insertions(+), 98 deletions(-)
rename Documentation/{environment_variables.rst => runtime_configuration.rst} (63%)
create mode 100644 include/libcamera/internal/global_configuration.h
create mode 100644 src/libcamera/base/global_configuration.cpp
rename src/libcamera/{ => base}/yaml_parser.cpp (100%)
--
2.42.0
More information about the libcamera-devel
mailing list