From 307b2d4c1f56abf8843eca4e81c8a580863a7939 Mon Sep 17 00:00:00 2001 From: Pragyansh Chaturvedi Date: Thu, 26 Jun 2025 00:54:05 +0530 Subject: [PATCH] utils: Preserve API by overloading libpisp::compute_optimal_stride The signature for compute_optimal_stride has changed, and it is called by libcamera extrenally. While adding a default parameter makes it backwards compatible, using libcamera.so to build rpicam-apps with -Wl, --no-undefined will cause undefined symbols. This change preserves the API by overloading the function to have both the previous and new signature. This will emit both symbols in the shared object. Only compute_optimal_stride in utils.hpp needs this change as this is the only function being used in libcamera as an API from utils. --- src/libpisp/common/pisp_utils.cpp | 5 +++++ src/libpisp/common/utils.hpp | 3 ++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/src/libpisp/common/pisp_utils.cpp b/src/libpisp/common/pisp_utils.cpp index 99b637d..3c57c21 100644 --- a/src/libpisp/common/pisp_utils.cpp +++ b/src/libpisp/common/pisp_utils.cpp @@ -118,6 +118,11 @@ void compute_optimal_stride(pisp_image_format_config &config, bool preserve_subs compute_stride_align(config, PISP_BACK_END_OUTPUT_MAX_ALIGN, preserve_subsample_ratio); } +void compute_optimal_stride(pisp_image_format_config &config) +{ + compute_optimal_stride(config, false); +} + void compute_addr_offset(const pisp_image_format_config &config, int x, int y, uint32_t *addr_offset, uint32_t *addr_offset2) { diff --git a/src/libpisp/common/utils.hpp b/src/libpisp/common/utils.hpp index f49736c..165c34e 100644 --- a/src/libpisp/common/utils.hpp +++ b/src/libpisp/common/utils.hpp @@ -14,7 +14,8 @@ namespace libpisp { void compute_stride(pisp_image_format_config &config, bool preserve_subsample_ratio = false); -void compute_optimal_stride(pisp_image_format_config &config, bool preserve_subsample_ratio = false); +void compute_optimal_stride(pisp_image_format_config &config); +void compute_optimal_stride(pisp_image_format_config &config, bool preserve_subsample_ratio); void compute_stride_align(pisp_image_format_config &config, int align, bool preserve_subsample_ratio = false); void compute_addr_offset(const pisp_image_format_config &config, int x, int y, uint32_t *addr_offset, uint32_t *addr_offset2);