[libcamera-devel] [PATCH v6 0/5] V4L2 compatibility layer

Paul Elder paul.elder at ideasonboard.com
Sat Jan 4 01:14:08 CET 2020


Implement the initial version of the V4L2 compatibility layer.

Patch 1/5 (new addition) implements strlcpy that we use in the V4L2
compability later implementation instead of memcpying char arrays.

Patch 3/5 implements the infrastructure for the pipeline handler to
optionally assign a device number to each camera that it adds to the
camera manager, to allow the V4L2 comptibility layer to map device nodes
to libcamera cameras. Patch 4/5 implements the mapping assignment for the
uvcvideo pipeline handler.

Patch 5/5 is the complete implementation of the V4L2 compatibility
layer.

v6 is mostly cosmetic changes and minor fixes.

6th time's a charm :)

Paul Elder (5):
  libcamera: utils: Add strlcpy
  libcamera: v4l2_device, v4l2_videodevice: call open system call
    directly
  libcamera: camera_manager, pipeline_handler: allow retrieving cameras
    by device numbers
  libcamera: pipeline_handler: uvcvideo: register all Cameras along with
    a devnum
  v4l2: v4l2_compat: Add V4L2 compatibility layer

 include/libcamera/camera_manager.h       |   6 +-
 meson_options.txt                        |   5 +
 src/libcamera/camera_manager.cpp         |  61 ++-
 src/libcamera/include/pipeline_handler.h |   3 +-
 src/libcamera/include/utils.h            |   3 +
 src/libcamera/pipeline/uvcvideo.cpp      |   5 +-
 src/libcamera/pipeline_handler.cpp       |  13 +-
 src/libcamera/utils.cpp                  |  19 +
 src/libcamera/v4l2_device.cpp            |   3 +-
 src/libcamera/v4l2_videodevice.cpp       |   4 +-
 src/meson.build                          |   4 +
 src/v4l2/meson.build                     |  31 ++
 src/v4l2/v4l2_camera.cpp                 | 224 ++++++++
 src/v4l2/v4l2_camera.h                   |  85 +++
 src/v4l2/v4l2_camera_proxy.cpp           | 644 +++++++++++++++++++++++
 src/v4l2/v4l2_camera_proxy.h             |  81 +++
 src/v4l2/v4l2_compat.cpp                 |  85 +++
 src/v4l2/v4l2_compat_manager.cpp         | 250 +++++++++
 src/v4l2/v4l2_compat_manager.h           |  77 +++
 19 files changed, 1586 insertions(+), 17 deletions(-)
 create mode 100644 src/v4l2/meson.build
 create mode 100644 src/v4l2/v4l2_camera.cpp
 create mode 100644 src/v4l2/v4l2_camera.h
 create mode 100644 src/v4l2/v4l2_camera_proxy.cpp
 create mode 100644 src/v4l2/v4l2_camera_proxy.h
 create mode 100644 src/v4l2/v4l2_compat.cpp
 create mode 100644 src/v4l2/v4l2_compat_manager.cpp
 create mode 100644 src/v4l2/v4l2_compat_manager.h

-- 


More information about the libcamera-devel mailing list