From 7cdd2dc0f3b0eec93eaf7a7dc79484e4eb6786c8 Mon Sep 17 00:00:00 2001 From: Mark Horvath Date: Tue, 19 Mar 2024 09:56:07 +0100 Subject: [PATCH 1/2] Turn off warnings for shadow declarations GCC's shadow declaration check is too sensitive for the library. As the current OpenCV build turns this check on we need to explicitly turn it off. --- intrinsiccv/CMakeLists.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/intrinsiccv/CMakeLists.txt b/intrinsiccv/CMakeLists.txt index c0caf9a7b..47fb59603 100644 --- a/intrinsiccv/CMakeLists.txt +++ b/intrinsiccv/CMakeLists.txt @@ -91,6 +91,7 @@ set(INTRINSICCV_WARNING_FLAGS "-Wall" "-Wextra" "-Wold-style-cast" + "-Wno-shadow" # GCC's shadow declaration check is too sensitive for the library ) set(INTRINSICCV_CXX_FLAGS -- GitLab From 8ecd1cf6d1ea58d242e034181f2fa2750937d5c2 Mon Sep 17 00:00:00 2001 From: Mark Horvath Date: Tue, 19 Mar 2024 11:48:43 +0100 Subject: [PATCH 2/2] API functions out of the intrinsiccv namespace The names of the API functions (marked extern "C") are already prefixed by the intrinsiccv string. --- intrinsiccv/include/intrinsiccv/dispatch.h | 27 ++++++++++--------- intrinsiccv/include/intrinsiccv/operations.h | 4 +-- intrinsiccv/src/analysis/canny_neon.cpp | 9 ++++++- .../src/analysis/count_nonzeros_neon.cpp | 11 +++----- intrinsiccv/src/analysis/min_max_api.cpp | 6 ++--- intrinsiccv/src/arithmetics/absdiff_api.cpp | 6 ++--- .../add_abs_with_threshold_api.cpp | 4 +-- intrinsiccv/src/arithmetics/add_api.cpp | 6 ++--- intrinsiccv/src/arithmetics/multiply_api.cpp | 6 ++--- intrinsiccv/src/arithmetics/scale_api.cpp | 6 ++--- intrinsiccv/src/arithmetics/sub_api.cpp | 6 ++--- intrinsiccv/src/arithmetics/threshold_api.cpp | 6 ++--- intrinsiccv/src/arithmetics/transpose_api.cpp | 6 +---- .../src/conversions/gray_to_rgb_api.cpp | 6 +---- intrinsiccv/src/conversions/merge_api.cpp | 6 +---- .../src/conversions/rgb_to_rgb_api.cpp | 4 --- intrinsiccv/src/conversions/split_api.cpp | 6 +---- .../src/conversions/yuv_to_rgb_api.cpp | 6 +---- intrinsiccv/src/filters/gaussian_blur_api.cpp | 7 +++-- intrinsiccv/src/filters/sobel_api.cpp | 6 +---- intrinsiccv/src/morphology/morphology_api.cpp | 4 +-- intrinsiccv/src/resize/resize_api.cpp | 6 +---- intrinsiccv/src/resize/resize_linear_api.cpp | 2 -- 23 files changed, 64 insertions(+), 92 deletions(-) diff --git a/intrinsiccv/include/intrinsiccv/dispatch.h b/intrinsiccv/include/intrinsiccv/dispatch.h index 5ccea8fbf..fd485da3e 100644 --- a/intrinsiccv/include/intrinsiccv/dispatch.h +++ b/intrinsiccv/include/intrinsiccv/dispatch.h @@ -14,7 +14,7 @@ #include "intrinsiccv/config.h" -namespace intrinsiccv { +namespace INTRINSICCV_TARGET_NAMESPACE { using HwCapTy = uint64_t; @@ -39,27 +39,31 @@ static inline bool hwcaps_has_sve2(HwCaps hwcaps) { return hwcaps.hwcap2 & (1 << 1); } -#define INTRINSICCV_SVE2_RESOLVE(sve2_impl) \ - if (!std::is_null_pointer_v && \ - hwcaps_has_sve2(hwcaps)) { \ - return sve2_impl; \ +} // namespace INTRINSICCV_TARGET_NAMESPACE + +#define INTRINSICCV_SVE2_RESOLVE(sve2_impl) \ + if (!std::is_null_pointer_v && \ + INTRINSICCV_TARGET_NAMESPACE::hwcaps_has_sve2(hwcaps)) { \ + return sve2_impl; \ } #else #define INTRINSICCV_SVE2_RESOLVE(x) #endif #ifdef INTRINSICCV_HAVE_SME2 +namespace INTRINSICCV_TARGET_NAMESPACE { static inline bool hwcaps_has_sme2(HwCaps hwcaps) { // Actually checks for SME, not SME2, but this will be changed to check for // SME2 in future. const int kSMEBit = 23; return hwcaps.hwcap2 & (1UL << kSMEBit); } +} // namespace INTRINSICCV_TARGET_NAMESPACE -#define INTRINSICCV_SME2_RESOLVE(sme2_impl) \ - if (!std::is_null_pointer_v && \ - hwcaps_has_sme2(hwcaps)) { \ - return sme2_impl; \ +#define INTRINSICCV_SME2_RESOLVE(sme2_impl) \ + if (!std::is_null_pointer_v && \ + INTRINSICCV_TARGET_NAMESPACE::hwcaps_has_sme2(hwcaps)) { \ + return sme2_impl; \ } #else #define INTRINSICCV_SME2_RESOLVE(x) @@ -68,7 +72,8 @@ static inline bool hwcaps_has_sme2(HwCaps hwcaps) { #define INTRINSICCV_DECLARE_RESOLVER(api_name, neon_impl, sve2_impl, \ sme2_impl) \ static decltype(neon_impl) *api_name##_resolver() { \ - [[maybe_unused]] HwCaps hwcaps = get_hwcaps(); \ + [[maybe_unused]] INTRINSICCV_TARGET_NAMESPACE::HwCaps hwcaps = \ + INTRINSICCV_TARGET_NAMESPACE::get_hwcaps(); \ INTRINSICCV_SME2_RESOLVE(sme2_impl); \ INTRINSICCV_SVE2_RESOLVE(sve2_impl); \ return neon_impl; \ @@ -87,6 +92,4 @@ static inline bool hwcaps_has_sme2(HwCaps hwcaps) { decltype(neon_impl) *api_name = api_name##_resolver(); \ } -} // namespace intrinsiccv - #endif // INTRINSICCV_DISPATCH_H diff --git a/intrinsiccv/include/intrinsiccv/operations.h b/intrinsiccv/include/intrinsiccv/operations.h index e942fd29c..d1440ea8a 100644 --- a/intrinsiccv/include/intrinsiccv/operations.h +++ b/intrinsiccv/include/intrinsiccv/operations.h @@ -1,4 +1,4 @@ -// SPDX-FileCopyrightText: 2023 Arm Limited and/or its affiliates +// SPDX-FileCopyrightText: 2023 - 2024 Arm Limited and/or its affiliates // // SPDX-License-Identifier: Apache-2.0 @@ -1206,7 +1206,7 @@ class OperationAdapter : public OperationBase { operation().scalar_path(ctx, &src[0], &dst_a[0], &dst_b[0], &dst_c[0], &dst_d[0]); } -}; // namespace intrinsiccv +}; // end of class OperationAdapter // Removes context before forwarding calls. template diff --git a/intrinsiccv/src/analysis/canny_neon.cpp b/intrinsiccv/src/analysis/canny_neon.cpp index 67fc5e045..e733f8974 100644 --- a/intrinsiccv/src/analysis/canny_neon.cpp +++ b/intrinsiccv/src/analysis/canny_neon.cpp @@ -472,7 +472,7 @@ static void perform_hysteresis(StrongEdgeStack &strong_edge_pixels, } } -extern "C" INTRINSICCV_TARGET_FN_ATTRS intrinsiccv_error_t intrinsiccv_canny_u8( +INTRINSICCV_TARGET_FN_ATTRS intrinsiccv_error_t canny_u8( const uint8_t *src, size_t src_stride, uint8_t *dst, size_t dst_stride, size_t width, size_t height, double low_threshold, double high_threshold) { CHECK_POINTER_AND_STRIDE(src, src_stride); @@ -546,4 +546,11 @@ extern "C" INTRINSICCV_TARGET_FN_ATTRS intrinsiccv_error_t intrinsiccv_canny_u8( } // namespace intrinsiccv::neon +extern "C" { + +decltype(intrinsiccv::neon::canny_u8) *intrinsiccv_canny_u8 = + intrinsiccv::neon::canny_u8; + +} // extern "C" + #endif // INTRINSICCV_EXPERIMENTAL_FEATURE_CANNY diff --git a/intrinsiccv/src/analysis/count_nonzeros_neon.cpp b/intrinsiccv/src/analysis/count_nonzeros_neon.cpp index f56a27618..17bfa26b1 100644 --- a/intrinsiccv/src/analysis/count_nonzeros_neon.cpp +++ b/intrinsiccv/src/analysis/count_nonzeros_neon.cpp @@ -8,8 +8,7 @@ #include "intrinsiccv/intrinsiccv.h" #include "intrinsiccv/neon.h" -namespace intrinsiccv { -namespace neon { +namespace intrinsiccv::neon { template class CountNonZeros final : public UnrollTwice { @@ -59,13 +58,11 @@ INTRINSICCV_TARGET_FN_ATTRS static intrinsiccv_error_t count_nonzeros( return INTRINSICCV_OK; } -} // namespace neon +} // namespace intrinsiccv::neon extern "C" { -decltype(neon::count_nonzeros) *intrinsiccv_count_nonzeros_u8 = - neon::count_nonzeros; +decltype(intrinsiccv::neon::count_nonzeros) + *intrinsiccv_count_nonzeros_u8 = intrinsiccv::neon::count_nonzeros; } // extern "C" - -} // namespace intrinsiccv diff --git a/intrinsiccv/src/analysis/min_max_api.cpp b/intrinsiccv/src/analysis/min_max_api.cpp index 389f7236f..093380d7b 100644 --- a/intrinsiccv/src/analysis/min_max_api.cpp +++ b/intrinsiccv/src/analysis/min_max_api.cpp @@ -1,4 +1,4 @@ -// SPDX-FileCopyrightText: 2023 Arm Limited and/or its affiliates +// SPDX-FileCopyrightText: 2023 - 2024 Arm Limited and/or its affiliates // // SPDX-License-Identifier: Apache-2.0 @@ -25,6 +25,8 @@ namespace sve2 {} // namespace sve2 namespace sme2 {} // namespace sme2 +} // namespace intrinsiccv + #define INTRINSICCV_DEFINE_MINMAX_API(name, type) \ INTRINSICCV_MULTIVERSION_C_API(name, intrinsiccv::neon::min_max, \ nullptr, nullptr) @@ -40,5 +42,3 @@ INTRINSICCV_DEFINE_MINMAX_API(intrinsiccv_min_max_s32, int32_t); nullptr, nullptr) INTRINSICCV_DEFINE_MINMAXLOC_API(intrinsiccv_min_max_loc_u8, uint8_t); - -} // namespace intrinsiccv diff --git a/intrinsiccv/src/arithmetics/absdiff_api.cpp b/intrinsiccv/src/arithmetics/absdiff_api.cpp index 4c54344e9..f8e94809f 100644 --- a/intrinsiccv/src/arithmetics/absdiff_api.cpp +++ b/intrinsiccv/src/arithmetics/absdiff_api.cpp @@ -1,4 +1,4 @@ -// SPDX-FileCopyrightText: 2023 Arm Limited and/or its affiliates +// SPDX-FileCopyrightText: 2023 - 2024 Arm Limited and/or its affiliates // // SPDX-License-Identifier: Apache-2.0 @@ -37,6 +37,8 @@ intrinsiccv_error_t saturating_absdiff(const T *src_a, size_t src_a_stride, } // namespace sme2 +} // namespace intrinsiccv + #define INTRINSICCV_DEFINE_C_API(name, type) \ INTRINSICCV_MULTIVERSION_C_API( \ name, intrinsiccv::neon::saturating_absdiff, \ @@ -48,5 +50,3 @@ INTRINSICCV_DEFINE_C_API(intrinsiccv_saturating_absdiff_s8, int8_t); INTRINSICCV_DEFINE_C_API(intrinsiccv_saturating_absdiff_u16, uint16_t); INTRINSICCV_DEFINE_C_API(intrinsiccv_saturating_absdiff_s16, int16_t); INTRINSICCV_DEFINE_C_API(intrinsiccv_saturating_absdiff_s32, int32_t); - -} // namespace intrinsiccv diff --git a/intrinsiccv/src/arithmetics/add_abs_with_threshold_api.cpp b/intrinsiccv/src/arithmetics/add_abs_with_threshold_api.cpp index 247073431..1a60b7956 100644 --- a/intrinsiccv/src/arithmetics/add_abs_with_threshold_api.cpp +++ b/intrinsiccv/src/arithmetics/add_abs_with_threshold_api.cpp @@ -32,6 +32,8 @@ intrinsiccv_error_t saturating_add_abs_with_threshold( } // namespace sme2 +} // namespace intrinsiccv + #define INTRINSICCV_DEFINE_C_API(name, type) \ INTRINSICCV_MULTIVERSION_C_API( \ name, intrinsiccv::neon::saturating_add_abs_with_threshold, \ @@ -41,5 +43,3 @@ intrinsiccv_error_t saturating_add_abs_with_threshold( INTRINSICCV_DEFINE_C_API(intrinsiccv_saturating_add_abs_with_threshold_s16, int16_t); - -} // namespace intrinsiccv diff --git a/intrinsiccv/src/arithmetics/add_api.cpp b/intrinsiccv/src/arithmetics/add_api.cpp index a900dd031..adf06cd04 100644 --- a/intrinsiccv/src/arithmetics/add_api.cpp +++ b/intrinsiccv/src/arithmetics/add_api.cpp @@ -1,4 +1,4 @@ -// SPDX-FileCopyrightText: 2023 Arm Limited and/or its affiliates +// SPDX-FileCopyrightText: 2023 - 2024 Arm Limited and/or its affiliates // // SPDX-License-Identifier: Apache-2.0 @@ -37,6 +37,8 @@ intrinsiccv_error_t saturating_add(const T *src_a, size_t src_a_stride, } // namespace sme2 +} // namespace intrinsiccv + #define INTRINSICCV_DEFINE_C_API(name, type) \ INTRINSICCV_MULTIVERSION_C_API( \ name, intrinsiccv::neon::saturating_add, \ @@ -51,5 +53,3 @@ INTRINSICCV_DEFINE_C_API(intrinsiccv_saturating_add_s32, int32_t); INTRINSICCV_DEFINE_C_API(intrinsiccv_saturating_add_u32, uint32_t); INTRINSICCV_DEFINE_C_API(intrinsiccv_saturating_add_s64, int64_t); INTRINSICCV_DEFINE_C_API(intrinsiccv_saturating_add_u64, uint64_t); - -} // namespace intrinsiccv diff --git a/intrinsiccv/src/arithmetics/multiply_api.cpp b/intrinsiccv/src/arithmetics/multiply_api.cpp index 5514f6f7c..92ea6da21 100644 --- a/intrinsiccv/src/arithmetics/multiply_api.cpp +++ b/intrinsiccv/src/arithmetics/multiply_api.cpp @@ -1,4 +1,4 @@ -// SPDX-FileCopyrightText: 2023 Arm Limited and/or its affiliates +// SPDX-FileCopyrightText: 2023 - 2024 Arm Limited and/or its affiliates // // SPDX-License-Identifier: Apache-2.0 @@ -38,6 +38,8 @@ intrinsiccv_error_t saturating_multiply(const T *src_a, size_t src_a_stride, // } // namespace sme2 +} // namespace intrinsiccv + #define INTRINSICCV_DEFINE_C_API(name, type) \ INTRINSICCV_MULTIVERSION_C_API( \ name, intrinsiccv::neon::saturating_multiply, \ @@ -49,5 +51,3 @@ INTRINSICCV_DEFINE_C_API(intrinsiccv_saturating_multiply_s8, int8_t); INTRINSICCV_DEFINE_C_API(intrinsiccv_saturating_multiply_u16, uint16_t); INTRINSICCV_DEFINE_C_API(intrinsiccv_saturating_multiply_s16, int16_t); INTRINSICCV_DEFINE_C_API(intrinsiccv_saturating_multiply_s32, int32_t); - -} // namespace intrinsiccv diff --git a/intrinsiccv/src/arithmetics/scale_api.cpp b/intrinsiccv/src/arithmetics/scale_api.cpp index 3241bb0f8..e3c1775b5 100644 --- a/intrinsiccv/src/arithmetics/scale_api.cpp +++ b/intrinsiccv/src/arithmetics/scale_api.cpp @@ -1,4 +1,4 @@ -// SPDX-FileCopyrightText: 2023 Arm Limited and/or its affiliates +// SPDX-FileCopyrightText: 2023 - 2024 Arm Limited and/or its affiliates // // SPDX-License-Identifier: Apache-2.0 @@ -20,6 +20,8 @@ namespace sve2 {} // namespace sve2 namespace sme2 {} // namespace sme2 +} // namespace intrinsiccv + #define INTRINSICCV_DEFINE_SCALE_API(name, type) \ INTRINSICCV_MULTIVERSION_C_API(name, intrinsiccv::neon::scale, \ nullptr, nullptr) @@ -29,5 +31,3 @@ INTRINSICCV_DEFINE_SCALE_API(intrinsiccv_scale_u8, uint8_t); // INTRINSICCV_DEFINE_SCALE_API(intrinsiccv_scale_u16, uint16_t); // INTRINSICCV_DEFINE_SCALE_API(intrinsiccv_scale_s16, int16_t); // INTRINSICCV_DEFINE_SCALE_API(intrinsiccv_scale_s32, int32_t); - -} // namespace intrinsiccv diff --git a/intrinsiccv/src/arithmetics/sub_api.cpp b/intrinsiccv/src/arithmetics/sub_api.cpp index 2b5fbac51..691d6ca4b 100644 --- a/intrinsiccv/src/arithmetics/sub_api.cpp +++ b/intrinsiccv/src/arithmetics/sub_api.cpp @@ -1,4 +1,4 @@ -// SPDX-FileCopyrightText: 2023 Arm Limited and/or its affiliates +// SPDX-FileCopyrightText: 2023 - 2024 Arm Limited and/or its affiliates // // SPDX-License-Identifier: Apache-2.0 @@ -36,6 +36,8 @@ intrinsiccv_error_t saturating_sub(const T *src_a, size_t src_a_stride, } // namespace sme2 +} // namespace intrinsiccv + #define INTRINSICCV_DEFINE_C_API(name, type) \ INTRINSICCV_MULTIVERSION_C_API( \ name, intrinsiccv::neon::saturating_sub, \ @@ -50,5 +52,3 @@ INTRINSICCV_DEFINE_C_API(intrinsiccv_saturating_sub_s32, int32_t); INTRINSICCV_DEFINE_C_API(intrinsiccv_saturating_sub_u32, uint32_t); INTRINSICCV_DEFINE_C_API(intrinsiccv_saturating_sub_s64, int64_t); INTRINSICCV_DEFINE_C_API(intrinsiccv_saturating_sub_u64, uint64_t); - -} // namespace intrinsiccv diff --git a/intrinsiccv/src/arithmetics/threshold_api.cpp b/intrinsiccv/src/arithmetics/threshold_api.cpp index f9e962d06..8338f3a72 100644 --- a/intrinsiccv/src/arithmetics/threshold_api.cpp +++ b/intrinsiccv/src/arithmetics/threshold_api.cpp @@ -1,4 +1,4 @@ -// SPDX-FileCopyrightText: 2023 Arm Limited and/or its affiliates +// SPDX-FileCopyrightText: 2023 - 2024 Arm Limited and/or its affiliates // // SPDX-License-Identifier: Apache-2.0 @@ -28,6 +28,8 @@ intrinsiccv_error_t threshold_binary(const T *src, size_t src_stride, T *dst, size_t height, T threshold, T value); } // namespace sme2 +} // namespace intrinsiccv + #define INTRINSICCV_DEFINE_C_API(name, type) \ INTRINSICCV_MULTIVERSION_C_API( \ name, intrinsiccv::neon::threshold_binary, \ @@ -35,5 +37,3 @@ intrinsiccv_error_t threshold_binary(const T *src, size_t src_stride, T *dst, intrinsiccv::sme2::threshold_binary) INTRINSICCV_DEFINE_C_API(intrinsiccv_threshold_binary_u8, uint8_t); - -} // namespace intrinsiccv diff --git a/intrinsiccv/src/arithmetics/transpose_api.cpp b/intrinsiccv/src/arithmetics/transpose_api.cpp index 208e5832f..86f7d3ced 100644 --- a/intrinsiccv/src/arithmetics/transpose_api.cpp +++ b/intrinsiccv/src/arithmetics/transpose_api.cpp @@ -1,4 +1,4 @@ -// SPDX-FileCopyrightText: 2023 Arm Limited and/or its affiliates +// SPDX-FileCopyrightText: 2023 - 2024 Arm Limited and/or its affiliates // // SPDX-License-Identifier: Apache-2.0 @@ -6,9 +6,5 @@ #include "intrinsiccv/dispatch.h" #include "intrinsiccv/intrinsiccv.h" -namespace intrinsiccv { - INTRINSICCV_MULTIVERSION_C_API(intrinsiccv_transpose, intrinsiccv::neon::transpose, nullptr, nullptr); - -} // namespace intrinsiccv diff --git a/intrinsiccv/src/conversions/gray_to_rgb_api.cpp b/intrinsiccv/src/conversions/gray_to_rgb_api.cpp index f4573d8f7..ce33a9e2d 100644 --- a/intrinsiccv/src/conversions/gray_to_rgb_api.cpp +++ b/intrinsiccv/src/conversions/gray_to_rgb_api.cpp @@ -1,4 +1,4 @@ -// SPDX-FileCopyrightText: 2023 Arm Limited and/or its affiliates +// SPDX-FileCopyrightText: 2023 - 2024 Arm Limited and/or its affiliates // // SPDX-License-Identifier: Apache-2.0 @@ -6,8 +6,6 @@ #include "intrinsiccv/dispatch.h" #include "intrinsiccv/intrinsiccv.h" -namespace intrinsiccv { - #define INTRINSICCV_DEFINE_C_API(name, partialname) \ INTRINSICCV_MULTIVERSION_C_API( \ name, intrinsiccv::neon::partialname, \ @@ -16,5 +14,3 @@ namespace intrinsiccv { INTRINSICCV_DEFINE_C_API(intrinsiccv_gray_to_rgb_u8, gray_to_rgb_u8); INTRINSICCV_DEFINE_C_API(intrinsiccv_gray_to_rgba_u8, gray_to_rgba_u8); - -} // namespace intrinsiccv diff --git a/intrinsiccv/src/conversions/merge_api.cpp b/intrinsiccv/src/conversions/merge_api.cpp index 7af61c3c0..ec47a818b 100644 --- a/intrinsiccv/src/conversions/merge_api.cpp +++ b/intrinsiccv/src/conversions/merge_api.cpp @@ -1,4 +1,4 @@ -// SPDX-FileCopyrightText: 2023 Arm Limited and/or its affiliates +// SPDX-FileCopyrightText: 2023 - 2024 Arm Limited and/or its affiliates // // SPDX-License-Identifier: Apache-2.0 @@ -6,9 +6,5 @@ #include "intrinsiccv/dispatch.h" #include "intrinsiccv/intrinsiccv.h" -namespace intrinsiccv { - INTRINSICCV_MULTIVERSION_C_API(intrinsiccv_merge, intrinsiccv::neon::merge, nullptr, nullptr); - -} // namespace intrinsiccv diff --git a/intrinsiccv/src/conversions/rgb_to_rgb_api.cpp b/intrinsiccv/src/conversions/rgb_to_rgb_api.cpp index 040e729ce..4563975a0 100644 --- a/intrinsiccv/src/conversions/rgb_to_rgb_api.cpp +++ b/intrinsiccv/src/conversions/rgb_to_rgb_api.cpp @@ -7,8 +7,6 @@ #include "intrinsiccv/intrinsiccv.h" #include "intrinsiccv/types.h" -namespace intrinsiccv { - #define INTRINSICCV_DEFINE_C_API(name, partialname) \ INTRINSICCV_MULTIVERSION_C_API( \ name, intrinsiccv::neon::partialname, \ @@ -63,5 +61,3 @@ decltype(intrinsiccv_rgba_to_rgba_u8_impl) *intrinsiccv_rgba_to_rgba_u8 = intrinsiccv_rgba_to_rgba_u8_impl; } // extern "C" - -} // namespace intrinsiccv diff --git a/intrinsiccv/src/conversions/split_api.cpp b/intrinsiccv/src/conversions/split_api.cpp index 968667bb2..2794da8ea 100644 --- a/intrinsiccv/src/conversions/split_api.cpp +++ b/intrinsiccv/src/conversions/split_api.cpp @@ -1,4 +1,4 @@ -// SPDX-FileCopyrightText: 2023 Arm Limited and/or its affiliates +// SPDX-FileCopyrightText: 2023 - 2024 Arm Limited and/or its affiliates // // SPDX-License-Identifier: Apache-2.0 @@ -6,9 +6,5 @@ #include "intrinsiccv/dispatch.h" #include "intrinsiccv/intrinsiccv.h" -namespace intrinsiccv { - INTRINSICCV_MULTIVERSION_C_API(intrinsiccv_split, intrinsiccv::neon::split, nullptr, nullptr); - -} // namespace intrinsiccv diff --git a/intrinsiccv/src/conversions/yuv_to_rgb_api.cpp b/intrinsiccv/src/conversions/yuv_to_rgb_api.cpp index ff6a63f61..24499bce5 100644 --- a/intrinsiccv/src/conversions/yuv_to_rgb_api.cpp +++ b/intrinsiccv/src/conversions/yuv_to_rgb_api.cpp @@ -1,4 +1,4 @@ -// SPDX-FileCopyrightText: 2023 Arm Limited and/or its affiliates +// SPDX-FileCopyrightText: 2023 - 2024 Arm Limited and/or its affiliates // // SPDX-License-Identifier: Apache-2.0 @@ -6,8 +6,6 @@ #include "intrinsiccv/dispatch.h" #include "intrinsiccv/intrinsiccv.h" -namespace intrinsiccv { - #define INTRINSICCV_DEFINE_C_API(name, partialname) \ INTRINSICCV_MULTIVERSION_C_API(name, intrinsiccv::neon::partialname, \ intrinsiccv::sve2::partialname, \ @@ -17,5 +15,3 @@ INTRINSICCV_DEFINE_C_API(intrinsiccv_yuv_sp_to_rgb_u8, yuv_sp_to_rgb_u8); INTRINSICCV_DEFINE_C_API(intrinsiccv_yuv_sp_to_bgr_u8, yuv_sp_to_bgr_u8); INTRINSICCV_DEFINE_C_API(intrinsiccv_yuv_sp_to_rgba_u8, yuv_sp_to_rgba_u8); INTRINSICCV_DEFINE_C_API(intrinsiccv_yuv_sp_to_bgra_u8, yuv_sp_to_bgra_u8); - -} // namespace intrinsiccv diff --git a/intrinsiccv/src/filters/gaussian_blur_api.cpp b/intrinsiccv/src/filters/gaussian_blur_api.cpp index 81054db22..29abc9585 100644 --- a/intrinsiccv/src/filters/gaussian_blur_api.cpp +++ b/intrinsiccv/src/filters/gaussian_blur_api.cpp @@ -7,10 +7,11 @@ #include "intrinsiccv/intrinsiccv.h" #include "intrinsiccv/workspace/separable.h" -namespace INTRINSICCV_TARGET_NAMESPACE { - extern "C" { +using INTRINSICCV_TARGET_NAMESPACE::Rectangle; +using INTRINSICCV_TARGET_NAMESPACE::SeparableFilterWorkspace; + intrinsiccv_error_t intrinsiccv_filter_create( intrinsiccv_filter_context_t **context, size_t channels, size_t type_size, intrinsiccv_rectangle_t image) { @@ -60,5 +61,3 @@ INTRINSICCV_MULTIVERSION_C_API( intrinsiccv_gaussian_blur_5x5_u8, intrinsiccv::neon::gaussian_blur_5x5_u8, INTRINSICCV_SVE2_IMPL_IF(intrinsiccv::sve2::gaussian_blur_5x5_u8), intrinsiccv::sme2::gaussian_blur_5x5_u8); - -} // namespace INTRINSICCV_TARGET_NAMESPACE diff --git a/intrinsiccv/src/filters/sobel_api.cpp b/intrinsiccv/src/filters/sobel_api.cpp index 509262324..7154dfdba 100644 --- a/intrinsiccv/src/filters/sobel_api.cpp +++ b/intrinsiccv/src/filters/sobel_api.cpp @@ -1,4 +1,4 @@ -// SPDX-FileCopyrightText: 2023 Arm Limited and/or its affiliates +// SPDX-FileCopyrightText: 2023 - 2024 Arm Limited and/or its affiliates // // SPDX-License-Identifier: Apache-2.0 @@ -6,8 +6,6 @@ #include "intrinsiccv/filters/sobel.h" #include "intrinsiccv/intrinsiccv.h" -namespace intrinsiccv { - #define INTRINSICCV_DEFINE_C_API(name, partialname) \ INTRINSICCV_MULTIVERSION_C_API( \ name, intrinsiccv::neon::partialname, \ @@ -18,5 +16,3 @@ INTRINSICCV_DEFINE_C_API(intrinsiccv_sobel_3x3_horizontal_s16_u8, sobel_3x3_horizontal_s16_u8); INTRINSICCV_DEFINE_C_API(intrinsiccv_sobel_3x3_vertical_s16_u8, sobel_3x3_vertical_s16_u8); - -} // namespace intrinsiccv diff --git a/intrinsiccv/src/morphology/morphology_api.cpp b/intrinsiccv/src/morphology/morphology_api.cpp index 1182309f2..6c53f01d8 100644 --- a/intrinsiccv/src/morphology/morphology_api.cpp +++ b/intrinsiccv/src/morphology/morphology_api.cpp @@ -50,6 +50,8 @@ intrinsiccv_error_t erode(const T *src, size_t src_stride, T *dst, } // namespace sme2 +} // namespace intrinsiccv + extern "C" { using INTRINSICCV_TARGET_NAMESPACE::MorphologyWorkspace; @@ -114,5 +116,3 @@ intrinsiccv_error_t intrinsiccv_morphology_release( INTRINSICCV_DEFINE_C_API(intrinsiccv_dilate_u8, dilate, uint8_t); INTRINSICCV_DEFINE_C_API(intrinsiccv_erode_u8, erode, uint8_t); - -} // namespace intrinsiccv diff --git a/intrinsiccv/src/resize/resize_api.cpp b/intrinsiccv/src/resize/resize_api.cpp index 461f9e95d..c259626ea 100644 --- a/intrinsiccv/src/resize/resize_api.cpp +++ b/intrinsiccv/src/resize/resize_api.cpp @@ -1,4 +1,4 @@ -// SPDX-FileCopyrightText: 2023 Arm Limited and/or its affiliates +// SPDX-FileCopyrightText: 2023 - 2024 Arm Limited and/or its affiliates // // SPDX-License-Identifier: Apache-2.0 @@ -6,11 +6,7 @@ #include "intrinsiccv/intrinsiccv.h" #include "intrinsiccv/resize/resize.h" -namespace intrinsiccv { - INTRINSICCV_MULTIVERSION_C_API( intrinsiccv_resize_to_quarter_u8, intrinsiccv::neon::resize_to_quarter_u8, INTRINSICCV_SVE2_IMPL_IF(intrinsiccv::sve2::resize_to_quarter_u8), intrinsiccv::sme2::resize_to_quarter_u8); - -} // namespace intrinsiccv diff --git a/intrinsiccv/src/resize/resize_linear_api.cpp b/intrinsiccv/src/resize/resize_linear_api.cpp index 010b1f8b7..17c87fb59 100644 --- a/intrinsiccv/src/resize/resize_linear_api.cpp +++ b/intrinsiccv/src/resize/resize_linear_api.cpp @@ -6,9 +6,7 @@ #include "intrinsiccv/intrinsiccv.h" #include "intrinsiccv/resize/resize_linear.h" -namespace intrinsiccv { INTRINSICCV_MULTIVERSION_C_API( intrinsiccv_resize_linear_u8, intrinsiccv::neon::resize_linear_u8, INTRINSICCV_SVE2_IMPL_IF(intrinsiccv::sve2::resize_linear_u8), intrinsiccv::sme2::resize_linear_u8); -} // namespace intrinsiccv -- GitLab