Define the Soft IPA main and event interfaces, add the Soft IPA implementation. The current src/ipa/meson.build assumes the IPA name to match the pipeline name. For this reason "-Dipas=simple" is used for the Soft IPA module. Auto exposure/gain and AWB implementation by Dennis, Toon and Martti. Auto exposure/gain targets a Mean Sample Value of 2.5 following the MSV calculation algorithm from: https://www.araa.asn.au/acra/acra2007/papers/paper84final.pdf Use CameraSensorHelper to convert the analogue gain code read from the camera sensor into real analogue gain value. In the future this makes it possible to use faster AE/AGC algorithm. Right now the CameraSensorHelper lets us use the full range of analogue gain values. If there is no CameraSensorHelper for the camera sensor in use, a warning log message is printed. Tested-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org> # sc8280xp Lenovo x13s Tested-by: Pavel Machek <pavel@ucw.cz> Reviewed-by: Pavel Machek <pavel@ucw.cz> Signed-off-by: Andrey Konovalov <andrey.konovalov@linaro.org> Co-developed-by: Dennis Bonke <admin@dennisbonke.com> Signed-off-by: Dennis Bonke <admin@dennisbonke.com> Co-developed-by: Marttico <g.martti@gmail.com> Signed-off-by: Marttico <g.martti@gmail.com> Co-developed-by: Toon Langendam <t.langendam@gmail.com> Signed-off-by: Toon Langendam <t.langendam@gmail.com> Signed-off-by: Hans de Goede <hdegoede@redhat.com> Signed-off-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
81 lines
2.4 KiB
Meson
81 lines
2.4 KiB
Meson
# SPDX-License-Identifier: CC0-1.0
|
|
|
|
ipa_includes = [
|
|
libcamera_includes,
|
|
]
|
|
|
|
ipa_install_dir = libcamera_libdir
|
|
ipa_data_dir = libcamera_datadir / 'ipa'
|
|
ipa_sysconf_dir = libcamera_sysconfdir / 'ipa'
|
|
|
|
config_h.set('IPA_CONFIG_DIR',
|
|
'"' + get_option('prefix') / ipa_sysconf_dir +
|
|
':' + get_option('prefix') / ipa_data_dir + '"')
|
|
|
|
config_h.set('IPA_MODULE_DIR',
|
|
'"' + get_option('prefix') / ipa_install_dir + '"')
|
|
|
|
summary({
|
|
'IPA_CONFIG_DIR' : config_h.get('IPA_CONFIG_DIR'),
|
|
'IPA_MODULE_DIR' : config_h.get('IPA_MODULE_DIR'),
|
|
}, section : 'Paths')
|
|
|
|
subdir('libipa')
|
|
|
|
ipa_sign = files('ipa-sign.sh')
|
|
|
|
ipa_names = []
|
|
|
|
ipa_modules = get_option('ipas')
|
|
|
|
# Tests require the vimc IPA, similar to vimc pipline-handler for their
|
|
# execution. Include it automatically when tests are enabled.
|
|
if get_option('test') and 'vimc' not in ipa_modules
|
|
message('Enabling vimc IPA to support tests')
|
|
ipa_modules += ['vimc']
|
|
endif
|
|
|
|
enabled_ipa_modules = []
|
|
enabled_ipa_names = []
|
|
ipa_names = []
|
|
|
|
subdirs = []
|
|
foreach pipeline : pipelines
|
|
# The current implementation expects the IPA module name to match the
|
|
# pipeline name.
|
|
# \todo Make the IPA naming scheme more flexible.
|
|
if not ipa_modules.contains(pipeline)
|
|
continue
|
|
endif
|
|
enabled_ipa_names += pipeline
|
|
|
|
# Allow multi-level directory structuring for the IPAs if needed.
|
|
pipeline = pipeline.split('/')[0]
|
|
if pipeline in subdirs
|
|
continue
|
|
endif
|
|
|
|
subdirs += pipeline
|
|
subdir(pipeline)
|
|
|
|
# Don't reuse the pipeline variable below, the subdirectory may have
|
|
# overwritten it.
|
|
endforeach
|
|
|
|
# The ipa-sign-install.sh script which uses the enabled_ipa_modules variable
|
|
# will itself prepend MESON_INSTALL_DESTDIR_PREFIX to each ipa module name,
|
|
# therefore we must not include the prefix string here.
|
|
foreach ipa_name : ipa_names
|
|
enabled_ipa_modules += ipa_install_dir / ipa_name + '.so'
|
|
endforeach
|
|
|
|
if ipa_sign_module
|
|
# Regenerate the signatures for all IPA modules. We can't simply install the
|
|
# .sign files, as meson strips the DT_RPATH and DT_RUNPATH from binaries at
|
|
# install time, which invalidates the signatures.
|
|
meson.add_install_script('ipa-sign-install.sh',
|
|
ipa_priv_key.full_path(),
|
|
enabled_ipa_modules,
|
|
install_tag : 'runtime')
|
|
endif
|