[libcamera-devel,00/27] Capture frames throught requests
mbox series

Message ID 20190206060818.13907-1-laurent.pinchart@ideasonboard.com
Headers show
Series
  • Capture frames throught requests
Related show

Message

Laurent Pinchart Feb. 6, 2019, 6:07 a.m. UTC
Hello,

This patch series implements support for capturing frames through
requests. This serves primarly as a sketch of the camera API exposed to
applications, and is still missing many features, but shows how the
libcamera API could be exercized.

All three pipeline handlers (UVC, IPU3 and VIMC) are implemented.

Jacopo Mondi (6):
  libcamera: v4l2_device: Add comments to method parameters
  libcamera: Add geometry.h
  libcamera: Add V4L2Subdevice
  libcamera: Provide a Request object
  libcamera: pipeline: ipu3: Create video devices and subdevices
  libcamera: pipeline: ipu3: Implement capture support

Kieran Bingham (10):
  libcamera: Add Buffer Management
  test: v4l2_device: Use DeviceEnumerator to find a UVCVideo
  libcamera: v4l2_device: Request buffers from the device
  test: v4l2_device: Add request_buffers test
  libcamera: v4l2_device: Implement queue/dequeue operations
  libcamera: v4l2_device: Implement stream{On,Off}
  test: v4l2_device: Add StreamOn/StreamOff test
  test: v4l2_device: Provide asynchronous capture test
  libcamera: stream: Construct a stream
  libcamera: pipeline: uvcvideo: Implement capture support

Niklas Söderlund (11):
  libcamera: v4l2_device: Update dequeued buffer information
  libcamera: stream: Add stream configuration to the stream object
  libcamera: pipeline_handler: Extend the interface to support capture
  libcamera: camera: Add helper to check for exclusive access
  libcamera: camera: Cache the stream configuration in the stream object
  libcamera: camera: Extend the interface to support capture
  libcamera: pipeline: vimc: Set a default format
  libcamera: pipeline: vimc: Implement capture support
  cam: Add capture operation
  cam: Add BufferWriter helper
  cam: Add option to write raw frames to disk

 include/libcamera/buffer.h               |  82 ++++++
 include/libcamera/camera.h               |  15 +
 include/libcamera/libcamera.h            |   2 +
 include/libcamera/meson.build            |   2 +
 include/libcamera/request.h              |  44 +++
 include/libcamera/stream.h               |  22 +-
 src/cam/buffer_writer.cpp                |  63 +++++
 src/cam/buffer_writer.h                  |  25 ++
 src/cam/main.cpp                         | 162 +++++++++--
 src/cam/meson.build                      |   1 +
 src/libcamera/buffer.cpp                 | 279 +++++++++++++++++++
 src/libcamera/camera.cpp                 | 181 +++++++++++-
 src/libcamera/geometry.cpp               |  49 ++++
 src/libcamera/include/geometry.h         |  22 ++
 src/libcamera/include/pipeline_handler.h |  10 +
 src/libcamera/include/v4l2_device.h      |  33 ++-
 src/libcamera/include/v4l2_subdevice.h   |  51 ++++
 src/libcamera/meson.build                |   4 +
 src/libcamera/pipeline/ipu3/ipu3.cpp     | 227 ++++++++++++---
 src/libcamera/pipeline/uvcvideo.cpp      |  57 +++-
 src/libcamera/pipeline/vimc.cpp          |  63 ++++-
 src/libcamera/pipeline_handler.cpp       |  67 +++++
 src/libcamera/request.cpp                | 125 +++++++++
 src/libcamera/stream.cpp                 |  60 ++--
 src/libcamera/v4l2_device.cpp            | 341 ++++++++++++++++++++++-
 src/libcamera/v4l2_subdevice.cpp         | 265 ++++++++++++++++++
 test/v4l2_device/capture_async.cpp       |  86 ++++++
 test/v4l2_device/meson.build             |   3 +
 test/v4l2_device/request_buffers.cpp     |  32 +++
 test/v4l2_device/stream_on_off.cpp       |  35 +++
 test/v4l2_device/v4l2_device_test.cpp    |  34 ++-
 test/v4l2_device/v4l2_device_test.h      |  14 +-
 32 files changed, 2350 insertions(+), 106 deletions(-)
 create mode 100644 include/libcamera/buffer.h
 create mode 100644 include/libcamera/request.h
 create mode 100644 src/cam/buffer_writer.cpp
 create mode 100644 src/cam/buffer_writer.h
 create mode 100644 src/libcamera/buffer.cpp
 create mode 100644 src/libcamera/geometry.cpp
 create mode 100644 src/libcamera/include/geometry.h
 create mode 100644 src/libcamera/include/v4l2_subdevice.h
 create mode 100644 src/libcamera/request.cpp
 create mode 100644 src/libcamera/v4l2_subdevice.cpp
 create mode 100644 test/v4l2_device/capture_async.cpp
 create mode 100644 test/v4l2_device/request_buffers.cpp
 create mode 100644 test/v4l2_device/stream_on_off.cpp