[libcamera-devel] [PATCH v5 0/4] V4L2 compatibility layer

Paul Elder paul.elder at ideasonboard.com
Fri Jan 3 06:41:16 CET 2020


Implement the initial version of the V4L2 compatibility layer.

Patch 2/4 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 3/4 implements the mapping assignment for the
uvcvideo pipeline handler.

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

In v5, we now depend on the following two patches:
3/4 - libcamera: pipeline: uvcvideo: Fix crash when default entity is
      not found
4/4 - libcamera: object: Support reference arguments in invokeMethod()

Paul Elder (4):
  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/pipeline/uvcvideo.cpp      |   6 +-
 src/libcamera/pipeline_handler.cpp       |  13 +-
 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                 | 228 ++++++++
 src/v4l2/v4l2_camera.h                   |  85 +++
 src/v4l2/v4l2_camera_proxy.cpp           | 654 +++++++++++++++++++++++
 src/v4l2/v4l2_camera_proxy.h             |  82 +++
 src/v4l2/v4l2_compat.cpp                 |  80 +++
 src/v4l2/v4l2_compat_manager.cpp         | 257 +++++++++
 src/v4l2/v4l2_compat_manager.h           |  77 +++
 17 files changed, 1582 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

-- 
2.24.1



More information about the libcamera-devel mailing list