[libcamera-devel,00/10] Introduce camera properties
mbox series

Message ID 20191204132106.21582-1-jacopo@jmondi.org
Headers show
Series
  • Introduce camera properties
Related show

Message

Jacopo Mondi Dec. 4, 2019, 1:20 p.m. UTC
Hello,
   this series introduces libcamera properties, generated re-using the
libcamera control generation infrastructure and defined in a dedicated
properties_ids.yaml file.

The series parses the camera properties reported by the Linux kernel through two
example read-only controls that report the camera location and mounting
orientation, collects them as libcamera properties in the CameraSensor class
and expose them from the Camera instance.

It finally replaces the hardcoded values for the ANDROID_SENSOR_ORIENTATION
and ANDROID_LENS_FACING android static metadata with values reported by the
Camera.

Thanks
   j

Jacopo Mondi (10):
  [TEMP] include: linux: Update v4l2-controls.h
  libcamera: controls: Parse 'values' in gen-controls.py
  libcamera: properties: Generate libcamera properties
  libcamera: controls: Add default to ControlRange
  libcamera: v4l2_controls: Store default value
  libcamera: camera_sensor: Parse camera properties
  libcamera: pipeline_handler: Add Camera properties
  libcamera: camera: Add Camera properties
  android: camera_device: Use Camera properties for static Metadata
  DO NOT MERGE: Reports camera properties in cam

 include/libcamera/camera.h               |  1 +
 include/libcamera/controls.h             |  7 +++-
 include/libcamera/meson.build            |  9 +++++
 include/libcamera/property_ids.h.in      | 33 +++++++++++++++++
 include/linux/v4l2-controls.h            |  7 ++++
 src/android/camera_device.cpp            | 29 +++++++++++++--
 src/cam/main.cpp                         | 11 ++++++
 src/libcamera/camera.cpp                 | 16 ++++++++-
 src/libcamera/camera_sensor.cpp          | 46 +++++++++++++++++++++++-
 src/libcamera/controls.cpp               | 17 +++++++--
 src/libcamera/gen-controls.py            | 35 ++++++++++++++++++
 src/libcamera/include/camera_sensor.h    |  6 +++-
 src/libcamera/include/pipeline_handler.h |  2 ++
 src/libcamera/meson.build                |  6 ++++
 src/libcamera/pipeline/ipu3/ipu3.cpp     |  3 ++
 src/libcamera/pipeline/rkisp1/rkisp1.cpp |  3 ++
 src/libcamera/pipeline/vimc.cpp          |  4 +++
 src/libcamera/pipeline_handler.cpp       | 19 ++++++++++
 src/libcamera/property_ids.cpp.in        | 43 ++++++++++++++++++++++
 src/libcamera/property_ids.yaml          | 34 ++++++++++++++++++
 src/libcamera/v4l2_controls.cpp          |  9 +++--
 21 files changed, 329 insertions(+), 11 deletions(-)
 create mode 100644 include/libcamera/property_ids.h.in
 create mode 100644 src/libcamera/property_ids.cpp.in
 create mode 100644 src/libcamera/property_ids.yaml

--
2.23.0