[RFC v3 0/4] libcamera: Implement YamlEmitter

Jacopo Mondi jacopo.mondi at ideasonboard.com
Mon Oct 21 11:49:48 CEST 2024


v2->v3:
- Removed all smart pointers

v1->v2:
- Remove YamlEvent
- Remove heap allocation
- Remove YamlObject::close()
- Do not inherit std::unordered_map from YamlDict
- Remove YamlScaler << libcamera::Orientation

This series collects Paul's
[PATCH 0/2] libcamera: Add support for dumping capture script

and implements a YamlEmitter class on top, replacing the usage of raw
output streams with the YamlEmitter class.

RFC mostly to collect opinions on the interface.
Documentation mostly to be done, rough edges here and there :)

Jacopo Mondi (2):
  libcamera: Implement YamlEmitter
  libcamera: pipeline_handler: Use YamlEmitter

Paul Elder (2):
  pipeline: Add support for dumping capture script and metadata
  apps: cam: Add support for loading configuration from capture script

 Documentation/Doxyfile-internal.in            |   2 +
 include/libcamera/internal/camera.h           |   3 +
 include/libcamera/internal/meson.build        |   1 +
 include/libcamera/internal/pipeline_handler.h |  23 ++
 include/libcamera/internal/yaml_emitter.h     | 183 +++++++++
 src/apps/cam/camera_session.cpp               |  22 +-
 src/apps/cam/capture_script.cpp               | 164 ++++++++
 src/apps/cam/capture_script.h                 |   8 +
 src/libcamera/camera.cpp                      |  13 +
 src/libcamera/meson.build                     |   1 +
 src/libcamera/pipeline_handler.cpp            |  90 +++++
 src/libcamera/yaml_emitter.cpp                | 360 ++++++++++++++++++
 12 files changed, 860 insertions(+), 10 deletions(-)
 create mode 100644 include/libcamera/internal/yaml_emitter.h
 create mode 100644 src/libcamera/yaml_emitter.cpp

--
2.47.0



More information about the libcamera-devel mailing list