[PATCH v2 0/3] gstreamer: Generate controls from control_ids_*.yaml files

Jaslo Ziska jaslo at ziska.de
Tue Aug 13 14:25:04 CEST 2024


Hi everyone,

this is the second version of the patch set to implement gstreamer controls
from the yaml files.
This now depends on "[PATCH 00/10] libcamera: Improve code generation for
controls" for the code generation.

The following things changed:

The (old) third commit fixing a typo has been removed as it is already merged.

The first commit is new: it removes the auto-focus-mode property from the
device provider where it has been added on accident.

The commit message has been updated in the second commit.

The third commit, which adds the code that generates the gstreamer controls,
now makes use of jinja2 and the new controls.py file. As a consequence the
whole code generation has been redone.

There are also some new features:

It is now possible to read the metadata returned by requests from the gstreamer
properties. This is done using a new function readMetadata() which reads the
ControlList in requestCompleted().

Before a control is set it is now checked whether this control is actually
supported by the camera. This is done by checking the cameras ControlInfoMap.

The Rectangle type is now supported.

Some checks were added to make sure the arrays passed to the element have the
correct length.

Best regards,

Jaslo

Jaslo Ziska (3):
  gstreamer: Remove auto-focus-mode property from device provider
  gstreamer: Remove auto-focus-mode property from libcamerasrc
  gstreamer: Generate controls from control_ids_*.yaml files

 src/gstreamer/gstlibcamera-controls.cpp.in | 296 +++++++++++++++++++++
 src/gstreamer/gstlibcamera-controls.h      |  43 +++
 src/gstreamer/gstlibcameraprovider.cpp     |  15 --
 src/gstreamer/gstlibcamerasrc.cpp          |  50 ++--
 src/gstreamer/meson.build                  |  10 +
 utils/codegen/controls.py                  |   8 +
 utils/codegen/gen-gst-controls.py          | 151 +++++++++++
 utils/codegen/meson.build                  |   1 +
 8 files changed, 528 insertions(+), 46 deletions(-)
 create mode 100644 src/gstreamer/gstlibcamera-controls.cpp.in
 create mode 100644 src/gstreamer/gstlibcamera-controls.h
 create mode 100755 utils/codegen/gen-gst-controls.py

--
2.46.0


More information about the libcamera-devel mailing list