Message ID | 20230118085953.7027-13-naush@raspberrypi.com |
---|---|
State | Superseded |
Headers | show |
Series |
|
Related | show |
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@raspberrypi.com> > Reviewed-by: David Plowman <david.plowman@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@ideasonboard.com> > + } > +} > -- > 2.25.1 >
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 + } +}