[v2,0/3] ipa: rkisp1: Honor FrameDurationLimits
mbox series

Message ID 20250221092045.3896021-1-paul.elder@ideasonboard.com
Headers show
Series
  • ipa: rkisp1: Honor FrameDurationLimits
Related show

Message

Paul Elder Feb. 21, 2025, 9:20 a.m. UTC
The RKISP1 will presently only adhere to the 'Maximum'
FrameDurationLimit, which describes the 'slowest' frame rate allowed.

This series adds support for ensuring that the 'Minimum'
FrameDurationLimit can also be used to specify a limit for the 'fastest'
frame rate that is acceptable.

This allows for instance setting a camera to operate only between 10FPS
or 1FPS with a capture script such as :

frames:
  - 0:
      FrameDurationLimits: [ 100000, 1000000 ]

which is how I have tested this.

This clears out a todo in the agc.cpp (\o/) and hopefully simplifies the
vblank calculation.

An extra patch ("ipa: rkisp1: Alias lineDuration") helps make this
addition easier to parse with smaller line lengths on the repeated use
of the Line Duration calculaion.

v2 notably also fixes honoring FrameDurationLimits for raw streams,
which v1 didn't support. v2 also fixes bitrot :)

Kieran Bingham (2):
  ipa: rkisp1: Initialise AGC from FrameDurationLimits controls
  ipa: rkisp1: Alias lineDuration

Paul Elder (1):
  rkisp1: Honor the FrameDurationLimits control

 src/ipa/rkisp1/algorithms/agc.cpp        | 77 +++++++++++++++++-------
 src/ipa/rkisp1/algorithms/agc.h          |  3 +
 src/ipa/rkisp1/ipa_context.cpp           | 16 ++++-
 src/ipa/rkisp1/ipa_context.h             |  4 ++
 src/ipa/rkisp1/rkisp1.cpp                |  8 ++-
 src/libcamera/pipeline/rkisp1/rkisp1.cpp |  1 +
 6 files changed, 84 insertions(+), 25 deletions(-)