mirror of
https://git.libcamera.org/libcamera/libcamera.git
synced 2025-07-12 23:09:45 +03:00
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:
parent
332b04ce20
commit
841ef2b4bb
9 changed files with 2442 additions and 1 deletions
|
@ -186,7 +186,7 @@ to the libcamera build options in the top level ``meson_options.txt``.
|
|||
|
||||
option('pipelines',
|
||||
type : 'array',
|
||||
choices : ['ipu3', 'rkisp1', 'rpi/vc4', 'simple', 'uvcvideo', 'vimc', 'vivid'],
|
||||
choices : ['ipu3', 'rkisp1', 'rpi/pisp', 'rpi/vc4', 'simple', 'uvcvideo', 'vimc', 'vivid'],
|
||||
description : 'Select which pipeline handlers to include')
|
||||
|
||||
|
||||
|
|
|
@ -66,6 +66,7 @@ pipeline_ipa_mojom_mapping = {
|
|||
'ipu3': 'ipu3.mojom',
|
||||
'mali-c55': 'mali-c55.mojom',
|
||||
'rkisp1': 'rkisp1.mojom',
|
||||
'rpi/pisp': 'raspberrypi.mojom',
|
||||
'rpi/vc4': 'raspberrypi.mojom',
|
||||
'simple': 'soft.mojom',
|
||||
'vimc': 'vimc.mojom',
|
||||
|
|
|
@ -37,6 +37,7 @@ controls_map = {
|
|||
'core': 'control_ids_core.yaml',
|
||||
'debug': 'control_ids_debug.yaml',
|
||||
'draft': 'control_ids_draft.yaml',
|
||||
'rpi/pisp': 'control_ids_rpi.yaml',
|
||||
'rpi/vc4': 'control_ids_rpi.yaml',
|
||||
},
|
||||
|
||||
|
|
|
@ -215,6 +215,7 @@ pipelines_support = {
|
|||
'ipu3': arch_x86,
|
||||
'mali-c55': arch_arm,
|
||||
'rkisp1': arch_arm,
|
||||
'rpi/pisp': arch_arm,
|
||||
'rpi/vc4': arch_arm,
|
||||
'simple': ['any'],
|
||||
'uvcvideo': ['any'],
|
||||
|
|
|
@ -51,6 +51,7 @@ option('pipelines',
|
|||
'ipu3',
|
||||
'mali-c55',
|
||||
'rkisp1',
|
||||
'rpi/pisp',
|
||||
'rpi/vc4',
|
||||
'simple',
|
||||
'uvcvideo',
|
||||
|
|
45
src/libcamera/pipeline/rpi/pisp/data/example.yaml
Normal file
45
src/libcamera/pipeline/rpi/pisp/data/example.yaml
Normal file
|
@ -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,
|
||||
}
|
||||
}
|
8
src/libcamera/pipeline/rpi/pisp/data/meson.build
Normal file
8
src/libcamera/pipeline/rpi/pisp/data/meson.build
Normal file
|
@ -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')
|
12
src/libcamera/pipeline/rpi/pisp/meson.build
Normal file
12
src/libcamera/pipeline/rpi/pisp/meson.build
Normal file
|
@ -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')
|
2372
src/libcamera/pipeline/rpi/pisp/pisp.cpp
Normal file
2372
src/libcamera/pipeline/rpi/pisp/pisp.cpp
Normal file
File diff suppressed because it is too large
Load diff
Loading…
Add table
Add a link
Reference in a new issue