diff --git a/intrinsiccv/CMakeLists.txt b/intrinsiccv/CMakeLists.txt index c0caf9a7b9c86aa2713a196c4861ff7fd056cde6..47fb5960382d9f68d5e805a45cfa4fd79a2a7a79 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 diff --git a/intrinsiccv/include/intrinsiccv/dispatch.h b/intrinsiccv/include/intrinsiccv/dispatch.h index 5ccea8fbf139f3fe9c6df719ee602aa3ead86e37..fd485da3e65cd9f41461f8444a5ceabc04ef7d9f 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 e942fd29c83e68c1adbb01aedd306d570a68025e..d1440ea8adfc4624293b2c0d6ca93e7844079e61 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 67fc5e045984de5746d1decfdbab92f090b88178..e733f897484f151f2b6f871a42305e69108e8110 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 f56a276182323a34d0c5b46c54c8a6ecfd9d7dba..17bfa26b156ad3cd4b39e1881590894752b8adda 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 389f7236f97434b149a88617534680963d6c3153..093380d7b1c17f8f2f3b4bdf7b1dfbded4868f79 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 4c54344e9dad44de9c4c129b7d99d3b3a79d89f2..f8e94809fbcf2f65b5f30427bc3834389cb6cd31 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 2470734313a335e1010496114ac9e7d9f5d3da35..1a60b79560518b31618bb8af753913d1cd30a7a4 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 a900dd0318ba596701213740191835bf2864b9ff..adf06cd046860d580f6350cca51f284bbde3495c 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 5514f6f7c1a120c1df53f50722c6754d41022ad7..92ea6da21622c43bd5545f9a6a6191db01796663 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 3241bb0f851982794d4b356c61f30f7547928a87..e3c1775b556ba9974210661efee208dc43eb88b3 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 2b5fbac51dcc594bcb29b7bcc40dbf1924eee301..691d6ca4b98ebb228c1fb3eb1b929c5608a19fc1 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 f9e962d06690ed49f22826c9d9ac80d07c34c3e9..8338f3a725253d89b40a7ed5a87d127f7cd52a15 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 208e5832f69aecd628d38d609d01baf30a9b775d..86f7d3ceda99f29bca09609f000b2cceec7aea05 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 f4573d8f79e3bfa36409f527584b6728430c4f88..ce33a9e2d486512475716862aa353fdb0443cd70 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 7af61c3c06a39bfdf25d112b0d58de54ae37a97c..ec47a818bfb003112bd71435f1d030e9a41b6a35 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 040e729ce34859fb80ca8f28e4d71e05504a7a6c..4563975a0e10a817b005ed3d1b8f5882d508d907 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 968667bb23770cd3ba5232ccbb685cdafbfde5cf..2794da8eaafcddddcf69d1b0fcb7c3da50cacffd 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 ff6a63f614dc65fd7e5c7884520445dbb14e90fc..24499bce5bd8e602049c494091618defe812a29f 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 81054db2297379a90b41e3c38943bd7e524e04d8..29abc958568954897822d6f9118c5ee2b77682c1 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 5092623244346dfd24d47d87bb78fbabe4885586..7154dfdba6d9d695cef223c171edd0320dde0a26 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 1182309f2badc7b9dcf332247a0bee7f2a5ea818..6c53f01d8bb0682f57387e12f5dd69e69b70d73e 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 461f9e95d83158d2442fe609a6619777bdef4472..c259626ea5212b474d3c1128747f62d8214dd332 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 010b1f8b790c19a0153a500f985aa3a563a16622..17c87fb5961fb791032b2e01a295a9e5513141e3 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