[libcamera-devel] [PATCH v5 12/12] pipeline: raspberrypi: Add minimal memory usage config file

Kieran Bingham kieran.bingham at ideasonboard.com
Fri Jan 20 12:25:52 CET 2023


Quoting Naushir Patuck via libcamera-devel (2023-01-18 08:59:53)
> Add a platform configuration file that allocates the least amount of frame
> buffer memory possible. This configuration does come with the following
> compromises:
> 
> - Startup frame drops are disabled, so the first few frames will not have
> fully converged AE/AWB/ALSC applied.
> 
> - Applications must provide ISP Output0 and Unicam Image (if a RAW stream is
> configured) buffers in requests.

This sounds like a configuration option that should prevent configuring
streams with the OptionalStream hint set.

> 
> - Only 1 Unicam Image buffer will be allocated if a RAW stream is not
> configured, causing the framerate to be effectively halved.
> 
> To use the configuration on the Raspberry Pi platform, invoke the application
> with the following prepended to the command line:
> 
> LIBCAMERA_RPI_CONFIG_FILE=/usr/local/share/libcamera/pipeline/raspberrypi/minimal_mem.yaml
> 
> Signed-off-by: Naushir Patuck <naush at raspberrypi.com>
> Reviewed-by: David Plowman <david.plowman at raspberrypi.com>
> ---
>  .../pipeline/raspberrypi/data/meson.build     |  1 +
>  .../raspberrypi/data/minimal_mem.yaml         | 29 +++++++++++++++++++
>  2 files changed, 30 insertions(+)
>  create mode 100644 src/libcamera/pipeline/raspberrypi/data/minimal_mem.yaml
> 
> diff --git a/src/libcamera/pipeline/raspberrypi/data/meson.build b/src/libcamera/pipeline/raspberrypi/data/meson.build
> index 1c70433bbcbc..6aecd8ae68c8 100644
> --- a/src/libcamera/pipeline/raspberrypi/data/meson.build
> +++ b/src/libcamera/pipeline/raspberrypi/data/meson.build
> @@ -2,6 +2,7 @@
>  
>  conf_files = files([
>      'example.yaml',
> +    'minimal_mem.yaml',
>  ])
>  
>  install_data(conf_files,
> diff --git a/src/libcamera/pipeline/raspberrypi/data/minimal_mem.yaml b/src/libcamera/pipeline/raspberrypi/data/minimal_mem.yaml
> new file mode 100644
> index 000000000000..5cd593025140
> --- /dev/null
> +++ b/src/libcamera/pipeline/raspberrypi/data/minimal_mem.yaml
> @@ -0,0 +1,29 @@
> +{
> +        "version": 1.0,
> +        "target": "bcm2835",
> +
> +        "pipeline_handler":
> +        {
> +                # The minimum number of internal buffers to be allocated for
> +                # Unicam. This value must be greater than 0, but less than or
> +                # equal to min_total_unicam_buffers.
> +                "min_unicam_buffers": 0,
> +
> +                # The minimum total (internal + external) buffer count used for
> +                # Unicam. The number of internal buffers allocated for Unicam is
> +                # given by:
> +                #
> +                # internal buffer count = max(min_unicam_buffers,
> +                #         min_total_unicam_buffers - external buffer count)
> +                "min_total_unicam_buffers": 1,
> +
> +                # Override any request from the IPA to drop a number of startup
> +                # frames.
> +                "disable_startup_frame_drops": true,
> +
> +                # Always process a pending request with the last captured sensor
> +                # frame.  Note that this might lead to avoidable frame drops
> +                # during periods of transient heavy CPU loading.
> +                "return_newest_frames": false

It seems like there will be a lot of duplciation of the documentation..

But aside from that, I think this fits the previous patches so :


Reviewed-by: Kieran Bingham <kieran.bingham at ideasonboard.com>

> +        }
> +}
> -- 
> 2.25.1
>


More information about the libcamera-devel mailing list