[libcamera-devel] [PATCH v6 0/9] libcamera: Generate unique and stable camera IDs

Niklas Söderlund niklas.soderlund at ragnatech.se
Mon Aug 3 23:17:24 CEST 2020


Hello,

This series aims to make and enforce unique camera IDs that are static
between system resets. This version is a complete rewrite of previous 
versions and centers around on firmware descriptions. Biggest chance in 
this version is that the UVC IDs are reworked from scratch.

Before this series camera names on different systems looked like this (I
do not have access to a simple pipeline device):

- ipu3
    ov13858 8-0010
    ov5670 10-0036
- raspberrypi
    imx219
- rkisp1
    ov5695 7-0036
    ov2685 7-003c
- uvcvideo
    Venus USB2.0 Camera: Venus USB2
    Logitech Webcam C930e
- vimc
    VIMC Sensor B

With this series applied camera names on the same systems:

- ipu3
    \_SB_.PCI0.I2C2.CAM0
    \_SB_.PCI0.I2C4.CAM1
- raspberrypi
    base/soc/i2c0mux/i2c at 1/imx219 at 10
- rkisp1
    base/i2c at ff160000/camera at 36
    base/i2c at ff160000/camera at 3c
- uvcvideo
    \_SB_.PCI0.RP05.PXSX-2.1.1:1.0-0ac8:3420
    \_SB_.PCI0.RP05.PXSX-2.4:1.0-046d:0843
- vimc
    VIMC Sensor B

Niklas Söderlund (9):
  libcamera: device_enumerator: Add method to lookup sysfs path
  libcamera: device_enumerator_udev: Add specialization for sysfs path
  libcamera: v4l2_device: Add method to lookup device path
  libcamera: utils: Add method to lookup firmware ID in sysfs
  libcamera: camera_sensor: Generate a sensor ID
  libcamera: pipelines: Use sensor ID as camera name
  libcamera: pipeline: uvcvideo: Generate unique camera names
  libcamera: camera: Rename name() to id()
  libcamera: camera_manager: Enforce unique camera IDs

 include/libcamera/camera.h                    |  6 +-
 include/libcamera/internal/camera_sensor.h    |  3 +
 .../libcamera/internal/device_enumerator.h    |  2 +
 .../internal/device_enumerator_udev.h         |  2 +
 include/libcamera/internal/utils.h            |  2 +
 include/libcamera/internal/v4l2_device.h      |  1 +
 src/android/camera_device.cpp                 |  4 +-
 src/cam/main.cpp                              |  8 +-
 src/gstreamer/gstlibcameraprovider.cpp        |  4 +-
 src/gstreamer/gstlibcamerasrc.cpp             |  6 +-
 src/libcamera/camera.cpp                      | 40 ++++++----
 src/libcamera/camera_controls.cpp             |  2 +-
 src/libcamera/camera_manager.cpp              | 20 ++---
 src/libcamera/camera_sensor.cpp               | 40 ++++++++++
 src/libcamera/device_enumerator.cpp           | 14 ++++
 src/libcamera/device_enumerator_udev.cpp      | 24 ++++++
 src/libcamera/framebuffer_allocator.cpp       |  2 +-
 src/libcamera/pipeline/ipu3/ipu3.cpp          | 12 ++-
 .../pipeline/raspberrypi/raspberrypi.cpp      |  7 +-
 src/libcamera/pipeline/rkisp1/rkisp1.cpp      | 16 ++--
 src/libcamera/pipeline/simple/simple.cpp      |  2 +-
 src/libcamera/pipeline/uvcvideo/uvcvideo.cpp  | 76 ++++++++++++++++++-
 src/libcamera/pipeline/vimc/vimc.cpp          | 23 +++++-
 src/libcamera/utils.cpp                       | 61 +++++++++++++++
 src/libcamera/v4l2_device.cpp                 | 27 +++++++
 src/qcam/dng_writer.cpp                       |  4 +-
 src/qcam/main_window.cpp                      | 18 ++---
 src/v4l2/v4l2_camera_proxy.cpp                |  2 +-
 test/camera-sensor.cpp                        |  3 +-
 test/libtest/vimc_sensor_test.h               | 29 +++++++
 test/pipeline/ipu3/ipu3_pipeline_test.cpp     |  2 +-
 test/pipeline/rkisp1/rkisp1_pipeline_test.cpp |  2 +-
 .../v4l2_videodevice_test.cpp                 |  4 +-
 33 files changed, 387 insertions(+), 81 deletions(-)
 create mode 100644 test/libtest/vimc_sensor_test.h

-- 
2.28.0



More information about the libcamera-devel mailing list