[libcamera-devel] [PATCH v3 0/8] libcamera: ipu3: Multiple streams support
Jacopo Mondi
jacopo at jmondi.org
Wed Apr 3 17:07:27 CEST 2019
Hello,
based on latest master, which includes ImgU support, this series
adds support for multiple streams (viewfinder and output ones) to the IPU3
pipeline handler.
The implementation supports 2 streams per camera, captured from the main and
the secondary output of an ImgU unit.
To test the series, I have applied on top of this patches on the mailing list
from Niklas that extend the cam application to support multiple streams, and
add support for stream roles:
The result is available in the "jmondi/imgu-multi-v3-roles" private branch
and I've validated it capturing the two streams singularly and the together.
As an example, the following command line captures from viewfinder and main
output at the same time, with different resolutions:
./src/cam/cam -c "ov5670 4-0036 1" -C --file=/tmp/frame-# -s role=viewfinder,width=640,height=480 -s role=still,width=2560,height=1920
More testing is of course welcome.
Thanks
j
Jacopo Mondi (8):
libcamera: utils: Define BIT() macro
libcamera: ipu3: Create camera with 2 streams
libcamera: camera: allocateBuffers: Pass the stream set
libcamera: ipu3: Add multiple stream memory management
libcamera: request: Add streams() method
libcamera: ipu3: Queue request for multiple streams
libcamera: pipeline: Add method to retrieve Request from Buffer
libcamera: ipu3: Connect viewfinder's BufferReady signal
include/libcamera/request.h | 5 +
src/libcamera/camera.cpp | 15 +-
src/libcamera/include/pipeline_handler.h | 9 +-
src/libcamera/include/utils.h | 1 +
src/libcamera/pipeline/ipu3/ipu3.cpp | 346 +++++++++++++++++------
src/libcamera/pipeline/uvcvideo.cpp | 18 +-
src/libcamera/pipeline/vimc.cpp | 18 +-
src/libcamera/pipeline_handler.cpp | 37 ++-
src/libcamera/request.cpp | 22 ++
src/libcamera/utils.cpp | 5 +
10 files changed, 366 insertions(+), 110 deletions(-)
--
2.21.0
More information about the libcamera-devel
mailing list