[libcamera-devel,0/5] Raspberry Pi AGC: initial frame drop count
mbox series

Message ID 20201202115253.14705-1-david.plowman@raspberrypi.com
Headers show
Series
  • Raspberry Pi AGC: initial frame drop count
Related show

Message

David Plowman Dec. 2, 2020, 11:52 a.m. UTC
Hi everyone

Thanks for merging my last set of AGC related patches. Here's the
final set of AGC patches that I have prior to the release of our
libcamera apps, I'm hoping we can get a bit of a head start with them!

The patches are all quite bitesize, and are concerned with deciding
how many frames our pipeline handler should drop when the camera
starts up for the first time (while the AGC converges from cold).

Responsibility has been moved from the CamHelper class, where it was
entirely inappropriate really, to the AGC itself.  One of the patches
is dependent on Naush's Camera::start patch set so maybe we look
slightly askance at that one for now! So we have:

1. Add a flag to the pipeline handler so we know if it's the first
time we're starting the camera.

2. (This one depends on Naush's patch set) The number of frames to
drop is now returned by the IPA to the Camera::start method, not
Camera::configure.

3. The AGC algorithm acquires a GetDropFrames method which can be
called before the camera starts to discover the number of frames the
AGC wants us to drop.

4. The code in IPARPi::start is amended to use the new
Agc::GetDropFrames method.

5. CamHelperOv5647 needs to request that we skip 2 frames at
startup. (It is inheriting the default value of zero otherwise, which
is not correct for this sensor.)

Thanks very much!

Best regards
David

David Plowman (5):
  src: ipa: raspberrypi: Distinguish the first camera start from others
  src: raspberrypi: Pass the drop frame count in start, not configure
  src: ipa: raspberrypi: agc: Add GetDropFrames method to AGC base class
  src: ipa: raspberrypi: Move initial frame drop decision to AGC
  src: ipa: raspberrypi: Drop the correct number of frames on startup
    for ov5647

 src/ipa/raspberrypi/cam_helper.cpp            |  6 +--
 src/ipa/raspberrypi/cam_helper_ov5647.cpp     | 10 ++++
 .../raspberrypi/controller/agc_algorithm.hpp  |  1 +
 src/ipa/raspberrypi/controller/rpi/agc.cpp    | 11 ++++
 src/ipa/raspberrypi/controller/rpi/agc.hpp    |  2 +
 src/ipa/raspberrypi/raspberrypi.cpp           | 53 ++++++++++++-------
 .../pipeline/raspberrypi/raspberrypi.cpp      | 25 ++++-----
 7 files changed, 73 insertions(+), 35 deletions(-)