[libcamera-devel,v2,0/7] Support qv4l2 with v4l2-compat
mbox series

Message ID 20200605090106.15424-1-paul.elder@ideasonboard.com
Headers show
Series
  • Support qv4l2 with v4l2-compat
Related show

Message

Paul Elder June 5, 2020, 9 a.m. UTC
This patch series enables support for qv4l2 with the V4L2 compatibility
layer. It is a series of bugfixes first, and then the actual
implementation of the socket mechanism to allow for polling.

Changes in v2:
- remove IPAManager::instance() and make IPAManager::createIPA() static
- fix segfault on restarting streams
- support polling with eventfd instead of sockets
- other cosmetic changes


Paul Elder (7):
  IPAManager: make IPAManager lifetime explicitly managed
  IPAManager: remove instance() and make createIPA() static
  v4l2: v4l2_camera_proxy: Fix bounds check for VIDIOC_ENUM_FMT
  v4l2: v4l2_camera_proxy: Acquire only one buffer semaphore on
    VIDIOC_DQBUF
  v4l2: v4l2_camera_proxy: Don't return -EINVAL for zero sizeimage in
    REQBUFS
  v4l2: v4l2_compat: Add eventfd signaling to support polling
  v4l2: v4l2_camera_proxy: Fix segfault on restarting streams

 include/libcamera/camera_manager.h            |  1 -
 include/libcamera/internal/ipa_manager.h      | 12 +++----
 src/libcamera/camera_manager.cpp              |  3 ++
 src/libcamera/ipa_manager.cpp                 | 34 ++++++++++---------
 .../pipeline/raspberrypi/raspberrypi.cpp      |  2 +-
 src/libcamera/pipeline/rkisp1/rkisp1.cpp      |  2 +-
 src/libcamera/pipeline/vimc/vimc.cpp          |  2 +-
 src/v4l2/v4l2_camera.cpp                      |  9 +++++
 src/v4l2/v4l2_camera.h                        |  3 ++
 src/v4l2/v4l2_camera_proxy.cpp                | 32 ++++++++++++++---
 src/v4l2/v4l2_camera_proxy.h                  |  4 +++
 src/v4l2/v4l2_compat_manager.cpp              |  7 +++-
 test/ipa/ipa_interface_test.cpp               |  7 +++-
 13 files changed, 85 insertions(+), 33 deletions(-)