pipeline: rpi: Add support for Raspberry Pi 5

Add the Raspberry Pi 5 ISP (PiSP) pipeline handler to libcamera. To
include this pipeline handler in the build, set the following meson
option:

meson configure -Dpipelines=rpi/pisp

Signed-off-by: Naushir Patuck <naush@raspberrypi.com>
Reviewed-by: David Plowman <david.plowman@raspberrypi.com>
Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
Acked-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
Signed-off-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
This commit is contained in:
Naushir Patuck
2025-03-20 12:03:28 +00:00
committed by Kieran Bingham
parent 332b04ce20
commit 841ef2b4bb
9 changed files with 2442 additions and 1 deletions
@@ -0,0 +1,45 @@
{
"version": 1.0,
"target": "pisp",
"pipeline_handler":
{
# Number of CFE config and stats buffers to allocate and use. A
# larger number minimises the possibility of dropping frames,
# but increases the latency for updating the HW configuration.
#
# "num_cfe_config_stats_buffers": 12,
# Number of jobs to queue ahead to the CFE on startup. A larger
# number will increase latency for 3A changes, but may reduce
# avoidable frame drops.
#
# "num_cfe_config_queue": 2,
# Override any request from the IPA to drop a number of startup
# frames.
#
# "disable_startup_frame_drops": false,
# Custom timeout value (in ms) for camera to use. This overrides
# the value computed by the pipeline handler based on frame
# durations.
#
# Set this value to 0 to use the pipeline handler computed
# timeout value.
#
# "camera_timeout_value_ms": 0,
# Disables temporal denoise functionality in the ISP pipeline.
# Disabling temporal denoise avoids allocating 2 additional
# Bayer framebuffers required for its operation.
#
# "disable_tdn": false,
# Disables multiframe HDR functionality in the ISP pipeline.
# Disabling multiframe HDR avoids allocating 2 additional Bayer
# framebuffers required for its operation.
#
# "disable_hdr": false,
}
}
@@ -0,0 +1,8 @@
# SPDX-License-Identifier: CC0-1.0
conf_files = files([
'example.yaml',
])
install_data(conf_files,
install_dir : pipeline_data_dir / 'rpi' / 'pisp')
@@ -0,0 +1,12 @@
# SPDX-License-Identifier: CC0-1.0
libcamera_internal_sources += files([
'pisp.cpp',
])
librt = cc.find_library('rt', required : true)
libpisp_dep = dependency('libpisp', fallback : ['libpisp', 'libpisp_dep'])
libcamera_deps += [libpisp_dep, librt]
subdir('data')
File diff suppressed because it is too large Load Diff