Hello,
this series implement support for V4L2 Controls through the V4L2 Extended
Controls APIs.
The series provide a base class for V4L2Device and V4L2Subdevice where the
control support will be implemented, as it is common between devices and
subdevices. After this, V4L2Controls are defined, by using a base template class
specialized by derived classes meant to be used to access the control value.
Using the defined data types, support to get and set a single or a list of
controls is added to the V4L2base class, to be shared by both V4L2Device and
V4L2Subdevice implementations.
Finally, controls are used to set the IPU3 pipe mode, and in a final example
patch not meant to be merged a list of control is applied to the camera sensor.
Tested on IPU3 Soraka, by inspecting the control values before and after running
the IPU3 pipeline handler.
Thanks
j
Jacopo Mondi (6):
libcamera: camera_sensor: Add dev() operation
libcamera: Provide a V4L2Base class
libcamera: Add V4L2Controls
libcamera: v4l2_base: Add V4L2 control support
libcamera: ipu3: Set pipe_mode based on stream configuration
[HACK] ipu3: Set and get a few sensor controls
src/libcamera/camera_sensor.cpp | 6 +
src/libcamera/include/camera_sensor.h | 1 +
src/libcamera/include/v4l2_base.h | 43 +++
src/libcamera/include/v4l2_controls.h | 147 ++++++++++
src/libcamera/include/v4l2_device.h | 9 +-
src/libcamera/include/v4l2_subdevice.h | 9 +-
src/libcamera/meson.build | 3 +
src/libcamera/pipeline/ipu3/ipu3.cpp | 116 ++++++++
src/libcamera/v4l2_base.cpp | 354 +++++++++++++++++++++++++
src/libcamera/v4l2_controls.cpp | 301 +++++++++++++++++++++
src/libcamera/v4l2_device.cpp | 13 +-
src/libcamera/v4l2_subdevice.cpp | 12 +-
12 files changed, 984 insertions(+), 30 deletions(-)
create mode 100644 src/libcamera/include/v4l2_base.h
create mode 100644 src/libcamera/include/v4l2_controls.h
create mode 100644 src/libcamera/v4l2_base.cpp
create mode 100644 src/libcamera/v4l2_controls.cpp
--
2.21.0