# SPDX-License-Identifier: LGPL-2.1-or-later
#
# Copyright (C) 2023, Raspberry Pi Ltd
#
%YAML 1.1
---
# Raspberry Pi (VC4 and PiSP) specific vendor controls
vendor: rpi
controls:
  - StatsOutputEnable:
      type: bool
      direction: inout
      description: |
        Toggles the Raspberry Pi IPA to output the hardware generated statistics.

        When this control is set to true, the IPA outputs a binary dump of the
        hardware generated statistics through the Request metadata in the
        Bcm2835StatsOutput control.

        \sa Bcm2835StatsOutput

  - Bcm2835StatsOutput:
      type: uint8_t
      size: [n]
      direction: out
      description: |
        Span of the BCM2835 ISP generated statistics for the current frame.

        This is sent in the Request metadata if the StatsOutputEnable is set to
        true.  The statistics struct definition can be found in
        include/linux/bcm2835-isp.h.

        \sa StatsOutputEnable

  - ScalerCrops:
      type: Rectangle
      size: [n]
      direction: out
      description: |
        An array of rectangles, where each singular value has identical
        functionality to the ScalerCrop control. This control allows the
        Raspberry Pi pipeline handler to control individual scaler crops per
        output stream.

        The order of rectangles passed into the control must match the order of
        streams configured by the application. The pipeline handler will only
        configure crop retangles up-to the number of output streams configured.
        All subsequent rectangles passed into this control are ignored by the
        pipeline handler.

        If both rpi::ScalerCrops and ScalerCrop controls are present in a
        ControlList, the latter is discarded, and crops are obtained from this
        control.

        Note that using different crop rectangles for each output stream with
        this control is only applicable on the Pi5/PiSP platform. This control
        should also be considered temporary/draft and will be replaced with
        official libcamera API support for per-stream controls in the future.

        \sa ScalerCrop

  - PispStatsOutput:
      type: uint8_t
      direction: out
      size: [n]
      description: |
        Span of the PiSP Frontend ISP generated statistics for the current
        frame. This is sent in the Request metadata if the StatsOutputEnable is
        set to true. The statistics struct definition can be found in
        https://github.com/raspberrypi/libpisp/blob/main/src/libpisp/frontend/pisp_statistics.h

        \sa StatsOutputEnable

...
