[libcamera-devel] [PATCH v1 0/6] Raspberry Pi: Efficient start/stop/start sequences

Naushir Patuck naush at raspberrypi.com
Mon Mar 7 13:46:27 CET 2022


Hi,

This series addresses a problem with the existing Raspberry Pi pipeline handler,
were we do not efficiently handle a camera start/stop/restart sequence. This is
because we de-allocate and re-allocate buffers on stop and start respectively.
However, since no camera configure has occurred, the re-allocation is unnecessary.

This series attempts to fix this by not de-allocating buffers on a stop, and
only re-allocating on start if a configure has been called in-between. We also
fix a small bug in the V4L2 buffer cache, which does not clear state on a stop
in all circumstances.

Thanks,
Naush

Naushir Patuck (6):
  pipeline: raspberrypi: Avoid over-allocation for ISP Output 1
  pipeline: raspberrypi: Move freeBuffers() to the RPiCameraData class
  pipeline: raspberrypi: Free buffers in the RPiCamera destructor and
    re-configure
  pipeline: raspberrypi: Add a reconfigured flag
  pipeline: raspberrypi: Repurpose RPi::Stream::reset()
  libcamera: v4l2_videodevice: Empty the V4L2 buffer cache on
    streamOff()

 include/libcamera/internal/v4l2_videodevice.h |  1 +
 .../pipeline/raspberrypi/raspberrypi.cpp      | 54 ++++++++++++-------
 .../pipeline/raspberrypi/rpi_stream.cpp       | 11 ++--
 src/libcamera/v4l2_videodevice.cpp            | 16 ++++++
 4 files changed, 56 insertions(+), 26 deletions(-)

-- 
2.25.1



More information about the libcamera-devel mailing list