[PATCH v9 0/8] Add VirtualPipelineHandler

Harvey Yang chenghaoyang at chromium.org
Tue Aug 20 18:23:31 CEST 2024


Hi all,

This series adds virtual pipeline handler, which doesn't depend on any
hardware, like camera sensor or ISP. Currently the configuration
supports test patterns and images.

It passed the gitlab pipeline:
https://gitlab.freedesktop.org/chenghaoyang/libcamera/-/pipelines/1253511
, with only merge-check warnings remaining.

Update in v9: Allocate contiguous memory for planes in the same
FrameBuffer.

BR,
Harvey

Harvey Yang (4):
  libcamera: add DmaBufAllocator::exportBuffers()
  libcamera: Remove PipelineHandler Fatal check of non-empty
    MediaDevices
  libcamera: pipeline: Add VirtualPipelineHandler
  libcamera: software_isp: Refactor SoftwareIsp to use
    DmaBufAllocator::exportBuffers

Konami Shu (4):
  libcamera: pipeline: Add test pattern for VirtualPipelineHandler
  libcamera: pipeline: Read config and register cameras based on the
    config
  libcamera: pipeline: Shift test pattern by 1 pixel left every frame
  libcamera: pipeline: Load images

 .../libcamera/internal/dma_buf_allocator.h    |  12 +
 meson.build                                   |   1 +
 meson_options.txt                             |   3 +-
 src/libcamera/dma_buf_allocator.cpp           |  64 +++-
 src/libcamera/pipeline/virtual/README.md      |  76 +++++
 .../pipeline/virtual/common_functions.cpp     |  27 ++
 .../pipeline/virtual/common_functions.h       |  18 ++
 .../pipeline/virtual/data/virtual.yaml        |  49 +++
 .../pipeline/virtual/frame_generator.h        |  33 ++
 .../virtual/image_frame_generator.cpp         | 154 ++++++++++
 .../pipeline/virtual/image_frame_generator.h  |  65 ++++
 src/libcamera/pipeline/virtual/meson.build    |  32 ++
 src/libcamera/pipeline/virtual/parser.cpp     | 243 +++++++++++++++
 src/libcamera/pipeline/virtual/parser.h       |  48 +++
 .../virtual/test_pattern_generator.cpp        | 148 +++++++++
 .../pipeline/virtual/test_pattern_generator.h |  58 ++++
 src/libcamera/pipeline/virtual/virtual.cpp    | 287 ++++++++++++++++++
 src/libcamera/pipeline/virtual/virtual.h      |  96 ++++++
 src/libcamera/pipeline_handler.cpp            |  11 +-
 src/libcamera/software_isp/software_isp.cpp   |  20 +-
 20 files changed, 1420 insertions(+), 25 deletions(-)
 create mode 100644 src/libcamera/pipeline/virtual/README.md
 create mode 100644 src/libcamera/pipeline/virtual/common_functions.cpp
 create mode 100644 src/libcamera/pipeline/virtual/common_functions.h
 create mode 100644 src/libcamera/pipeline/virtual/data/virtual.yaml
 create mode 100644 src/libcamera/pipeline/virtual/frame_generator.h
 create mode 100644 src/libcamera/pipeline/virtual/image_frame_generator.cpp
 create mode 100644 src/libcamera/pipeline/virtual/image_frame_generator.h
 create mode 100644 src/libcamera/pipeline/virtual/meson.build
 create mode 100644 src/libcamera/pipeline/virtual/parser.cpp
 create mode 100644 src/libcamera/pipeline/virtual/parser.h
 create mode 100644 src/libcamera/pipeline/virtual/test_pattern_generator.cpp
 create mode 100644 src/libcamera/pipeline/virtual/test_pattern_generator.h
 create mode 100644 src/libcamera/pipeline/virtual/virtual.cpp
 create mode 100644 src/libcamera/pipeline/virtual/virtual.h

-- 
2.46.0.184.g6999bdac58-goog



More information about the libcamera-devel mailing list