[libcamera-devel,v2,0/3] cam: Add support for capture scripts
mbox series

Message ID 20220520165234.7642-1-laurent.pinchart@ideasonboard.com
Headers show
Series
  • cam: Add support for capture scripts
Related show

Message

Laurent Pinchart May 20, 2022, 4:52 p.m. UTC
Hello,

This is a second version of Jacopo's series that I have reworked (with
his consent :-)) to integrate review comments. Patch 2/5 of the original
series has been dropped, and patches 4/5 and 5/5 squashed with two minor
fixes. Patch 1/3 has seen the most rework, see its changelog for
details.

Here's a copy of the original cover letter for reference:

This series provides the initial plumbing into the cam test application
of the support for driving the capture session through a "capture
script".

The target of this series is to allow users of the cam application to
list in a yaml file a list of frame ids and to associate to each frame a
dictionary of controls that will be applied to the camera at the
requested frame number.

The ability to record in a configuration file the capture session
parameters allows to automate the execution of reproducible tests and to
validate how controls are applied by the pipeline handler/IPA.

A simple example script has been added to in patch [1/3]

Going forward it could be possible to extend the capture script to
specify in all the capture parameters which are now provided through
command line arguments, such as the streams resolutions, format and so
on.

Tested on UVC camera by running the example capture script and by
visually verifying the camera brightness actually changes.

Jacopo Mondi (3):
  cam: Add a parser for capture scripts
  cam: Queue requests through CameraSession::queueRequest()
  cam: Use script parser to set controls

 src/cam/camera_session.cpp  |  16 +-
 src/cam/camera_session.h    |   3 +
 src/cam/capture-script.yaml |  46 +++++
 src/cam/capture_script.cpp  | 334 ++++++++++++++++++++++++++++++++++++
 src/cam/capture_script.h    |  60 +++++++
 src/cam/main.cpp            |   4 +
 src/cam/main.h              |   1 +
 src/cam/meson.build         |   2 +
 8 files changed, 465 insertions(+), 1 deletion(-)
 create mode 100644 src/cam/capture-script.yaml
 create mode 100644 src/cam/capture_script.cpp
 create mode 100644 src/cam/capture_script.h


base-commit: 0c1b3f5e4c5f36c19d702529d4b597415f813394