react-native-vision-camera-spoof-detector 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (857) hide show
  1. package/CHANGELOG.md +48 -0
  2. package/README.md +220 -0
  3. package/android/.cxx/Debug/2a3w6u3n/arm64-v8a/.cmake/api/v1/query/client-agp/cache-v2 +0 -0
  4. package/android/.cxx/Debug/2a3w6u3n/arm64-v8a/.cmake/api/v1/query/client-agp/cmakeFiles-v1 +0 -0
  5. package/android/.cxx/Debug/2a3w6u3n/arm64-v8a/.cmake/api/v1/query/client-agp/codemodel-v2 +0 -0
  6. package/android/.cxx/Debug/2a3w6u3n/arm64-v8a/.cmake/api/v1/reply/cache-v2-701700ba4bb2215c1ccd.json +1599 -0
  7. package/android/.cxx/Debug/2a3w6u3n/arm64-v8a/.cmake/api/v1/reply/cmakeFiles-v1-9189be15e8b04df8f258.json +857 -0
  8. package/android/.cxx/Debug/2a3w6u3n/arm64-v8a/.cmake/api/v1/reply/codemodel-v2-073369af1c5eb367d160.json +185 -0
  9. package/android/.cxx/Debug/2a3w6u3n/arm64-v8a/.cmake/api/v1/reply/directory-.-Debug-d0094a50bb2071803777.json +14 -0
  10. package/android/.cxx/Debug/2a3w6u3n/arm64-v8a/.cmake/api/v1/reply/directory-libyuv-Debug-68bb497e958fc902f93a.json +100 -0
  11. package/android/.cxx/Debug/2a3w6u3n/arm64-v8a/.cmake/api/v1/reply/index-2025-11-18T09-41-06-0926.json +92 -0
  12. package/android/.cxx/Debug/2a3w6u3n/arm64-v8a/.cmake/api/v1/reply/target-cpuid-Debug-5af24d55c9649a4c3a3f.json +136 -0
  13. package/android/.cxx/Debug/2a3w6u3n/arm64-v8a/.cmake/api/v1/reply/target-faceantispoof-Debug-aa45fddb87a8ac2074bb.json +181 -0
  14. package/android/.cxx/Debug/2a3w6u3n/arm64-v8a/.cmake/api/v1/reply/target-fastyuv-Debug-4dd5b049ce28a8e070d1.json +182 -0
  15. package/android/.cxx/Debug/2a3w6u3n/arm64-v8a/.cmake/api/v1/reply/target-yuv-Debug-b8d5ee3e10a1f31a29fe.json +433 -0
  16. package/android/.cxx/Debug/2a3w6u3n/arm64-v8a/.cmake/api/v1/reply/target-yuv_common_objects-Debug-ae517204d04beeb2df23.json +522 -0
  17. package/android/.cxx/Debug/2a3w6u3n/arm64-v8a/.cmake/api/v1/reply/target-yuv_neon64-Debug-2ab157e6b75bcb340b03.json +137 -0
  18. package/android/.cxx/Debug/2a3w6u3n/arm64-v8a/.cmake/api/v1/reply/target-yuv_shared-Debug-2aecda61b70017f775b5.json +455 -0
  19. package/android/.cxx/Debug/2a3w6u3n/arm64-v8a/.cmake/api/v1/reply/target-yuv_sme-Debug-73d1e6cc8ef043b4e243.json +126 -0
  20. package/android/.cxx/Debug/2a3w6u3n/arm64-v8a/.cmake/api/v1/reply/target-yuv_sve-Debug-9d95a17080a7480f85a6.json +104 -0
  21. package/android/.cxx/Debug/2a3w6u3n/arm64-v8a/.cmake/api/v1/reply/target-yuvconstants-Debug-31b06c1ed2b225cf2443.json +136 -0
  22. package/android/.cxx/Debug/2a3w6u3n/arm64-v8a/.cmake/api/v1/reply/target-yuvconvert-Debug-2231dac0a591237abb04.json +157 -0
  23. package/android/.cxx/Debug/2a3w6u3n/arm64-v8a/.ninja_deps +0 -0
  24. package/android/.cxx/Debug/2a3w6u3n/arm64-v8a/.ninja_log +63 -0
  25. package/android/.cxx/Debug/2a3w6u3n/arm64-v8a/CMakeCache.txt +465 -0
  26. package/android/.cxx/Debug/2a3w6u3n/arm64-v8a/CMakeFiles/3.22.1-g37088a8-dirty/CMakeCCompiler.cmake +72 -0
  27. package/android/.cxx/Debug/2a3w6u3n/arm64-v8a/CMakeFiles/3.22.1-g37088a8-dirty/CMakeCXXCompiler.cmake +83 -0
  28. package/android/.cxx/Debug/2a3w6u3n/arm64-v8a/CMakeFiles/3.22.1-g37088a8-dirty/CMakeDetermineCompilerABI_C.bin +0 -0
  29. package/android/.cxx/Debug/2a3w6u3n/arm64-v8a/CMakeFiles/3.22.1-g37088a8-dirty/CMakeDetermineCompilerABI_CXX.bin +0 -0
  30. package/android/.cxx/Debug/2a3w6u3n/arm64-v8a/CMakeFiles/3.22.1-g37088a8-dirty/CMakeSystem.cmake +15 -0
  31. package/android/.cxx/Debug/2a3w6u3n/arm64-v8a/CMakeFiles/3.22.1-g37088a8-dirty/CompilerIdC/CMakeCCompilerId.c +803 -0
  32. package/android/.cxx/Debug/2a3w6u3n/arm64-v8a/CMakeFiles/3.22.1-g37088a8-dirty/CompilerIdC/CMakeCCompilerId.o +0 -0
  33. package/android/.cxx/Debug/2a3w6u3n/arm64-v8a/CMakeFiles/3.22.1-g37088a8-dirty/CompilerIdCXX/CMakeCXXCompilerId.cpp +791 -0
  34. package/android/.cxx/Debug/2a3w6u3n/arm64-v8a/CMakeFiles/3.22.1-g37088a8-dirty/CompilerIdCXX/CMakeCXXCompilerId.o +0 -0
  35. package/android/.cxx/Debug/2a3w6u3n/arm64-v8a/CMakeFiles/CMakeOutput.log +276 -0
  36. package/android/.cxx/Debug/2a3w6u3n/arm64-v8a/CMakeFiles/TargetDirectories.txt +27 -0
  37. package/android/.cxx/Debug/2a3w6u3n/arm64-v8a/CMakeFiles/cmake.check_cache +1 -0
  38. package/android/.cxx/Debug/2a3w6u3n/arm64-v8a/CMakeFiles/faceantispoof.dir/48ddb531beec5c42d2f7a5f3aa0b5968/ReactCommon/jsi/jsi/jsi.cpp.o +0 -0
  39. package/android/.cxx/Debug/2a3w6u3n/arm64-v8a/CMakeFiles/faceantispoof.dir/FaceAntiSpoofJSI.cpp.o +0 -0
  40. package/android/.cxx/Debug/2a3w6u3n/arm64-v8a/CMakeFiles/fastyuv.dir/FastYuvJni.cpp.o +0 -0
  41. package/android/.cxx/Debug/2a3w6u3n/arm64-v8a/CMakeFiles/fastyuv.dir/fast_yuv.cpp.o +0 -0
  42. package/android/.cxx/Debug/2a3w6u3n/arm64-v8a/CMakeFiles/rules.ninja +198 -0
  43. package/android/.cxx/Debug/2a3w6u3n/arm64-v8a/CPackConfig.cmake +71 -0
  44. package/android/.cxx/Debug/2a3w6u3n/arm64-v8a/CPackSourceConfig.cmake +79 -0
  45. package/android/.cxx/Debug/2a3w6u3n/arm64-v8a/additional_project_files.txt +48 -0
  46. package/android/.cxx/Debug/2a3w6u3n/arm64-v8a/android_gradle_build.json +106 -0
  47. package/android/.cxx/Debug/2a3w6u3n/arm64-v8a/android_gradle_build_mini.json +87 -0
  48. package/android/.cxx/Debug/2a3w6u3n/arm64-v8a/build.ninja +1071 -0
  49. package/android/.cxx/Debug/2a3w6u3n/arm64-v8a/build_file_index.txt +3 -0
  50. package/android/.cxx/Debug/2a3w6u3n/arm64-v8a/cmake_install.cmake +59 -0
  51. package/android/.cxx/Debug/2a3w6u3n/arm64-v8a/compile_commands.json +277 -0
  52. package/android/.cxx/Debug/2a3w6u3n/arm64-v8a/compile_commands.json.bin +0 -0
  53. package/android/.cxx/Debug/2a3w6u3n/arm64-v8a/configure_fingerprint.bin +29 -0
  54. package/android/.cxx/Debug/2a3w6u3n/arm64-v8a/libyuv/CMakeFiles/cpuid.dir/util/cpuid.c.o +0 -0
  55. package/android/.cxx/Debug/2a3w6u3n/arm64-v8a/libyuv/CMakeFiles/yuv_common_objects.dir/source/compare.cc.o +0 -0
  56. package/android/.cxx/Debug/2a3w6u3n/arm64-v8a/libyuv/CMakeFiles/yuv_common_objects.dir/source/compare_common.cc.o +0 -0
  57. package/android/.cxx/Debug/2a3w6u3n/arm64-v8a/libyuv/CMakeFiles/yuv_common_objects.dir/source/compare_gcc.cc.o +0 -0
  58. package/android/.cxx/Debug/2a3w6u3n/arm64-v8a/libyuv/CMakeFiles/yuv_common_objects.dir/source/compare_win.cc.o +0 -0
  59. package/android/.cxx/Debug/2a3w6u3n/arm64-v8a/libyuv/CMakeFiles/yuv_common_objects.dir/source/convert.cc.o +0 -0
  60. package/android/.cxx/Debug/2a3w6u3n/arm64-v8a/libyuv/CMakeFiles/yuv_common_objects.dir/source/convert_argb.cc.o +0 -0
  61. package/android/.cxx/Debug/2a3w6u3n/arm64-v8a/libyuv/CMakeFiles/yuv_common_objects.dir/source/convert_from.cc.o +0 -0
  62. package/android/.cxx/Debug/2a3w6u3n/arm64-v8a/libyuv/CMakeFiles/yuv_common_objects.dir/source/convert_from_argb.cc.o +0 -0
  63. package/android/.cxx/Debug/2a3w6u3n/arm64-v8a/libyuv/CMakeFiles/yuv_common_objects.dir/source/convert_jpeg.cc.o +0 -0
  64. package/android/.cxx/Debug/2a3w6u3n/arm64-v8a/libyuv/CMakeFiles/yuv_common_objects.dir/source/convert_to_argb.cc.o +0 -0
  65. package/android/.cxx/Debug/2a3w6u3n/arm64-v8a/libyuv/CMakeFiles/yuv_common_objects.dir/source/convert_to_i420.cc.o +0 -0
  66. package/android/.cxx/Debug/2a3w6u3n/arm64-v8a/libyuv/CMakeFiles/yuv_common_objects.dir/source/cpu_id.cc.o +0 -0
  67. package/android/.cxx/Debug/2a3w6u3n/arm64-v8a/libyuv/CMakeFiles/yuv_common_objects.dir/source/mjpeg_decoder.cc.o +0 -0
  68. package/android/.cxx/Debug/2a3w6u3n/arm64-v8a/libyuv/CMakeFiles/yuv_common_objects.dir/source/mjpeg_validate.cc.o +0 -0
  69. package/android/.cxx/Debug/2a3w6u3n/arm64-v8a/libyuv/CMakeFiles/yuv_common_objects.dir/source/planar_functions.cc.o +0 -0
  70. package/android/.cxx/Debug/2a3w6u3n/arm64-v8a/libyuv/CMakeFiles/yuv_common_objects.dir/source/rotate.cc.o +0 -0
  71. package/android/.cxx/Debug/2a3w6u3n/arm64-v8a/libyuv/CMakeFiles/yuv_common_objects.dir/source/rotate_any.cc.o +0 -0
  72. package/android/.cxx/Debug/2a3w6u3n/arm64-v8a/libyuv/CMakeFiles/yuv_common_objects.dir/source/rotate_argb.cc.o +0 -0
  73. package/android/.cxx/Debug/2a3w6u3n/arm64-v8a/libyuv/CMakeFiles/yuv_common_objects.dir/source/rotate_common.cc.o +0 -0
  74. package/android/.cxx/Debug/2a3w6u3n/arm64-v8a/libyuv/CMakeFiles/yuv_common_objects.dir/source/rotate_gcc.cc.o +0 -0
  75. package/android/.cxx/Debug/2a3w6u3n/arm64-v8a/libyuv/CMakeFiles/yuv_common_objects.dir/source/rotate_lsx.cc.o +0 -0
  76. package/android/.cxx/Debug/2a3w6u3n/arm64-v8a/libyuv/CMakeFiles/yuv_common_objects.dir/source/rotate_win.cc.o +0 -0
  77. package/android/.cxx/Debug/2a3w6u3n/arm64-v8a/libyuv/CMakeFiles/yuv_common_objects.dir/source/row_any.cc.o +0 -0
  78. package/android/.cxx/Debug/2a3w6u3n/arm64-v8a/libyuv/CMakeFiles/yuv_common_objects.dir/source/row_common.cc.o +0 -0
  79. package/android/.cxx/Debug/2a3w6u3n/arm64-v8a/libyuv/CMakeFiles/yuv_common_objects.dir/source/row_gcc.cc.o +0 -0
  80. package/android/.cxx/Debug/2a3w6u3n/arm64-v8a/libyuv/CMakeFiles/yuv_common_objects.dir/source/row_lasx.cc.o +0 -0
  81. package/android/.cxx/Debug/2a3w6u3n/arm64-v8a/libyuv/CMakeFiles/yuv_common_objects.dir/source/row_lsx.cc.o +0 -0
  82. package/android/.cxx/Debug/2a3w6u3n/arm64-v8a/libyuv/CMakeFiles/yuv_common_objects.dir/source/row_rvv.cc.o +0 -0
  83. package/android/.cxx/Debug/2a3w6u3n/arm64-v8a/libyuv/CMakeFiles/yuv_common_objects.dir/source/row_win.cc.o +0 -0
  84. package/android/.cxx/Debug/2a3w6u3n/arm64-v8a/libyuv/CMakeFiles/yuv_common_objects.dir/source/scale.cc.o +0 -0
  85. package/android/.cxx/Debug/2a3w6u3n/arm64-v8a/libyuv/CMakeFiles/yuv_common_objects.dir/source/scale_any.cc.o +0 -0
  86. package/android/.cxx/Debug/2a3w6u3n/arm64-v8a/libyuv/CMakeFiles/yuv_common_objects.dir/source/scale_argb.cc.o +0 -0
  87. package/android/.cxx/Debug/2a3w6u3n/arm64-v8a/libyuv/CMakeFiles/yuv_common_objects.dir/source/scale_common.cc.o +0 -0
  88. package/android/.cxx/Debug/2a3w6u3n/arm64-v8a/libyuv/CMakeFiles/yuv_common_objects.dir/source/scale_gcc.cc.o +0 -0
  89. package/android/.cxx/Debug/2a3w6u3n/arm64-v8a/libyuv/CMakeFiles/yuv_common_objects.dir/source/scale_lsx.cc.o +0 -0
  90. package/android/.cxx/Debug/2a3w6u3n/arm64-v8a/libyuv/CMakeFiles/yuv_common_objects.dir/source/scale_rgb.cc.o +0 -0
  91. package/android/.cxx/Debug/2a3w6u3n/arm64-v8a/libyuv/CMakeFiles/yuv_common_objects.dir/source/scale_rvv.cc.o +0 -0
  92. package/android/.cxx/Debug/2a3w6u3n/arm64-v8a/libyuv/CMakeFiles/yuv_common_objects.dir/source/scale_uv.cc.o +0 -0
  93. package/android/.cxx/Debug/2a3w6u3n/arm64-v8a/libyuv/CMakeFiles/yuv_common_objects.dir/source/scale_win.cc.o +0 -0
  94. package/android/.cxx/Debug/2a3w6u3n/arm64-v8a/libyuv/CMakeFiles/yuv_common_objects.dir/source/video_common.cc.o +0 -0
  95. package/android/.cxx/Debug/2a3w6u3n/arm64-v8a/libyuv/CMakeFiles/yuv_neon64.dir/source/compare_neon64.cc.o +0 -0
  96. package/android/.cxx/Debug/2a3w6u3n/arm64-v8a/libyuv/CMakeFiles/yuv_neon64.dir/source/rotate_neon64.cc.o +0 -0
  97. package/android/.cxx/Debug/2a3w6u3n/arm64-v8a/libyuv/CMakeFiles/yuv_neon64.dir/source/row_neon64.cc.o +0 -0
  98. package/android/.cxx/Debug/2a3w6u3n/arm64-v8a/libyuv/CMakeFiles/yuv_neon64.dir/source/scale_neon64.cc.o +0 -0
  99. package/android/.cxx/Debug/2a3w6u3n/arm64-v8a/libyuv/CMakeFiles/yuv_sme.dir/source/rotate_sme.cc.o +0 -0
  100. package/android/.cxx/Debug/2a3w6u3n/arm64-v8a/libyuv/CMakeFiles/yuv_sme.dir/source/row_sme.cc.o +0 -0
  101. package/android/.cxx/Debug/2a3w6u3n/arm64-v8a/libyuv/CMakeFiles/yuv_sme.dir/source/scale_sme.cc.o +0 -0
  102. package/android/.cxx/Debug/2a3w6u3n/arm64-v8a/libyuv/CMakeFiles/yuv_sve.dir/source/row_sve.cc.o +0 -0
  103. package/android/.cxx/Debug/2a3w6u3n/arm64-v8a/libyuv/CMakeFiles/yuvconstants.dir/util/yuvconstants.c.o +0 -0
  104. package/android/.cxx/Debug/2a3w6u3n/arm64-v8a/libyuv/CMakeFiles/yuvconvert.dir/util/yuvconvert.cc.o +0 -0
  105. package/android/.cxx/Debug/2a3w6u3n/arm64-v8a/libyuv/cmake_install.cmake +87 -0
  106. package/android/.cxx/Debug/2a3w6u3n/arm64-v8a/libyuv/libyuv.a +0 -0
  107. package/android/.cxx/Debug/2a3w6u3n/arm64-v8a/metadata_generation_command.txt +19 -0
  108. package/android/.cxx/Debug/2a3w6u3n/arm64-v8a/prefab_config.json +4 -0
  109. package/android/.cxx/Debug/2a3w6u3n/arm64-v8a/symbol_folder_index.txt +1 -0
  110. package/android/.cxx/Debug/2a3w6u3n/armeabi-v7a/.cmake/api/v1/query/client-agp/cache-v2 +0 -0
  111. package/android/.cxx/Debug/2a3w6u3n/armeabi-v7a/.cmake/api/v1/query/client-agp/cmakeFiles-v1 +0 -0
  112. package/android/.cxx/Debug/2a3w6u3n/armeabi-v7a/.cmake/api/v1/query/client-agp/codemodel-v2 +0 -0
  113. package/android/.cxx/Debug/2a3w6u3n/armeabi-v7a/.cmake/api/v1/reply/cache-v2-3c91c5cee78e3e904960.json +1587 -0
  114. package/android/.cxx/Debug/2a3w6u3n/armeabi-v7a/.cmake/api/v1/reply/cmakeFiles-v1-7cc7148edcc0267ae184.json +857 -0
  115. package/android/.cxx/Debug/2a3w6u3n/armeabi-v7a/.cmake/api/v1/reply/codemodel-v2-3db6484795577cf354b3.json +167 -0
  116. package/android/.cxx/Debug/2a3w6u3n/armeabi-v7a/.cmake/api/v1/reply/directory-.-Debug-d0094a50bb2071803777.json +14 -0
  117. package/android/.cxx/Debug/2a3w6u3n/armeabi-v7a/.cmake/api/v1/reply/directory-libyuv-Debug-063ed54195fe25617bc7.json +100 -0
  118. package/android/.cxx/Debug/2a3w6u3n/armeabi-v7a/.cmake/api/v1/reply/index-2025-11-18T09-41-44-0186.json +92 -0
  119. package/android/.cxx/Debug/2a3w6u3n/armeabi-v7a/.cmake/api/v1/reply/target-cpuid-Debug-a3f2884614434f8f188a.json +150 -0
  120. package/android/.cxx/Debug/2a3w6u3n/armeabi-v7a/.cmake/api/v1/reply/target-faceantispoof-Debug-c905db8d2a36c2f49235.json +181 -0
  121. package/android/.cxx/Debug/2a3w6u3n/armeabi-v7a/.cmake/api/v1/reply/target-fastyuv-Debug-e08fb9fb89a090bfee1a.json +190 -0
  122. package/android/.cxx/Debug/2a3w6u3n/armeabi-v7a/.cmake/api/v1/reply/target-yuv-Debug-4b1ffa979fbf6ac68418.json +406 -0
  123. package/android/.cxx/Debug/2a3w6u3n/armeabi-v7a/.cmake/api/v1/reply/target-yuv_common_objects-Debug-245e248f528e11e2d34d.json +536 -0
  124. package/android/.cxx/Debug/2a3w6u3n/armeabi-v7a/.cmake/api/v1/reply/target-yuv_neon-Debug-2ea21009709c7febf67d.json +151 -0
  125. package/android/.cxx/Debug/2a3w6u3n/armeabi-v7a/.cmake/api/v1/reply/target-yuv_shared-Debug-e387ee44aace33b18140.json +428 -0
  126. package/android/.cxx/Debug/2a3w6u3n/armeabi-v7a/.cmake/api/v1/reply/target-yuvconstants-Debug-14fbb0c58620d35bb155.json +150 -0
  127. package/android/.cxx/Debug/2a3w6u3n/armeabi-v7a/.cmake/api/v1/reply/target-yuvconvert-Debug-c40ecea0358b0e737802.json +171 -0
  128. package/android/.cxx/Debug/2a3w6u3n/armeabi-v7a/.ninja_deps +0 -0
  129. package/android/.cxx/Debug/2a3w6u3n/armeabi-v7a/.ninja_log +59 -0
  130. package/android/.cxx/Debug/2a3w6u3n/armeabi-v7a/CMakeCache.txt +463 -0
  131. package/android/.cxx/Debug/2a3w6u3n/armeabi-v7a/CMakeFiles/3.22.1-g37088a8-dirty/CMakeCCompiler.cmake +72 -0
  132. package/android/.cxx/Debug/2a3w6u3n/armeabi-v7a/CMakeFiles/3.22.1-g37088a8-dirty/CMakeCXXCompiler.cmake +83 -0
  133. package/android/.cxx/Debug/2a3w6u3n/armeabi-v7a/CMakeFiles/3.22.1-g37088a8-dirty/CMakeDetermineCompilerABI_C.bin +0 -0
  134. package/android/.cxx/Debug/2a3w6u3n/armeabi-v7a/CMakeFiles/3.22.1-g37088a8-dirty/CMakeDetermineCompilerABI_CXX.bin +0 -0
  135. package/android/.cxx/Debug/2a3w6u3n/armeabi-v7a/CMakeFiles/3.22.1-g37088a8-dirty/CMakeSystem.cmake +15 -0
  136. package/android/.cxx/Debug/2a3w6u3n/armeabi-v7a/CMakeFiles/3.22.1-g37088a8-dirty/CompilerIdC/CMakeCCompilerId.c +803 -0
  137. package/android/.cxx/Debug/2a3w6u3n/armeabi-v7a/CMakeFiles/3.22.1-g37088a8-dirty/CompilerIdC/CMakeCCompilerId.o +0 -0
  138. package/android/.cxx/Debug/2a3w6u3n/armeabi-v7a/CMakeFiles/3.22.1-g37088a8-dirty/CompilerIdCXX/CMakeCXXCompilerId.cpp +791 -0
  139. package/android/.cxx/Debug/2a3w6u3n/armeabi-v7a/CMakeFiles/3.22.1-g37088a8-dirty/CompilerIdCXX/CMakeCXXCompilerId.o +0 -0
  140. package/android/.cxx/Debug/2a3w6u3n/armeabi-v7a/CMakeFiles/CMakeOutput.log +268 -0
  141. package/android/.cxx/Debug/2a3w6u3n/armeabi-v7a/CMakeFiles/TargetDirectories.txt +25 -0
  142. package/android/.cxx/Debug/2a3w6u3n/armeabi-v7a/CMakeFiles/cmake.check_cache +1 -0
  143. package/android/.cxx/Debug/2a3w6u3n/armeabi-v7a/CMakeFiles/faceantispoof.dir/48ddb531beec5c42d2f7a5f3aa0b5968/ReactCommon/jsi/jsi/jsi.cpp.o +0 -0
  144. package/android/.cxx/Debug/2a3w6u3n/armeabi-v7a/CMakeFiles/faceantispoof.dir/FaceAntiSpoofJSI.cpp.o +0 -0
  145. package/android/.cxx/Debug/2a3w6u3n/armeabi-v7a/CMakeFiles/fastyuv.dir/FastYuvJni.cpp.o +0 -0
  146. package/android/.cxx/Debug/2a3w6u3n/armeabi-v7a/CMakeFiles/fastyuv.dir/fast_yuv.cpp.o +0 -0
  147. package/android/.cxx/Debug/2a3w6u3n/armeabi-v7a/CMakeFiles/rules.ninja +178 -0
  148. package/android/.cxx/Debug/2a3w6u3n/armeabi-v7a/CPackConfig.cmake +71 -0
  149. package/android/.cxx/Debug/2a3w6u3n/armeabi-v7a/CPackSourceConfig.cmake +79 -0
  150. package/android/.cxx/Debug/2a3w6u3n/armeabi-v7a/additional_project_files.txt +44 -0
  151. package/android/.cxx/Debug/2a3w6u3n/armeabi-v7a/android_gradle_build.json +96 -0
  152. package/android/.cxx/Debug/2a3w6u3n/armeabi-v7a/android_gradle_build_mini.json +77 -0
  153. package/android/.cxx/Debug/2a3w6u3n/armeabi-v7a/build.ninja +1046 -0
  154. package/android/.cxx/Debug/2a3w6u3n/armeabi-v7a/build_file_index.txt +3 -0
  155. package/android/.cxx/Debug/2a3w6u3n/armeabi-v7a/cmake_install.cmake +59 -0
  156. package/android/.cxx/Debug/2a3w6u3n/armeabi-v7a/compile_commands.json +257 -0
  157. package/android/.cxx/Debug/2a3w6u3n/armeabi-v7a/compile_commands.json.bin +0 -0
  158. package/android/.cxx/Debug/2a3w6u3n/armeabi-v7a/configure_fingerprint.bin +29 -0
  159. package/android/.cxx/Debug/2a3w6u3n/armeabi-v7a/libyuv/CMakeFiles/cpuid.dir/util/cpuid.c.o +0 -0
  160. package/android/.cxx/Debug/2a3w6u3n/armeabi-v7a/libyuv/CMakeFiles/yuv_common_objects.dir/source/compare.cc.o +0 -0
  161. package/android/.cxx/Debug/2a3w6u3n/armeabi-v7a/libyuv/CMakeFiles/yuv_common_objects.dir/source/compare_common.cc.o +0 -0
  162. package/android/.cxx/Debug/2a3w6u3n/armeabi-v7a/libyuv/CMakeFiles/yuv_common_objects.dir/source/compare_gcc.cc.o +0 -0
  163. package/android/.cxx/Debug/2a3w6u3n/armeabi-v7a/libyuv/CMakeFiles/yuv_common_objects.dir/source/compare_win.cc.o +0 -0
  164. package/android/.cxx/Debug/2a3w6u3n/armeabi-v7a/libyuv/CMakeFiles/yuv_common_objects.dir/source/convert.cc.o +0 -0
  165. package/android/.cxx/Debug/2a3w6u3n/armeabi-v7a/libyuv/CMakeFiles/yuv_common_objects.dir/source/convert_argb.cc.o +0 -0
  166. package/android/.cxx/Debug/2a3w6u3n/armeabi-v7a/libyuv/CMakeFiles/yuv_common_objects.dir/source/convert_from.cc.o +0 -0
  167. package/android/.cxx/Debug/2a3w6u3n/armeabi-v7a/libyuv/CMakeFiles/yuv_common_objects.dir/source/convert_from_argb.cc.o +0 -0
  168. package/android/.cxx/Debug/2a3w6u3n/armeabi-v7a/libyuv/CMakeFiles/yuv_common_objects.dir/source/convert_jpeg.cc.o +0 -0
  169. package/android/.cxx/Debug/2a3w6u3n/armeabi-v7a/libyuv/CMakeFiles/yuv_common_objects.dir/source/convert_to_argb.cc.o +0 -0
  170. package/android/.cxx/Debug/2a3w6u3n/armeabi-v7a/libyuv/CMakeFiles/yuv_common_objects.dir/source/convert_to_i420.cc.o +0 -0
  171. package/android/.cxx/Debug/2a3w6u3n/armeabi-v7a/libyuv/CMakeFiles/yuv_common_objects.dir/source/cpu_id.cc.o +0 -0
  172. package/android/.cxx/Debug/2a3w6u3n/armeabi-v7a/libyuv/CMakeFiles/yuv_common_objects.dir/source/mjpeg_decoder.cc.o +0 -0
  173. package/android/.cxx/Debug/2a3w6u3n/armeabi-v7a/libyuv/CMakeFiles/yuv_common_objects.dir/source/mjpeg_validate.cc.o +0 -0
  174. package/android/.cxx/Debug/2a3w6u3n/armeabi-v7a/libyuv/CMakeFiles/yuv_common_objects.dir/source/planar_functions.cc.o +0 -0
  175. package/android/.cxx/Debug/2a3w6u3n/armeabi-v7a/libyuv/CMakeFiles/yuv_common_objects.dir/source/rotate.cc.o +0 -0
  176. package/android/.cxx/Debug/2a3w6u3n/armeabi-v7a/libyuv/CMakeFiles/yuv_common_objects.dir/source/rotate_any.cc.o +0 -0
  177. package/android/.cxx/Debug/2a3w6u3n/armeabi-v7a/libyuv/CMakeFiles/yuv_common_objects.dir/source/rotate_argb.cc.o +0 -0
  178. package/android/.cxx/Debug/2a3w6u3n/armeabi-v7a/libyuv/CMakeFiles/yuv_common_objects.dir/source/rotate_common.cc.o +0 -0
  179. package/android/.cxx/Debug/2a3w6u3n/armeabi-v7a/libyuv/CMakeFiles/yuv_common_objects.dir/source/rotate_gcc.cc.o +0 -0
  180. package/android/.cxx/Debug/2a3w6u3n/armeabi-v7a/libyuv/CMakeFiles/yuv_common_objects.dir/source/rotate_lsx.cc.o +0 -0
  181. package/android/.cxx/Debug/2a3w6u3n/armeabi-v7a/libyuv/CMakeFiles/yuv_common_objects.dir/source/rotate_win.cc.o +0 -0
  182. package/android/.cxx/Debug/2a3w6u3n/armeabi-v7a/libyuv/CMakeFiles/yuv_common_objects.dir/source/row_any.cc.o +0 -0
  183. package/android/.cxx/Debug/2a3w6u3n/armeabi-v7a/libyuv/CMakeFiles/yuv_common_objects.dir/source/row_common.cc.o +0 -0
  184. package/android/.cxx/Debug/2a3w6u3n/armeabi-v7a/libyuv/CMakeFiles/yuv_common_objects.dir/source/row_gcc.cc.o +0 -0
  185. package/android/.cxx/Debug/2a3w6u3n/armeabi-v7a/libyuv/CMakeFiles/yuv_common_objects.dir/source/row_lasx.cc.o +0 -0
  186. package/android/.cxx/Debug/2a3w6u3n/armeabi-v7a/libyuv/CMakeFiles/yuv_common_objects.dir/source/row_lsx.cc.o +0 -0
  187. package/android/.cxx/Debug/2a3w6u3n/armeabi-v7a/libyuv/CMakeFiles/yuv_common_objects.dir/source/row_rvv.cc.o +0 -0
  188. package/android/.cxx/Debug/2a3w6u3n/armeabi-v7a/libyuv/CMakeFiles/yuv_common_objects.dir/source/row_win.cc.o +0 -0
  189. package/android/.cxx/Debug/2a3w6u3n/armeabi-v7a/libyuv/CMakeFiles/yuv_common_objects.dir/source/scale.cc.o +0 -0
  190. package/android/.cxx/Debug/2a3w6u3n/armeabi-v7a/libyuv/CMakeFiles/yuv_common_objects.dir/source/scale_any.cc.o +0 -0
  191. package/android/.cxx/Debug/2a3w6u3n/armeabi-v7a/libyuv/CMakeFiles/yuv_common_objects.dir/source/scale_argb.cc.o +0 -0
  192. package/android/.cxx/Debug/2a3w6u3n/armeabi-v7a/libyuv/CMakeFiles/yuv_common_objects.dir/source/scale_common.cc.o +0 -0
  193. package/android/.cxx/Debug/2a3w6u3n/armeabi-v7a/libyuv/CMakeFiles/yuv_common_objects.dir/source/scale_gcc.cc.o +0 -0
  194. package/android/.cxx/Debug/2a3w6u3n/armeabi-v7a/libyuv/CMakeFiles/yuv_common_objects.dir/source/scale_lsx.cc.o +0 -0
  195. package/android/.cxx/Debug/2a3w6u3n/armeabi-v7a/libyuv/CMakeFiles/yuv_common_objects.dir/source/scale_rgb.cc.o +0 -0
  196. package/android/.cxx/Debug/2a3w6u3n/armeabi-v7a/libyuv/CMakeFiles/yuv_common_objects.dir/source/scale_rvv.cc.o +0 -0
  197. package/android/.cxx/Debug/2a3w6u3n/armeabi-v7a/libyuv/CMakeFiles/yuv_common_objects.dir/source/scale_uv.cc.o +0 -0
  198. package/android/.cxx/Debug/2a3w6u3n/armeabi-v7a/libyuv/CMakeFiles/yuv_common_objects.dir/source/scale_win.cc.o +0 -0
  199. package/android/.cxx/Debug/2a3w6u3n/armeabi-v7a/libyuv/CMakeFiles/yuv_common_objects.dir/source/video_common.cc.o +0 -0
  200. package/android/.cxx/Debug/2a3w6u3n/armeabi-v7a/libyuv/CMakeFiles/yuv_neon.dir/source/compare_neon.cc.o +0 -0
  201. package/android/.cxx/Debug/2a3w6u3n/armeabi-v7a/libyuv/CMakeFiles/yuv_neon.dir/source/rotate_neon.cc.o +0 -0
  202. package/android/.cxx/Debug/2a3w6u3n/armeabi-v7a/libyuv/CMakeFiles/yuv_neon.dir/source/row_neon.cc.o +0 -0
  203. package/android/.cxx/Debug/2a3w6u3n/armeabi-v7a/libyuv/CMakeFiles/yuv_neon.dir/source/scale_neon.cc.o +0 -0
  204. package/android/.cxx/Debug/2a3w6u3n/armeabi-v7a/libyuv/CMakeFiles/yuvconstants.dir/util/yuvconstants.c.o +0 -0
  205. package/android/.cxx/Debug/2a3w6u3n/armeabi-v7a/libyuv/CMakeFiles/yuvconvert.dir/util/yuvconvert.cc.o +0 -0
  206. package/android/.cxx/Debug/2a3w6u3n/armeabi-v7a/libyuv/cmake_install.cmake +87 -0
  207. package/android/.cxx/Debug/2a3w6u3n/armeabi-v7a/libyuv/libyuv.a +0 -0
  208. package/android/.cxx/Debug/2a3w6u3n/armeabi-v7a/metadata_generation_command.txt +19 -0
  209. package/android/.cxx/Debug/2a3w6u3n/armeabi-v7a/prefab_config.json +4 -0
  210. package/android/.cxx/Debug/2a3w6u3n/armeabi-v7a/symbol_folder_index.txt +1 -0
  211. package/android/.cxx/Debug/2a3w6u3n/hash_key.txt +26 -0
  212. package/android/.cxx/Debug/2a3w6u3n/x86/.cmake/api/v1/query/client-agp/cache-v2 +0 -0
  213. package/android/.cxx/Debug/2a3w6u3n/x86/.cmake/api/v1/query/client-agp/cmakeFiles-v1 +0 -0
  214. package/android/.cxx/Debug/2a3w6u3n/x86/.cmake/api/v1/query/client-agp/codemodel-v2 +0 -0
  215. package/android/.cxx/Debug/2a3w6u3n/x86/.cmake/api/v1/reply/cache-v2-2fe46b6519c8341b1982.json +1587 -0
  216. package/android/.cxx/Debug/2a3w6u3n/x86/.cmake/api/v1/reply/cmakeFiles-v1-a03e763d0c6effec9f6f.json +857 -0
  217. package/android/.cxx/Debug/2a3w6u3n/x86/.cmake/api/v1/reply/codemodel-v2-2412bbfc0c74a0dc613a.json +158 -0
  218. package/android/.cxx/Debug/2a3w6u3n/x86/.cmake/api/v1/reply/directory-.-Debug-d0094a50bb2071803777.json +14 -0
  219. package/android/.cxx/Debug/2a3w6u3n/x86/.cmake/api/v1/reply/directory-libyuv-Debug-7cf182a5e476bc9b5f34.json +100 -0
  220. package/android/.cxx/Debug/2a3w6u3n/x86/.cmake/api/v1/reply/index-2025-11-18T09-41-52-0585.json +92 -0
  221. package/android/.cxx/Debug/2a3w6u3n/x86/.cmake/api/v1/reply/target-cpuid-Debug-931d089bced0b77c5070.json +136 -0
  222. package/android/.cxx/Debug/2a3w6u3n/x86/.cmake/api/v1/reply/target-faceantispoof-Debug-7b58f88faeacc46f961d.json +181 -0
  223. package/android/.cxx/Debug/2a3w6u3n/x86/.cmake/api/v1/reply/target-fastyuv-Debug-9283b76b8a94ba273122.json +157 -0
  224. package/android/.cxx/Debug/2a3w6u3n/x86/.cmake/api/v1/reply/target-yuv-Debug-c270d4a92a15ef45f650.json +368 -0
  225. package/android/.cxx/Debug/2a3w6u3n/x86/.cmake/api/v1/reply/target-yuv_common_objects-Debug-ae517204d04beeb2df23.json +522 -0
  226. package/android/.cxx/Debug/2a3w6u3n/x86/.cmake/api/v1/reply/target-yuv_shared-Debug-42c6196dd1672984dcd7.json +390 -0
  227. package/android/.cxx/Debug/2a3w6u3n/x86/.cmake/api/v1/reply/target-yuvconstants-Debug-7e8432d4753ee3bd592d.json +136 -0
  228. package/android/.cxx/Debug/2a3w6u3n/x86/.cmake/api/v1/reply/target-yuvconvert-Debug-2cc934aa605d443ac9a1.json +157 -0
  229. package/android/.cxx/Debug/2a3w6u3n/x86/.ninja_deps +0 -0
  230. package/android/.cxx/Debug/2a3w6u3n/x86/.ninja_log +55 -0
  231. package/android/.cxx/Debug/2a3w6u3n/x86/CMakeCache.txt +463 -0
  232. package/android/.cxx/Debug/2a3w6u3n/x86/CMakeFiles/3.22.1-g37088a8-dirty/CMakeCCompiler.cmake +72 -0
  233. package/android/.cxx/Debug/2a3w6u3n/x86/CMakeFiles/3.22.1-g37088a8-dirty/CMakeCXXCompiler.cmake +83 -0
  234. package/android/.cxx/Debug/2a3w6u3n/x86/CMakeFiles/3.22.1-g37088a8-dirty/CMakeDetermineCompilerABI_C.bin +0 -0
  235. package/android/.cxx/Debug/2a3w6u3n/x86/CMakeFiles/3.22.1-g37088a8-dirty/CMakeDetermineCompilerABI_CXX.bin +0 -0
  236. package/android/.cxx/Debug/2a3w6u3n/x86/CMakeFiles/3.22.1-g37088a8-dirty/CMakeSystem.cmake +15 -0
  237. package/android/.cxx/Debug/2a3w6u3n/x86/CMakeFiles/3.22.1-g37088a8-dirty/CompilerIdC/CMakeCCompilerId.c +803 -0
  238. package/android/.cxx/Debug/2a3w6u3n/x86/CMakeFiles/3.22.1-g37088a8-dirty/CompilerIdC/CMakeCCompilerId.o +0 -0
  239. package/android/.cxx/Debug/2a3w6u3n/x86/CMakeFiles/3.22.1-g37088a8-dirty/CompilerIdCXX/CMakeCXXCompilerId.cpp +791 -0
  240. package/android/.cxx/Debug/2a3w6u3n/x86/CMakeFiles/3.22.1-g37088a8-dirty/CompilerIdCXX/CMakeCXXCompilerId.o +0 -0
  241. package/android/.cxx/Debug/2a3w6u3n/x86/CMakeFiles/CMakeOutput.log +258 -0
  242. package/android/.cxx/Debug/2a3w6u3n/x86/CMakeFiles/TargetDirectories.txt +24 -0
  243. package/android/.cxx/Debug/2a3w6u3n/x86/CMakeFiles/cmake.check_cache +1 -0
  244. package/android/.cxx/Debug/2a3w6u3n/x86/CMakeFiles/faceantispoof.dir/FaceAntiSpoofJSI.cpp.o +0 -0
  245. package/android/.cxx/Debug/2a3w6u3n/x86/CMakeFiles/faceantispoof.dir/c9fdc8b0d027394fa06b64ba7ac7706f/react-native/ReactCommon/jsi/jsi/jsi.cpp.o +0 -0
  246. package/android/.cxx/Debug/2a3w6u3n/x86/CMakeFiles/fastyuv.dir/FastYuvJni.cpp.o +0 -0
  247. package/android/.cxx/Debug/2a3w6u3n/x86/CMakeFiles/fastyuv.dir/fast_yuv.cpp.o +0 -0
  248. package/android/.cxx/Debug/2a3w6u3n/x86/CMakeFiles/rules.ninja +168 -0
  249. package/android/.cxx/Debug/2a3w6u3n/x86/CPackConfig.cmake +71 -0
  250. package/android/.cxx/Debug/2a3w6u3n/x86/CPackSourceConfig.cmake +79 -0
  251. package/android/.cxx/Debug/2a3w6u3n/x86/additional_project_files.txt +40 -0
  252. package/android/.cxx/Debug/2a3w6u3n/x86/android_gradle_build.json +91 -0
  253. package/android/.cxx/Debug/2a3w6u3n/x86/android_gradle_build_mini.json +72 -0
  254. package/android/.cxx/Debug/2a3w6u3n/x86/build.ninja +945 -0
  255. package/android/.cxx/Debug/2a3w6u3n/x86/build_file_index.txt +3 -0
  256. package/android/.cxx/Debug/2a3w6u3n/x86/cmake_install.cmake +59 -0
  257. package/android/.cxx/Debug/2a3w6u3n/x86/compile_commands.json +237 -0
  258. package/android/.cxx/Debug/2a3w6u3n/x86/compile_commands.json.bin +0 -0
  259. package/android/.cxx/Debug/2a3w6u3n/x86/configure_fingerprint.bin +29 -0
  260. package/android/.cxx/Debug/2a3w6u3n/x86/libyuv/CMakeFiles/cpuid.dir/util/cpuid.c.o +0 -0
  261. package/android/.cxx/Debug/2a3w6u3n/x86/libyuv/CMakeFiles/yuv_common_objects.dir/source/compare.cc.o +0 -0
  262. package/android/.cxx/Debug/2a3w6u3n/x86/libyuv/CMakeFiles/yuv_common_objects.dir/source/compare_common.cc.o +0 -0
  263. package/android/.cxx/Debug/2a3w6u3n/x86/libyuv/CMakeFiles/yuv_common_objects.dir/source/compare_gcc.cc.o +0 -0
  264. package/android/.cxx/Debug/2a3w6u3n/x86/libyuv/CMakeFiles/yuv_common_objects.dir/source/compare_win.cc.o +0 -0
  265. package/android/.cxx/Debug/2a3w6u3n/x86/libyuv/CMakeFiles/yuv_common_objects.dir/source/convert.cc.o +0 -0
  266. package/android/.cxx/Debug/2a3w6u3n/x86/libyuv/CMakeFiles/yuv_common_objects.dir/source/convert_argb.cc.o +0 -0
  267. package/android/.cxx/Debug/2a3w6u3n/x86/libyuv/CMakeFiles/yuv_common_objects.dir/source/convert_from.cc.o +0 -0
  268. package/android/.cxx/Debug/2a3w6u3n/x86/libyuv/CMakeFiles/yuv_common_objects.dir/source/convert_from_argb.cc.o +0 -0
  269. package/android/.cxx/Debug/2a3w6u3n/x86/libyuv/CMakeFiles/yuv_common_objects.dir/source/convert_jpeg.cc.o +0 -0
  270. package/android/.cxx/Debug/2a3w6u3n/x86/libyuv/CMakeFiles/yuv_common_objects.dir/source/convert_to_argb.cc.o +0 -0
  271. package/android/.cxx/Debug/2a3w6u3n/x86/libyuv/CMakeFiles/yuv_common_objects.dir/source/convert_to_i420.cc.o +0 -0
  272. package/android/.cxx/Debug/2a3w6u3n/x86/libyuv/CMakeFiles/yuv_common_objects.dir/source/cpu_id.cc.o +0 -0
  273. package/android/.cxx/Debug/2a3w6u3n/x86/libyuv/CMakeFiles/yuv_common_objects.dir/source/mjpeg_decoder.cc.o +0 -0
  274. package/android/.cxx/Debug/2a3w6u3n/x86/libyuv/CMakeFiles/yuv_common_objects.dir/source/mjpeg_validate.cc.o +0 -0
  275. package/android/.cxx/Debug/2a3w6u3n/x86/libyuv/CMakeFiles/yuv_common_objects.dir/source/planar_functions.cc.o +0 -0
  276. package/android/.cxx/Debug/2a3w6u3n/x86/libyuv/CMakeFiles/yuv_common_objects.dir/source/rotate.cc.o +0 -0
  277. package/android/.cxx/Debug/2a3w6u3n/x86/libyuv/CMakeFiles/yuv_common_objects.dir/source/rotate_any.cc.o +0 -0
  278. package/android/.cxx/Debug/2a3w6u3n/x86/libyuv/CMakeFiles/yuv_common_objects.dir/source/rotate_argb.cc.o +0 -0
  279. package/android/.cxx/Debug/2a3w6u3n/x86/libyuv/CMakeFiles/yuv_common_objects.dir/source/rotate_common.cc.o +0 -0
  280. package/android/.cxx/Debug/2a3w6u3n/x86/libyuv/CMakeFiles/yuv_common_objects.dir/source/rotate_gcc.cc.o +0 -0
  281. package/android/.cxx/Debug/2a3w6u3n/x86/libyuv/CMakeFiles/yuv_common_objects.dir/source/rotate_lsx.cc.o +0 -0
  282. package/android/.cxx/Debug/2a3w6u3n/x86/libyuv/CMakeFiles/yuv_common_objects.dir/source/rotate_win.cc.o +0 -0
  283. package/android/.cxx/Debug/2a3w6u3n/x86/libyuv/CMakeFiles/yuv_common_objects.dir/source/row_any.cc.o +0 -0
  284. package/android/.cxx/Debug/2a3w6u3n/x86/libyuv/CMakeFiles/yuv_common_objects.dir/source/row_common.cc.o +0 -0
  285. package/android/.cxx/Debug/2a3w6u3n/x86/libyuv/CMakeFiles/yuv_common_objects.dir/source/row_gcc.cc.o +0 -0
  286. package/android/.cxx/Debug/2a3w6u3n/x86/libyuv/CMakeFiles/yuv_common_objects.dir/source/row_lasx.cc.o +0 -0
  287. package/android/.cxx/Debug/2a3w6u3n/x86/libyuv/CMakeFiles/yuv_common_objects.dir/source/row_lsx.cc.o +0 -0
  288. package/android/.cxx/Debug/2a3w6u3n/x86/libyuv/CMakeFiles/yuv_common_objects.dir/source/row_rvv.cc.o +0 -0
  289. package/android/.cxx/Debug/2a3w6u3n/x86/libyuv/CMakeFiles/yuv_common_objects.dir/source/row_win.cc.o +0 -0
  290. package/android/.cxx/Debug/2a3w6u3n/x86/libyuv/CMakeFiles/yuv_common_objects.dir/source/scale.cc.o +0 -0
  291. package/android/.cxx/Debug/2a3w6u3n/x86/libyuv/CMakeFiles/yuv_common_objects.dir/source/scale_any.cc.o +0 -0
  292. package/android/.cxx/Debug/2a3w6u3n/x86/libyuv/CMakeFiles/yuv_common_objects.dir/source/scale_argb.cc.o +0 -0
  293. package/android/.cxx/Debug/2a3w6u3n/x86/libyuv/CMakeFiles/yuv_common_objects.dir/source/scale_common.cc.o +0 -0
  294. package/android/.cxx/Debug/2a3w6u3n/x86/libyuv/CMakeFiles/yuv_common_objects.dir/source/scale_gcc.cc.o +0 -0
  295. package/android/.cxx/Debug/2a3w6u3n/x86/libyuv/CMakeFiles/yuv_common_objects.dir/source/scale_lsx.cc.o +0 -0
  296. package/android/.cxx/Debug/2a3w6u3n/x86/libyuv/CMakeFiles/yuv_common_objects.dir/source/scale_rgb.cc.o +0 -0
  297. package/android/.cxx/Debug/2a3w6u3n/x86/libyuv/CMakeFiles/yuv_common_objects.dir/source/scale_rvv.cc.o +0 -0
  298. package/android/.cxx/Debug/2a3w6u3n/x86/libyuv/CMakeFiles/yuv_common_objects.dir/source/scale_uv.cc.o +0 -0
  299. package/android/.cxx/Debug/2a3w6u3n/x86/libyuv/CMakeFiles/yuv_common_objects.dir/source/scale_win.cc.o +0 -0
  300. package/android/.cxx/Debug/2a3w6u3n/x86/libyuv/CMakeFiles/yuv_common_objects.dir/source/video_common.cc.o +0 -0
  301. package/android/.cxx/Debug/2a3w6u3n/x86/libyuv/CMakeFiles/yuvconstants.dir/util/yuvconstants.c.o +0 -0
  302. package/android/.cxx/Debug/2a3w6u3n/x86/libyuv/CMakeFiles/yuvconvert.dir/util/yuvconvert.cc.o +0 -0
  303. package/android/.cxx/Debug/2a3w6u3n/x86/libyuv/cmake_install.cmake +87 -0
  304. package/android/.cxx/Debug/2a3w6u3n/x86/libyuv/libyuv.a +0 -0
  305. package/android/.cxx/Debug/2a3w6u3n/x86/metadata_generation_command.txt +19 -0
  306. package/android/.cxx/Debug/2a3w6u3n/x86/prefab_config.json +4 -0
  307. package/android/.cxx/Debug/2a3w6u3n/x86/symbol_folder_index.txt +1 -0
  308. package/android/.cxx/Debug/2a3w6u3n/x86_64/.cmake/api/v1/query/client-agp/cache-v2 +0 -0
  309. package/android/.cxx/Debug/2a3w6u3n/x86_64/.cmake/api/v1/query/client-agp/cmakeFiles-v1 +0 -0
  310. package/android/.cxx/Debug/2a3w6u3n/x86_64/.cmake/api/v1/query/client-agp/codemodel-v2 +0 -0
  311. package/android/.cxx/Debug/2a3w6u3n/x86_64/.cmake/api/v1/reply/cache-v2-5ca7fb88a80849964189.json +1587 -0
  312. package/android/.cxx/Debug/2a3w6u3n/x86_64/.cmake/api/v1/reply/cmakeFiles-v1-9871675aa6610f6180ca.json +857 -0
  313. package/android/.cxx/Debug/2a3w6u3n/x86_64/.cmake/api/v1/reply/codemodel-v2-deb41c72c38c1ff57431.json +158 -0
  314. package/android/.cxx/Debug/2a3w6u3n/x86_64/.cmake/api/v1/reply/directory-.-Debug-d0094a50bb2071803777.json +14 -0
  315. package/android/.cxx/Debug/2a3w6u3n/x86_64/.cmake/api/v1/reply/directory-libyuv-Debug-edf355e979425c71897d.json +100 -0
  316. package/android/.cxx/Debug/2a3w6u3n/x86_64/.cmake/api/v1/reply/index-2025-11-18T09-42-00-0374.json +92 -0
  317. package/android/.cxx/Debug/2a3w6u3n/x86_64/.cmake/api/v1/reply/target-cpuid-Debug-264b6f675c69e42e8113.json +136 -0
  318. package/android/.cxx/Debug/2a3w6u3n/x86_64/.cmake/api/v1/reply/target-faceantispoof-Debug-c95714fd9c4cd04d4222.json +181 -0
  319. package/android/.cxx/Debug/2a3w6u3n/x86_64/.cmake/api/v1/reply/target-fastyuv-Debug-80c6b1b5d8e35770dde3.json +157 -0
  320. package/android/.cxx/Debug/2a3w6u3n/x86_64/.cmake/api/v1/reply/target-yuv-Debug-6d3d5c5dcc6bffc18ce6.json +368 -0
  321. package/android/.cxx/Debug/2a3w6u3n/x86_64/.cmake/api/v1/reply/target-yuv_common_objects-Debug-ae517204d04beeb2df23.json +522 -0
  322. package/android/.cxx/Debug/2a3w6u3n/x86_64/.cmake/api/v1/reply/target-yuv_shared-Debug-6e364a075e5b9b47274e.json +390 -0
  323. package/android/.cxx/Debug/2a3w6u3n/x86_64/.cmake/api/v1/reply/target-yuvconstants-Debug-f6a29384c5629faf75f4.json +136 -0
  324. package/android/.cxx/Debug/2a3w6u3n/x86_64/.cmake/api/v1/reply/target-yuvconvert-Debug-dca5f1cf9af89281fc95.json +157 -0
  325. package/android/.cxx/Debug/2a3w6u3n/x86_64/.ninja_deps +0 -0
  326. package/android/.cxx/Debug/2a3w6u3n/x86_64/.ninja_log +55 -0
  327. package/android/.cxx/Debug/2a3w6u3n/x86_64/CMakeCache.txt +463 -0
  328. package/android/.cxx/Debug/2a3w6u3n/x86_64/CMakeFiles/3.22.1-g37088a8-dirty/CMakeCCompiler.cmake +72 -0
  329. package/android/.cxx/Debug/2a3w6u3n/x86_64/CMakeFiles/3.22.1-g37088a8-dirty/CMakeCXXCompiler.cmake +83 -0
  330. package/android/.cxx/Debug/2a3w6u3n/x86_64/CMakeFiles/3.22.1-g37088a8-dirty/CMakeDetermineCompilerABI_C.bin +0 -0
  331. package/android/.cxx/Debug/2a3w6u3n/x86_64/CMakeFiles/3.22.1-g37088a8-dirty/CMakeDetermineCompilerABI_CXX.bin +0 -0
  332. package/android/.cxx/Debug/2a3w6u3n/x86_64/CMakeFiles/3.22.1-g37088a8-dirty/CMakeSystem.cmake +15 -0
  333. package/android/.cxx/Debug/2a3w6u3n/x86_64/CMakeFiles/3.22.1-g37088a8-dirty/CompilerIdC/CMakeCCompilerId.c +803 -0
  334. package/android/.cxx/Debug/2a3w6u3n/x86_64/CMakeFiles/3.22.1-g37088a8-dirty/CompilerIdC/CMakeCCompilerId.o +0 -0
  335. package/android/.cxx/Debug/2a3w6u3n/x86_64/CMakeFiles/3.22.1-g37088a8-dirty/CompilerIdCXX/CMakeCXXCompilerId.cpp +791 -0
  336. package/android/.cxx/Debug/2a3w6u3n/x86_64/CMakeFiles/3.22.1-g37088a8-dirty/CompilerIdCXX/CMakeCXXCompilerId.o +0 -0
  337. package/android/.cxx/Debug/2a3w6u3n/x86_64/CMakeFiles/CMakeOutput.log +258 -0
  338. package/android/.cxx/Debug/2a3w6u3n/x86_64/CMakeFiles/TargetDirectories.txt +24 -0
  339. package/android/.cxx/Debug/2a3w6u3n/x86_64/CMakeFiles/cmake.check_cache +1 -0
  340. package/android/.cxx/Debug/2a3w6u3n/x86_64/CMakeFiles/faceantispoof.dir/FaceAntiSpoofJSI.cpp.o +0 -0
  341. package/android/.cxx/Debug/2a3w6u3n/x86_64/CMakeFiles/faceantispoof.dir/c9fdc8b0d027394fa06b64ba7ac7706f/react-native/ReactCommon/jsi/jsi/jsi.cpp.o +0 -0
  342. package/android/.cxx/Debug/2a3w6u3n/x86_64/CMakeFiles/fastyuv.dir/FastYuvJni.cpp.o +0 -0
  343. package/android/.cxx/Debug/2a3w6u3n/x86_64/CMakeFiles/fastyuv.dir/fast_yuv.cpp.o +0 -0
  344. package/android/.cxx/Debug/2a3w6u3n/x86_64/CMakeFiles/rules.ninja +168 -0
  345. package/android/.cxx/Debug/2a3w6u3n/x86_64/CPackConfig.cmake +71 -0
  346. package/android/.cxx/Debug/2a3w6u3n/x86_64/CPackSourceConfig.cmake +79 -0
  347. package/android/.cxx/Debug/2a3w6u3n/x86_64/additional_project_files.txt +40 -0
  348. package/android/.cxx/Debug/2a3w6u3n/x86_64/android_gradle_build.json +91 -0
  349. package/android/.cxx/Debug/2a3w6u3n/x86_64/android_gradle_build_mini.json +72 -0
  350. package/android/.cxx/Debug/2a3w6u3n/x86_64/build.ninja +945 -0
  351. package/android/.cxx/Debug/2a3w6u3n/x86_64/build_file_index.txt +3 -0
  352. package/android/.cxx/Debug/2a3w6u3n/x86_64/cmake_install.cmake +59 -0
  353. package/android/.cxx/Debug/2a3w6u3n/x86_64/compile_commands.json +237 -0
  354. package/android/.cxx/Debug/2a3w6u3n/x86_64/compile_commands.json.bin +0 -0
  355. package/android/.cxx/Debug/2a3w6u3n/x86_64/configure_fingerprint.bin +29 -0
  356. package/android/.cxx/Debug/2a3w6u3n/x86_64/libyuv/CMakeFiles/cpuid.dir/util/cpuid.c.o +0 -0
  357. package/android/.cxx/Debug/2a3w6u3n/x86_64/libyuv/CMakeFiles/yuv_common_objects.dir/source/compare.cc.o +0 -0
  358. package/android/.cxx/Debug/2a3w6u3n/x86_64/libyuv/CMakeFiles/yuv_common_objects.dir/source/compare_common.cc.o +0 -0
  359. package/android/.cxx/Debug/2a3w6u3n/x86_64/libyuv/CMakeFiles/yuv_common_objects.dir/source/compare_gcc.cc.o +0 -0
  360. package/android/.cxx/Debug/2a3w6u3n/x86_64/libyuv/CMakeFiles/yuv_common_objects.dir/source/compare_win.cc.o +0 -0
  361. package/android/.cxx/Debug/2a3w6u3n/x86_64/libyuv/CMakeFiles/yuv_common_objects.dir/source/convert.cc.o +0 -0
  362. package/android/.cxx/Debug/2a3w6u3n/x86_64/libyuv/CMakeFiles/yuv_common_objects.dir/source/convert_argb.cc.o +0 -0
  363. package/android/.cxx/Debug/2a3w6u3n/x86_64/libyuv/CMakeFiles/yuv_common_objects.dir/source/convert_from.cc.o +0 -0
  364. package/android/.cxx/Debug/2a3w6u3n/x86_64/libyuv/CMakeFiles/yuv_common_objects.dir/source/convert_from_argb.cc.o +0 -0
  365. package/android/.cxx/Debug/2a3w6u3n/x86_64/libyuv/CMakeFiles/yuv_common_objects.dir/source/convert_jpeg.cc.o +0 -0
  366. package/android/.cxx/Debug/2a3w6u3n/x86_64/libyuv/CMakeFiles/yuv_common_objects.dir/source/convert_to_argb.cc.o +0 -0
  367. package/android/.cxx/Debug/2a3w6u3n/x86_64/libyuv/CMakeFiles/yuv_common_objects.dir/source/convert_to_i420.cc.o +0 -0
  368. package/android/.cxx/Debug/2a3w6u3n/x86_64/libyuv/CMakeFiles/yuv_common_objects.dir/source/cpu_id.cc.o +0 -0
  369. package/android/.cxx/Debug/2a3w6u3n/x86_64/libyuv/CMakeFiles/yuv_common_objects.dir/source/mjpeg_decoder.cc.o +0 -0
  370. package/android/.cxx/Debug/2a3w6u3n/x86_64/libyuv/CMakeFiles/yuv_common_objects.dir/source/mjpeg_validate.cc.o +0 -0
  371. package/android/.cxx/Debug/2a3w6u3n/x86_64/libyuv/CMakeFiles/yuv_common_objects.dir/source/planar_functions.cc.o +0 -0
  372. package/android/.cxx/Debug/2a3w6u3n/x86_64/libyuv/CMakeFiles/yuv_common_objects.dir/source/rotate.cc.o +0 -0
  373. package/android/.cxx/Debug/2a3w6u3n/x86_64/libyuv/CMakeFiles/yuv_common_objects.dir/source/rotate_any.cc.o +0 -0
  374. package/android/.cxx/Debug/2a3w6u3n/x86_64/libyuv/CMakeFiles/yuv_common_objects.dir/source/rotate_argb.cc.o +0 -0
  375. package/android/.cxx/Debug/2a3w6u3n/x86_64/libyuv/CMakeFiles/yuv_common_objects.dir/source/rotate_common.cc.o +0 -0
  376. package/android/.cxx/Debug/2a3w6u3n/x86_64/libyuv/CMakeFiles/yuv_common_objects.dir/source/rotate_gcc.cc.o +0 -0
  377. package/android/.cxx/Debug/2a3w6u3n/x86_64/libyuv/CMakeFiles/yuv_common_objects.dir/source/rotate_lsx.cc.o +0 -0
  378. package/android/.cxx/Debug/2a3w6u3n/x86_64/libyuv/CMakeFiles/yuv_common_objects.dir/source/rotate_win.cc.o +0 -0
  379. package/android/.cxx/Debug/2a3w6u3n/x86_64/libyuv/CMakeFiles/yuv_common_objects.dir/source/row_any.cc.o +0 -0
  380. package/android/.cxx/Debug/2a3w6u3n/x86_64/libyuv/CMakeFiles/yuv_common_objects.dir/source/row_common.cc.o +0 -0
  381. package/android/.cxx/Debug/2a3w6u3n/x86_64/libyuv/CMakeFiles/yuv_common_objects.dir/source/row_gcc.cc.o +0 -0
  382. package/android/.cxx/Debug/2a3w6u3n/x86_64/libyuv/CMakeFiles/yuv_common_objects.dir/source/row_lasx.cc.o +0 -0
  383. package/android/.cxx/Debug/2a3w6u3n/x86_64/libyuv/CMakeFiles/yuv_common_objects.dir/source/row_lsx.cc.o +0 -0
  384. package/android/.cxx/Debug/2a3w6u3n/x86_64/libyuv/CMakeFiles/yuv_common_objects.dir/source/row_rvv.cc.o +0 -0
  385. package/android/.cxx/Debug/2a3w6u3n/x86_64/libyuv/CMakeFiles/yuv_common_objects.dir/source/row_win.cc.o +0 -0
  386. package/android/.cxx/Debug/2a3w6u3n/x86_64/libyuv/CMakeFiles/yuv_common_objects.dir/source/scale.cc.o +0 -0
  387. package/android/.cxx/Debug/2a3w6u3n/x86_64/libyuv/CMakeFiles/yuv_common_objects.dir/source/scale_any.cc.o +0 -0
  388. package/android/.cxx/Debug/2a3w6u3n/x86_64/libyuv/CMakeFiles/yuv_common_objects.dir/source/scale_argb.cc.o +0 -0
  389. package/android/.cxx/Debug/2a3w6u3n/x86_64/libyuv/CMakeFiles/yuv_common_objects.dir/source/scale_common.cc.o +0 -0
  390. package/android/.cxx/Debug/2a3w6u3n/x86_64/libyuv/CMakeFiles/yuv_common_objects.dir/source/scale_gcc.cc.o +0 -0
  391. package/android/.cxx/Debug/2a3w6u3n/x86_64/libyuv/CMakeFiles/yuv_common_objects.dir/source/scale_lsx.cc.o +0 -0
  392. package/android/.cxx/Debug/2a3w6u3n/x86_64/libyuv/CMakeFiles/yuv_common_objects.dir/source/scale_rgb.cc.o +0 -0
  393. package/android/.cxx/Debug/2a3w6u3n/x86_64/libyuv/CMakeFiles/yuv_common_objects.dir/source/scale_rvv.cc.o +0 -0
  394. package/android/.cxx/Debug/2a3w6u3n/x86_64/libyuv/CMakeFiles/yuv_common_objects.dir/source/scale_uv.cc.o +0 -0
  395. package/android/.cxx/Debug/2a3w6u3n/x86_64/libyuv/CMakeFiles/yuv_common_objects.dir/source/scale_win.cc.o +0 -0
  396. package/android/.cxx/Debug/2a3w6u3n/x86_64/libyuv/CMakeFiles/yuv_common_objects.dir/source/video_common.cc.o +0 -0
  397. package/android/.cxx/Debug/2a3w6u3n/x86_64/libyuv/CMakeFiles/yuvconstants.dir/util/yuvconstants.c.o +0 -0
  398. package/android/.cxx/Debug/2a3w6u3n/x86_64/libyuv/CMakeFiles/yuvconvert.dir/util/yuvconvert.cc.o +0 -0
  399. package/android/.cxx/Debug/2a3w6u3n/x86_64/libyuv/cmake_install.cmake +87 -0
  400. package/android/.cxx/Debug/2a3w6u3n/x86_64/libyuv/libyuv.a +0 -0
  401. package/android/.cxx/Debug/2a3w6u3n/x86_64/metadata_generation_command.txt +19 -0
  402. package/android/.cxx/Debug/2a3w6u3n/x86_64/prefab_config.json +4 -0
  403. package/android/.cxx/Debug/2a3w6u3n/x86_64/symbol_folder_index.txt +1 -0
  404. package/android/.cxx/tools/debug/arm64-v8a/compile_commands.json +277 -0
  405. package/android/.cxx/tools/debug/armeabi-v7a/compile_commands.json +257 -0
  406. package/android/.cxx/tools/debug/x86/compile_commands.json +237 -0
  407. package/android/.cxx/tools/debug/x86_64/compile_commands.json +237 -0
  408. package/android/build/.transforms/477a48f41cbd60a6044ae2b6659edb2d/results.bin +1 -0
  409. package/android/build/.transforms/477a48f41cbd60a6044ae2b6659edb2d/transformed/classes/classes_dex/classes.dex +0 -0
  410. package/android/build/.transforms/4b58c518b6e650677b3ff7c47c32914f/results.bin +1 -0
  411. package/android/build/.transforms/4b58c518b6e650677b3ff7c47c32914f/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/faceantispoof/AcceleratorConfig.dex +0 -0
  412. package/android/build/.transforms/4b58c518b6e650677b3ff7c47c32914f/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/faceantispoof/AntiSpoofingResult.dex +0 -0
  413. package/android/build/.transforms/4b58c518b6e650677b3ff7c47c32914f/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/faceantispoof/BuildConfig.dex +0 -0
  414. package/android/build/.transforms/4b58c518b6e650677b3ff7c47c32914f/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/faceantispoof/FaceAntiSpoofFrameProcessor.dex +0 -0
  415. package/android/build/.transforms/4b58c518b6e650677b3ff7c47c32914f/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/faceantispoof/FaceAntiSpoofModule$Companion.dex +0 -0
  416. package/android/build/.transforms/4b58c518b6e650677b3ff7c47c32914f/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/faceantispoof/FaceAntiSpoofModule.dex +0 -0
  417. package/android/build/.transforms/4b58c518b6e650677b3ff7c47c32914f/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/faceantispoof/FaceAntiSpoofPackage.dex +0 -0
  418. package/android/build/.transforms/4b58c518b6e650677b3ff7c47c32914f/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/faceantispoof/FaceAntiSpoofingAdvanced$Companion.dex +0 -0
  419. package/android/build/.transforms/4b58c518b6e650677b3ff7c47c32914f/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/faceantispoof/FaceAntiSpoofingAdvanced.dex +0 -0
  420. package/android/build/.transforms/4b58c518b6e650677b3ff7c47c32914f/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/faceantispoof/FastYuv.dex +0 -0
  421. package/android/build/.transforms/4b58c518b6e650677b3ff7c47c32914f/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/faceantispoof/YuvToFloatArrayConverter.dex +0 -0
  422. package/android/build/.transforms/4b58c518b6e650677b3ff7c47c32914f/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/faceantispoof/YuvToRgbConverter.dex +0 -0
  423. package/android/build/.transforms/4b58c518b6e650677b3ff7c47c32914f/transformed/bundleLibRuntimeToDirDebug/desugar_graph.bin +0 -0
  424. package/android/build/generated/source/buildConfig/debug/com/faceantispoof/BuildConfig.java +14 -0
  425. package/android/build/intermediates/aapt_friendly_merged_manifests/debug/processDebugManifest/aapt/AndroidManifest.xml +13 -0
  426. package/android/build/intermediates/aapt_friendly_merged_manifests/debug/processDebugManifest/aapt/output-metadata.json +18 -0
  427. package/android/build/intermediates/aar_metadata/debug/writeDebugAarMetadata/aar-metadata.properties +6 -0
  428. package/android/build/intermediates/annotation_processor_list/debug/javaPreCompileDebug/annotationProcessors.json +1 -0
  429. package/android/build/intermediates/compile_library_classes_jar/debug/bundleLibCompileToJarDebug/classes.jar +0 -0
  430. package/android/build/intermediates/compile_r_class_jar/debug/generateDebugRFile/R.jar +0 -0
  431. package/android/build/intermediates/compile_symbol_list/debug/generateDebugRFile/R.txt +1 -0
  432. package/android/build/intermediates/cxx/Debug/2a3w6u3n/logs/arm64-v8a/build_command_targets.bat +10 -0
  433. package/android/build/intermediates/cxx/Debug/2a3w6u3n/logs/arm64-v8a/build_model.json +199 -0
  434. package/android/build/intermediates/cxx/Debug/2a3w6u3n/logs/arm64-v8a/build_stderr_targets.txt +0 -0
  435. package/android/build/intermediates/cxx/Debug/2a3w6u3n/logs/arm64-v8a/build_stdout_targets.txt +63 -0
  436. package/android/build/intermediates/cxx/Debug/2a3w6u3n/logs/arm64-v8a/configure_command.bat +19 -0
  437. package/android/build/intermediates/cxx/Debug/2a3w6u3n/logs/arm64-v8a/configure_stderr.txt +0 -0
  438. package/android/build/intermediates/cxx/Debug/2a3w6u3n/logs/arm64-v8a/configure_stdout.txt +21 -0
  439. package/android/build/intermediates/cxx/Debug/2a3w6u3n/logs/arm64-v8a/generate_cxx_metadata_8656_timing.txt +9 -0
  440. package/android/build/intermediates/cxx/Debug/2a3w6u3n/logs/arm64-v8a/metadata_generation_record.json +158 -0
  441. package/android/build/intermediates/cxx/Debug/2a3w6u3n/logs/armeabi-v7a/build_command_targets.bat +10 -0
  442. package/android/build/intermediates/cxx/Debug/2a3w6u3n/logs/armeabi-v7a/build_model.json +199 -0
  443. package/android/build/intermediates/cxx/Debug/2a3w6u3n/logs/armeabi-v7a/build_stderr_targets.txt +0 -0
  444. package/android/build/intermediates/cxx/Debug/2a3w6u3n/logs/armeabi-v7a/build_stdout_targets.txt +59 -0
  445. package/android/build/intermediates/cxx/Debug/2a3w6u3n/logs/armeabi-v7a/configure_command.bat +19 -0
  446. package/android/build/intermediates/cxx/Debug/2a3w6u3n/logs/armeabi-v7a/configure_stderr.txt +1 -0
  447. package/android/build/intermediates/cxx/Debug/2a3w6u3n/logs/armeabi-v7a/configure_stdout.txt +19 -0
  448. package/android/build/intermediates/cxx/Debug/2a3w6u3n/logs/armeabi-v7a/generate_cxx_metadata_8659_timing.txt +9 -0
  449. package/android/build/intermediates/cxx/Debug/2a3w6u3n/logs/armeabi-v7a/metadata_generation_record.json +158 -0
  450. package/android/build/intermediates/cxx/Debug/2a3w6u3n/logs/x86/build_command_targets.bat +10 -0
  451. package/android/build/intermediates/cxx/Debug/2a3w6u3n/logs/x86/build_model.json +199 -0
  452. package/android/build/intermediates/cxx/Debug/2a3w6u3n/logs/x86/build_stderr_targets.txt +0 -0
  453. package/android/build/intermediates/cxx/Debug/2a3w6u3n/logs/x86/build_stdout_targets.txt +55 -0
  454. package/android/build/intermediates/cxx/Debug/2a3w6u3n/logs/x86/configure_command.bat +19 -0
  455. package/android/build/intermediates/cxx/Debug/2a3w6u3n/logs/x86/configure_stderr.txt +0 -0
  456. package/android/build/intermediates/cxx/Debug/2a3w6u3n/logs/x86/configure_stdout.txt +19 -0
  457. package/android/build/intermediates/cxx/Debug/2a3w6u3n/logs/x86/generate_cxx_metadata_8659_timing.txt +9 -0
  458. package/android/build/intermediates/cxx/Debug/2a3w6u3n/logs/x86/metadata_generation_record.json +158 -0
  459. package/android/build/intermediates/cxx/Debug/2a3w6u3n/logs/x86_64/build_command_targets.bat +10 -0
  460. package/android/build/intermediates/cxx/Debug/2a3w6u3n/logs/x86_64/build_model.json +199 -0
  461. package/android/build/intermediates/cxx/Debug/2a3w6u3n/logs/x86_64/build_stderr_targets.txt +0 -0
  462. package/android/build/intermediates/cxx/Debug/2a3w6u3n/logs/x86_64/build_stdout_targets.txt +55 -0
  463. package/android/build/intermediates/cxx/Debug/2a3w6u3n/logs/x86_64/configure_command.bat +19 -0
  464. package/android/build/intermediates/cxx/Debug/2a3w6u3n/logs/x86_64/configure_stderr.txt +0 -0
  465. package/android/build/intermediates/cxx/Debug/2a3w6u3n/logs/x86_64/configure_stdout.txt +19 -0
  466. package/android/build/intermediates/cxx/Debug/2a3w6u3n/logs/x86_64/generate_cxx_metadata_8659_timing.txt +9 -0
  467. package/android/build/intermediates/cxx/Debug/2a3w6u3n/logs/x86_64/metadata_generation_record.json +158 -0
  468. package/android/build/intermediates/cxx/Debug/2a3w6u3n/obj/arm64-v8a/cpuid +0 -0
  469. package/android/build/intermediates/cxx/Debug/2a3w6u3n/obj/arm64-v8a/libfaceantispoof.so +0 -0
  470. package/android/build/intermediates/cxx/Debug/2a3w6u3n/obj/arm64-v8a/libfastyuv.so +0 -0
  471. package/android/build/intermediates/cxx/Debug/2a3w6u3n/obj/arm64-v8a/libyuv.so +0 -0
  472. package/android/build/intermediates/cxx/Debug/2a3w6u3n/obj/arm64-v8a/yuvconstants +0 -0
  473. package/android/build/intermediates/cxx/Debug/2a3w6u3n/obj/arm64-v8a/yuvconvert +0 -0
  474. package/android/build/intermediates/cxx/Debug/2a3w6u3n/obj/armeabi-v7a/cpuid +0 -0
  475. package/android/build/intermediates/cxx/Debug/2a3w6u3n/obj/armeabi-v7a/libfaceantispoof.so +0 -0
  476. package/android/build/intermediates/cxx/Debug/2a3w6u3n/obj/armeabi-v7a/libfastyuv.so +0 -0
  477. package/android/build/intermediates/cxx/Debug/2a3w6u3n/obj/armeabi-v7a/libyuv.so +0 -0
  478. package/android/build/intermediates/cxx/Debug/2a3w6u3n/obj/armeabi-v7a/yuvconstants +0 -0
  479. package/android/build/intermediates/cxx/Debug/2a3w6u3n/obj/armeabi-v7a/yuvconvert +0 -0
  480. package/android/build/intermediates/cxx/Debug/2a3w6u3n/obj/x86/cpuid +0 -0
  481. package/android/build/intermediates/cxx/Debug/2a3w6u3n/obj/x86/libfaceantispoof.so +0 -0
  482. package/android/build/intermediates/cxx/Debug/2a3w6u3n/obj/x86/libfastyuv.so +0 -0
  483. package/android/build/intermediates/cxx/Debug/2a3w6u3n/obj/x86/libyuv.so +0 -0
  484. package/android/build/intermediates/cxx/Debug/2a3w6u3n/obj/x86/yuvconstants +0 -0
  485. package/android/build/intermediates/cxx/Debug/2a3w6u3n/obj/x86/yuvconvert +0 -0
  486. package/android/build/intermediates/cxx/Debug/2a3w6u3n/obj/x86_64/cpuid +0 -0
  487. package/android/build/intermediates/cxx/Debug/2a3w6u3n/obj/x86_64/libfaceantispoof.so +0 -0
  488. package/android/build/intermediates/cxx/Debug/2a3w6u3n/obj/x86_64/libfastyuv.so +0 -0
  489. package/android/build/intermediates/cxx/Debug/2a3w6u3n/obj/x86_64/libyuv.so +0 -0
  490. package/android/build/intermediates/cxx/Debug/2a3w6u3n/obj/x86_64/yuvconstants +0 -0
  491. package/android/build/intermediates/cxx/Debug/2a3w6u3n/obj/x86_64/yuvconvert +0 -0
  492. package/android/build/intermediates/incremental/debug/packageDebugResources/compile-file-map.properties +1 -0
  493. package/android/build/intermediates/incremental/debug/packageDebugResources/merged.dir/values/values.xml +4 -0
  494. package/android/build/intermediates/incremental/debug/packageDebugResources/merger.xml +2 -0
  495. package/android/build/intermediates/incremental/mergeDebugJniLibFolders/merger.xml +2 -0
  496. package/android/build/intermediates/incremental/mergeDebugShaders/merger.xml +2 -0
  497. package/android/build/intermediates/incremental/packageDebugAssets/merger.xml +2 -0
  498. package/android/build/intermediates/java_res/debug/processDebugJavaRes/out/META-INF/react-native-vision-camera-face-antispoof-detector_debug.kotlin_module +0 -0
  499. package/android/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/faceantispoof/BuildConfig.class +0 -0
  500. package/android/build/intermediates/library_assets/debug/packageDebugAssets/out/FaceAntiSpoofing.tflite +0 -0
  501. package/android/build/intermediates/library_assets/debug/packageDebugAssets/out/spoof_model_scale_2_7.tflite +0 -0
  502. package/android/build/intermediates/library_assets/debug/packageDebugAssets/out/spoof_model_scale_4_0.tflite +0 -0
  503. package/android/build/intermediates/library_jni/debug/copyDebugJniLibsProjectOnly/jni/arm64-v8a/libfaceantispoof.so +0 -0
  504. package/android/build/intermediates/library_jni/debug/copyDebugJniLibsProjectOnly/jni/arm64-v8a/libfastyuv.so +0 -0
  505. package/android/build/intermediates/library_jni/debug/copyDebugJniLibsProjectOnly/jni/arm64-v8a/libyuv.so +0 -0
  506. package/android/build/intermediates/library_jni/debug/copyDebugJniLibsProjectOnly/jni/armeabi-v7a/libfaceantispoof.so +0 -0
  507. package/android/build/intermediates/library_jni/debug/copyDebugJniLibsProjectOnly/jni/armeabi-v7a/libfastyuv.so +0 -0
  508. package/android/build/intermediates/library_jni/debug/copyDebugJniLibsProjectOnly/jni/armeabi-v7a/libyuv.so +0 -0
  509. package/android/build/intermediates/library_jni/debug/copyDebugJniLibsProjectOnly/jni/x86/libfaceantispoof.so +0 -0
  510. package/android/build/intermediates/library_jni/debug/copyDebugJniLibsProjectOnly/jni/x86/libfastyuv.so +0 -0
  511. package/android/build/intermediates/library_jni/debug/copyDebugJniLibsProjectOnly/jni/x86/libyuv.so +0 -0
  512. package/android/build/intermediates/library_jni/debug/copyDebugJniLibsProjectOnly/jni/x86_64/libfaceantispoof.so +0 -0
  513. package/android/build/intermediates/library_jni/debug/copyDebugJniLibsProjectOnly/jni/x86_64/libfastyuv.so +0 -0
  514. package/android/build/intermediates/library_jni/debug/copyDebugJniLibsProjectOnly/jni/x86_64/libyuv.so +0 -0
  515. package/android/build/intermediates/local_only_symbol_list/debug/parseDebugLocalResources/R-def.txt +3 -0
  516. package/android/build/intermediates/manifest_merge_blame_file/debug/processDebugManifest/manifest-merger-blame-debug-report.txt +17 -0
  517. package/android/build/intermediates/merged_manifest/debug/processDebugManifest/AndroidManifest.xml +13 -0
  518. package/android/build/intermediates/merged_native_libs/debug/mergeDebugNativeLibs/out/lib/arm64-v8a/libfaceantispoof.so +0 -0
  519. package/android/build/intermediates/merged_native_libs/debug/mergeDebugNativeLibs/out/lib/arm64-v8a/libfastyuv.so +0 -0
  520. package/android/build/intermediates/merged_native_libs/debug/mergeDebugNativeLibs/out/lib/arm64-v8a/libyuv.so +0 -0
  521. package/android/build/intermediates/merged_native_libs/debug/mergeDebugNativeLibs/out/lib/armeabi-v7a/libfaceantispoof.so +0 -0
  522. package/android/build/intermediates/merged_native_libs/debug/mergeDebugNativeLibs/out/lib/armeabi-v7a/libfastyuv.so +0 -0
  523. package/android/build/intermediates/merged_native_libs/debug/mergeDebugNativeLibs/out/lib/armeabi-v7a/libyuv.so +0 -0
  524. package/android/build/intermediates/merged_native_libs/debug/mergeDebugNativeLibs/out/lib/x86/libfaceantispoof.so +0 -0
  525. package/android/build/intermediates/merged_native_libs/debug/mergeDebugNativeLibs/out/lib/x86/libfastyuv.so +0 -0
  526. package/android/build/intermediates/merged_native_libs/debug/mergeDebugNativeLibs/out/lib/x86/libyuv.so +0 -0
  527. package/android/build/intermediates/merged_native_libs/debug/mergeDebugNativeLibs/out/lib/x86_64/libfaceantispoof.so +0 -0
  528. package/android/build/intermediates/merged_native_libs/debug/mergeDebugNativeLibs/out/lib/x86_64/libfastyuv.so +0 -0
  529. package/android/build/intermediates/merged_native_libs/debug/mergeDebugNativeLibs/out/lib/x86_64/libyuv.so +0 -0
  530. package/android/build/intermediates/navigation_json/debug/extractDeepLinksDebug/navigation.json +1 -0
  531. package/android/build/intermediates/nested_resources_validation_report/debug/generateDebugResources/nestedResourcesValidationReport.txt +1 -0
  532. package/android/build/intermediates/packaged_res/debug/packageDebugResources/values/values.xml +4 -0
  533. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/META-INF/react-native-vision-camera-face-antispoof-detector_debug.kotlin_module +0 -0
  534. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/faceantispoof/AcceleratorConfig.class +0 -0
  535. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/faceantispoof/AntiSpoofingResult.class +0 -0
  536. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/faceantispoof/BuildConfig.class +0 -0
  537. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/faceantispoof/FaceAntiSpoofFrameProcessor.class +0 -0
  538. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/faceantispoof/FaceAntiSpoofModule$Companion.class +0 -0
  539. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/faceantispoof/FaceAntiSpoofModule.class +0 -0
  540. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/faceantispoof/FaceAntiSpoofPackage.class +0 -0
  541. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/faceantispoof/FaceAntiSpoofingAdvanced$Companion.class +0 -0
  542. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/faceantispoof/FaceAntiSpoofingAdvanced.class +0 -0
  543. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/faceantispoof/FastYuv.class +0 -0
  544. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/faceantispoof/YuvToFloatArrayConverter.class +0 -0
  545. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/faceantispoof/YuvToRgbConverter.class +0 -0
  546. package/android/build/intermediates/runtime_library_classes_jar/debug/bundleLibRuntimeToJarDebug/classes.jar +0 -0
  547. package/android/build/intermediates/symbol_list_with_package_name/debug/generateDebugRFile/package-aware-r.txt +2 -0
  548. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab +0 -0
  549. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.keystream +0 -0
  550. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.keystream.len +0 -0
  551. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.len +0 -0
  552. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.values.at +0 -0
  553. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab_i +0 -0
  554. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab_i.len +0 -0
  555. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab +0 -0
  556. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.keystream +0 -0
  557. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.keystream.len +0 -0
  558. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.len +0 -0
  559. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.values.at +0 -0
  560. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab_i +0 -0
  561. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab_i.len +0 -0
  562. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab +0 -0
  563. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.keystream +0 -0
  564. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.keystream.len +0 -0
  565. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.len +0 -0
  566. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.values.at +0 -0
  567. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab_i +0 -0
  568. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab_i.len +0 -0
  569. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab +0 -0
  570. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab.keystream +0 -0
  571. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab.keystream.len +0 -0
  572. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab.len +0 -0
  573. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab.values.at +0 -0
  574. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab_i +0 -0
  575. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab_i.len +0 -0
  576. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab +0 -0
  577. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.keystream +0 -0
  578. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.keystream.len +0 -0
  579. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.len +0 -0
  580. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.values.at +0 -0
  581. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab_i +0 -0
  582. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab_i.len +0 -0
  583. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab +0 -0
  584. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.keystream +0 -0
  585. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.keystream.len +0 -0
  586. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.len +0 -0
  587. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.values.at +0 -0
  588. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab_i +0 -0
  589. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab_i.len +0 -0
  590. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab +0 -0
  591. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.keystream +0 -0
  592. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.keystream.len +0 -0
  593. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.len +0 -0
  594. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.values.at +0 -0
  595. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab_i +0 -0
  596. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab_i.len +0 -0
  597. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab +0 -0
  598. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.keystream +0 -0
  599. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.keystream.len +0 -0
  600. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.len +0 -0
  601. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.values.at +0 -0
  602. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab_i +0 -0
  603. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab_i.len +0 -0
  604. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab +0 -0
  605. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.keystream +0 -0
  606. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.keystream.len +0 -0
  607. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.len +0 -0
  608. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.values.at +0 -0
  609. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab_i +0 -0
  610. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab_i.len +0 -0
  611. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/counters.tab +2 -0
  612. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab +0 -0
  613. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.keystream +0 -0
  614. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.keystream.len +0 -0
  615. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.len +0 -0
  616. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.values.at +0 -0
  617. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab_i +0 -0
  618. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab_i.len +0 -0
  619. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab +0 -0
  620. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.keystream +0 -0
  621. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.keystream.len +0 -0
  622. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.len +0 -0
  623. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.values.at +0 -0
  624. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab_i +0 -0
  625. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab_i.len +0 -0
  626. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab +0 -0
  627. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.keystream +0 -0
  628. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.keystream.len +0 -0
  629. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.len +0 -0
  630. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.values.at +0 -0
  631. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab_i +0 -0
  632. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab_i.len +0 -0
  633. package/android/build/kotlin/compileDebugKotlin/cacheable/last-build.bin +0 -0
  634. package/android/build/kotlin/compileDebugKotlin/classpath-snapshot/shrunk-classpath-snapshot.bin +0 -0
  635. package/android/build/kotlin/compileDebugKotlin/local-state/build-history.bin +0 -0
  636. package/android/build/outputs/logs/manifest-merger-debug-report.txt +25 -0
  637. package/android/build/tmp/compileDebugJavaWithJavac/previous-compilation-data.bin +0 -0
  638. package/android/build/tmp/kotlin-classes/debug/META-INF/react-native-vision-camera-face-antispoof-detector_debug.kotlin_module +0 -0
  639. package/android/build/tmp/kotlin-classes/debug/com/faceantispoof/AcceleratorConfig.class +0 -0
  640. package/android/build/tmp/kotlin-classes/debug/com/faceantispoof/AntiSpoofingResult.class +0 -0
  641. package/android/build/tmp/kotlin-classes/debug/com/faceantispoof/FaceAntiSpoofFrameProcessor.class +0 -0
  642. package/android/build/tmp/kotlin-classes/debug/com/faceantispoof/FaceAntiSpoofModule$Companion.class +0 -0
  643. package/android/build/tmp/kotlin-classes/debug/com/faceantispoof/FaceAntiSpoofModule.class +0 -0
  644. package/android/build/tmp/kotlin-classes/debug/com/faceantispoof/FaceAntiSpoofPackage.class +0 -0
  645. package/android/build/tmp/kotlin-classes/debug/com/faceantispoof/FaceAntiSpoofingAdvanced$Companion.class +0 -0
  646. package/android/build/tmp/kotlin-classes/debug/com/faceantispoof/FaceAntiSpoofingAdvanced.class +0 -0
  647. package/android/build/tmp/kotlin-classes/debug/com/faceantispoof/FastYuv.class +0 -0
  648. package/android/build/tmp/kotlin-classes/debug/com/faceantispoof/YuvToFloatArrayConverter.class +0 -0
  649. package/android/build/tmp/kotlin-classes/debug/com/faceantispoof/YuvToRgbConverter.class +0 -0
  650. package/android/build.gradle +128 -0
  651. package/android/src/main/AndroidManifest.xml +9 -0
  652. package/android/src/main/assets/FaceAntiSpoofing.tflite +0 -0
  653. package/android/src/main/assets/spoof_model_scale_2_7.tflite +0 -0
  654. package/android/src/main/assets/spoof_model_scale_4_0.tflite +0 -0
  655. package/android/src/main/cpp/CMakeLists.txt +94 -0
  656. package/android/src/main/cpp/FaceAntiSpoofJSI.cpp +68 -0
  657. package/android/src/main/cpp/FastYuvJni.cpp +111 -0
  658. package/android/src/main/cpp/fast_yuv.cpp +332 -0
  659. package/android/src/main/cpp/fast_yuv.h +23 -0
  660. package/android/src/main/cpp/libyuv/.clang-format +6 -0
  661. package/android/src/main/cpp/libyuv/.gn +40 -0
  662. package/android/src/main/cpp/libyuv/.vpython3 +410 -0
  663. package/android/src/main/cpp/libyuv/AUTHORS +7 -0
  664. package/android/src/main/cpp/libyuv/Android.bp +202 -0
  665. package/android/src/main/cpp/libyuv/Android.mk +106 -0
  666. package/android/src/main/cpp/libyuv/BUILD.gn +490 -0
  667. package/android/src/main/cpp/libyuv/CM_linux_packages.cmake +70 -0
  668. package/android/src/main/cpp/libyuv/CMakeLists.txt +252 -0
  669. package/android/src/main/cpp/libyuv/DEPS +935 -0
  670. package/android/src/main/cpp/libyuv/DIR_METADATA +3 -0
  671. package/android/src/main/cpp/libyuv/LICENSE +29 -0
  672. package/android/src/main/cpp/libyuv/OWNERS +11 -0
  673. package/android/src/main/cpp/libyuv/PATENTS +24 -0
  674. package/android/src/main/cpp/libyuv/PRESUBMIT.py +65 -0
  675. package/android/src/main/cpp/libyuv/README.chromium +11 -0
  676. package/android/src/main/cpp/libyuv/README.md +19 -0
  677. package/android/src/main/cpp/libyuv/build_overrides/build.gni +60 -0
  678. package/android/src/main/cpp/libyuv/build_overrides/gtest.gni +19 -0
  679. package/android/src/main/cpp/libyuv/build_overrides/partition_alloc.gni +17 -0
  680. package/android/src/main/cpp/libyuv/codereview.settings +5 -0
  681. package/android/src/main/cpp/libyuv/docs/deprecated_builds.md +409 -0
  682. package/android/src/main/cpp/libyuv/docs/environment_variables.md +64 -0
  683. package/android/src/main/cpp/libyuv/docs/feature_detection.md +108 -0
  684. package/android/src/main/cpp/libyuv/docs/filtering.md +196 -0
  685. package/android/src/main/cpp/libyuv/docs/formats.md +208 -0
  686. package/android/src/main/cpp/libyuv/docs/getting_started.md +296 -0
  687. package/android/src/main/cpp/libyuv/docs/rotation.md +107 -0
  688. package/android/src/main/cpp/libyuv/download_vs_toolchain.py +29 -0
  689. package/android/src/main/cpp/libyuv/include/libyuv/basic_types.h +68 -0
  690. package/android/src/main/cpp/libyuv/include/libyuv/compare.h +111 -0
  691. package/android/src/main/cpp/libyuv/include/libyuv/compare_row.h +112 -0
  692. package/android/src/main/cpp/libyuv/include/libyuv/convert.h +1117 -0
  693. package/android/src/main/cpp/libyuv/include/libyuv/convert_argb.h +2335 -0
  694. package/android/src/main/cpp/libyuv/include/libyuv/convert_from.h +203 -0
  695. package/android/src/main/cpp/libyuv/include/libyuv/convert_from_argb.h +394 -0
  696. package/android/src/main/cpp/libyuv/include/libyuv/cpu_id.h +147 -0
  697. package/android/src/main/cpp/libyuv/include/libyuv/cpu_support.h +99 -0
  698. package/android/src/main/cpp/libyuv/include/libyuv/loongson_intrinsics.h +1949 -0
  699. package/android/src/main/cpp/libyuv/include/libyuv/mjpeg_decoder.h +195 -0
  700. package/android/src/main/cpp/libyuv/include/libyuv/planar_functions.h +1131 -0
  701. package/android/src/main/cpp/libyuv/include/libyuv/rotate.h +296 -0
  702. package/android/src/main/cpp/libyuv/include/libyuv/rotate_argb.h +37 -0
  703. package/android/src/main/cpp/libyuv/include/libyuv/rotate_row.h +265 -0
  704. package/android/src/main/cpp/libyuv/include/libyuv/row.h +6738 -0
  705. package/android/src/main/cpp/libyuv/include/libyuv/row_sve.h +2154 -0
  706. package/android/src/main/cpp/libyuv/include/libyuv/scale.h +336 -0
  707. package/android/src/main/cpp/libyuv/include/libyuv/scale_argb.h +76 -0
  708. package/android/src/main/cpp/libyuv/include/libyuv/scale_rgb.h +42 -0
  709. package/android/src/main/cpp/libyuv/include/libyuv/scale_row.h +1726 -0
  710. package/android/src/main/cpp/libyuv/include/libyuv/scale_uv.h +51 -0
  711. package/android/src/main/cpp/libyuv/include/libyuv/version.h +16 -0
  712. package/android/src/main/cpp/libyuv/include/libyuv/video_common.h +222 -0
  713. package/android/src/main/cpp/libyuv/include/libyuv.h +33 -0
  714. package/android/src/main/cpp/libyuv/infra/config/OWNERS +3 -0
  715. package/android/src/main/cpp/libyuv/infra/config/PRESUBMIT.py +17 -0
  716. package/android/src/main/cpp/libyuv/infra/config/README.md +2 -0
  717. package/android/src/main/cpp/libyuv/infra/config/codereview.settings +6 -0
  718. package/android/src/main/cpp/libyuv/infra/config/commit-queue.cfg +144 -0
  719. package/android/src/main/cpp/libyuv/infra/config/cr-buildbucket.cfg +1185 -0
  720. package/android/src/main/cpp/libyuv/infra/config/luci-logdog.cfg +9 -0
  721. package/android/src/main/cpp/libyuv/infra/config/luci-milo.cfg +246 -0
  722. package/android/src/main/cpp/libyuv/infra/config/luci-scheduler.cfg +385 -0
  723. package/android/src/main/cpp/libyuv/infra/config/main.star +402 -0
  724. package/android/src/main/cpp/libyuv/infra/config/project.cfg +16 -0
  725. package/android/src/main/cpp/libyuv/infra/config/realms.cfg +111 -0
  726. package/android/src/main/cpp/libyuv/libyuv.gni +34 -0
  727. package/android/src/main/cpp/libyuv/libyuv.gyp +149 -0
  728. package/android/src/main/cpp/libyuv/libyuv.gypi +87 -0
  729. package/android/src/main/cpp/libyuv/linux.mk +96 -0
  730. package/android/src/main/cpp/libyuv/public.mk +13 -0
  731. package/android/src/main/cpp/libyuv/pylintrc +49 -0
  732. package/android/src/main/cpp/libyuv/riscv_script/prepare_toolchain_qemu.sh +74 -0
  733. package/android/src/main/cpp/libyuv/riscv_script/riscv-clang.cmake +56 -0
  734. package/android/src/main/cpp/libyuv/riscv_script/run_qemu.sh +15 -0
  735. package/android/src/main/cpp/libyuv/source/compare.cc +435 -0
  736. package/android/src/main/cpp/libyuv/source/compare_common.cc +74 -0
  737. package/android/src/main/cpp/libyuv/source/compare_gcc.cc +362 -0
  738. package/android/src/main/cpp/libyuv/source/compare_neon.cc +96 -0
  739. package/android/src/main/cpp/libyuv/source/compare_neon64.cc +223 -0
  740. package/android/src/main/cpp/libyuv/source/compare_win.cc +241 -0
  741. package/android/src/main/cpp/libyuv/source/convert.cc +4746 -0
  742. package/android/src/main/cpp/libyuv/source/convert_argb.cc +9179 -0
  743. package/android/src/main/cpp/libyuv/source/convert_from.cc +866 -0
  744. package/android/src/main/cpp/libyuv/source/convert_from_argb.cc +3671 -0
  745. package/android/src/main/cpp/libyuv/source/convert_jpeg.cc +602 -0
  746. package/android/src/main/cpp/libyuv/source/convert_to_argb.cc +391 -0
  747. package/android/src/main/cpp/libyuv/source/convert_to_i420.cc +288 -0
  748. package/android/src/main/cpp/libyuv/source/cpu_id.cc +496 -0
  749. package/android/src/main/cpp/libyuv/source/mjpeg_decoder.cc +580 -0
  750. package/android/src/main/cpp/libyuv/source/mjpeg_validate.cc +71 -0
  751. package/android/src/main/cpp/libyuv/source/planar_functions.cc +5663 -0
  752. package/android/src/main/cpp/libyuv/source/rotate.cc +1241 -0
  753. package/android/src/main/cpp/libyuv/source/rotate_any.cc +76 -0
  754. package/android/src/main/cpp/libyuv/source/rotate_argb.cc +259 -0
  755. package/android/src/main/cpp/libyuv/source/rotate_common.cc +208 -0
  756. package/android/src/main/cpp/libyuv/source/rotate_gcc.cc +505 -0
  757. package/android/src/main/cpp/libyuv/source/rotate_lsx.cc +233 -0
  758. package/android/src/main/cpp/libyuv/source/rotate_neon.cc +219 -0
  759. package/android/src/main/cpp/libyuv/source/rotate_neon64.cc +273 -0
  760. package/android/src/main/cpp/libyuv/source/rotate_sme.cc +174 -0
  761. package/android/src/main/cpp/libyuv/source/rotate_win.cc +253 -0
  762. package/android/src/main/cpp/libyuv/source/row_any.cc +2519 -0
  763. package/android/src/main/cpp/libyuv/source/row_common.cc +4461 -0
  764. package/android/src/main/cpp/libyuv/source/row_gcc.cc +9570 -0
  765. package/android/src/main/cpp/libyuv/source/row_lasx.cc +2343 -0
  766. package/android/src/main/cpp/libyuv/source/row_lsx.cc +3030 -0
  767. package/android/src/main/cpp/libyuv/source/row_neon.cc +4026 -0
  768. package/android/src/main/cpp/libyuv/source/row_neon64.cc +5617 -0
  769. package/android/src/main/cpp/libyuv/source/row_rvv.cc +2599 -0
  770. package/android/src/main/cpp/libyuv/source/row_sme.cc +1183 -0
  771. package/android/src/main/cpp/libyuv/source/row_sve.cc +1088 -0
  772. package/android/src/main/cpp/libyuv/source/row_win.cc +6453 -0
  773. package/android/src/main/cpp/libyuv/source/scale.cc +2710 -0
  774. package/android/src/main/cpp/libyuv/source/scale_any.cc +991 -0
  775. package/android/src/main/cpp/libyuv/source/scale_argb.cc +1158 -0
  776. package/android/src/main/cpp/libyuv/source/scale_common.cc +1977 -0
  777. package/android/src/main/cpp/libyuv/source/scale_gcc.cc +2947 -0
  778. package/android/src/main/cpp/libyuv/source/scale_lsx.cc +739 -0
  779. package/android/src/main/cpp/libyuv/source/scale_neon.cc +1449 -0
  780. package/android/src/main/cpp/libyuv/source/scale_neon64.cc +1552 -0
  781. package/android/src/main/cpp/libyuv/source/scale_rgb.cc +82 -0
  782. package/android/src/main/cpp/libyuv/source/scale_rvv.cc +1971 -0
  783. package/android/src/main/cpp/libyuv/source/scale_sme.cc +555 -0
  784. package/android/src/main/cpp/libyuv/source/scale_uv.cc +1159 -0
  785. package/android/src/main/cpp/libyuv/source/scale_win.cc +1392 -0
  786. package/android/src/main/cpp/libyuv/source/test.sh +35 -0
  787. package/android/src/main/cpp/libyuv/source/video_common.cc +62 -0
  788. package/android/src/main/cpp/libyuv/tools_libyuv/OWNERS +4 -0
  789. package/android/src/main/cpp/libyuv/tools_libyuv/autoroller/roll_deps.py +931 -0
  790. package/android/src/main/cpp/libyuv/tools_libyuv/autoroller/unittests/roll_deps_test.py +164 -0
  791. package/android/src/main/cpp/libyuv/tools_libyuv/autoroller/unittests/testdata/DEPS +21 -0
  792. package/android/src/main/cpp/libyuv/tools_libyuv/autoroller/unittests/testdata/DEPS.chromium.new +13 -0
  793. package/android/src/main/cpp/libyuv/tools_libyuv/autoroller/unittests/testdata/DEPS.chromium.old +13 -0
  794. package/android/src/main/cpp/libyuv/tools_libyuv/get_landmines.py +38 -0
  795. package/android/src/main/cpp/libyuv/tools_libyuv/msan/OWNERS +3 -0
  796. package/android/src/main/cpp/libyuv/tools_libyuv/msan/blacklist.txt +9 -0
  797. package/android/src/main/cpp/libyuv/tools_libyuv/ubsan/OWNERS +3 -0
  798. package/android/src/main/cpp/libyuv/tools_libyuv/ubsan/blacklist.txt +15 -0
  799. package/android/src/main/cpp/libyuv/tools_libyuv/ubsan/vptr_blacklist.txt +25 -0
  800. package/android/src/main/cpp/libyuv/unit_test/basictypes_test.cc +43 -0
  801. package/android/src/main/cpp/libyuv/unit_test/color_test.cc +848 -0
  802. package/android/src/main/cpp/libyuv/unit_test/compare_test.cc +739 -0
  803. package/android/src/main/cpp/libyuv/unit_test/convert_argb_test.cc +2867 -0
  804. package/android/src/main/cpp/libyuv/unit_test/convert_test.cc +2133 -0
  805. package/android/src/main/cpp/libyuv/unit_test/cpu_test.cc +427 -0
  806. package/android/src/main/cpp/libyuv/unit_test/cpu_thread_test.cc +63 -0
  807. package/android/src/main/cpp/libyuv/unit_test/math_test.cc +160 -0
  808. package/android/src/main/cpp/libyuv/unit_test/planar_test.cc +4731 -0
  809. package/android/src/main/cpp/libyuv/unit_test/rotate_argb_test.cc +334 -0
  810. package/android/src/main/cpp/libyuv/unit_test/rotate_test.cc +962 -0
  811. package/android/src/main/cpp/libyuv/unit_test/scale_argb_test.cc +590 -0
  812. package/android/src/main/cpp/libyuv/unit_test/scale_plane_test.cc +465 -0
  813. package/android/src/main/cpp/libyuv/unit_test/scale_rgb_test.cc +280 -0
  814. package/android/src/main/cpp/libyuv/unit_test/scale_test.cc +1135 -0
  815. package/android/src/main/cpp/libyuv/unit_test/scale_uv_test.cc +249 -0
  816. package/android/src/main/cpp/libyuv/unit_test/testdata/arm_v7.txt +12 -0
  817. package/android/src/main/cpp/libyuv/unit_test/testdata/mips.txt +7 -0
  818. package/android/src/main/cpp/libyuv/unit_test/testdata/mips_loongson2k.txt +5 -0
  819. package/android/src/main/cpp/libyuv/unit_test/testdata/mips_loongson3.txt +10 -0
  820. package/android/src/main/cpp/libyuv/unit_test/testdata/mips_loongson_mmi.txt +7 -0
  821. package/android/src/main/cpp/libyuv/unit_test/testdata/riscv64.txt +4 -0
  822. package/android/src/main/cpp/libyuv/unit_test/testdata/riscv64_rvv.txt +4 -0
  823. package/android/src/main/cpp/libyuv/unit_test/testdata/riscv64_rvv_zvfh.txt +4 -0
  824. package/android/src/main/cpp/libyuv/unit_test/testdata/tegra3.txt +23 -0
  825. package/android/src/main/cpp/libyuv/unit_test/testdata/test0.jpg +0 -0
  826. package/android/src/main/cpp/libyuv/unit_test/testdata/test1.jpg +0 -0
  827. package/android/src/main/cpp/libyuv/unit_test/testdata/test2.jpg +0 -0
  828. package/android/src/main/cpp/libyuv/unit_test/testdata/test3.jpg +0 -0
  829. package/android/src/main/cpp/libyuv/unit_test/testdata/test4.jpg +0 -0
  830. package/android/src/main/cpp/libyuv/unit_test/unit_test.cc +581 -0
  831. package/android/src/main/cpp/libyuv/unit_test/unit_test.h +232 -0
  832. package/android/src/main/cpp/libyuv/unit_test/video_common_test.cc +112 -0
  833. package/android/src/main/cpp/libyuv/util/Makefile +9 -0
  834. package/android/src/main/cpp/libyuv/util/color.cc +120 -0
  835. package/android/src/main/cpp/libyuv/util/compare.cc +67 -0
  836. package/android/src/main/cpp/libyuv/util/cpuid.c +211 -0
  837. package/android/src/main/cpp/libyuv/util/i444tonv12_eg.cc +28 -0
  838. package/android/src/main/cpp/libyuv/util/psnr.cc +291 -0
  839. package/android/src/main/cpp/libyuv/util/psnr.h +47 -0
  840. package/android/src/main/cpp/libyuv/util/psnr_main.cc +620 -0
  841. package/android/src/main/cpp/libyuv/util/ssim.cc +364 -0
  842. package/android/src/main/cpp/libyuv/util/ssim.h +38 -0
  843. package/android/src/main/cpp/libyuv/util/yuvconstants.c +114 -0
  844. package/android/src/main/cpp/libyuv/util/yuvconvert.cc +367 -0
  845. package/android/src/main/cpp/libyuv/winarm.mk +47 -0
  846. package/android/src/main/java/com/faceantispoof/AcceleratorConfig.kt +49 -0
  847. package/android/src/main/java/com/faceantispoof/FaceAntiSpoofFrameProcessor.kt +145 -0
  848. package/android/src/main/java/com/faceantispoof/FaceAntiSpoofModule.kt +170 -0
  849. package/android/src/main/java/com/faceantispoof/FaceAntiSpoofPackage.kt +38 -0
  850. package/android/src/main/java/com/faceantispoof/FaceAntiSpoofingAdvanced.kt +288 -0
  851. package/android/src/main/java/com/faceantispoof/FastYuv.kt +51 -0
  852. package/android/src/main/java/com/faceantispoof/YuvToFloatArrayConverter.kt +198 -0
  853. package/android/src/main/java/com/faceantispoof/YuvToRgbConverter.kt +73 -0
  854. package/android/src/main/res/values/strings.xml +3 -0
  855. package/index.d.ts +84 -0
  856. package/index.js +47 -0
  857. package/package.json +73 -0
@@ -0,0 +1,2519 @@
1
+ /*
2
+ * Copyright 2012 The LibYuv Project Authors. All rights reserved.
3
+ *
4
+ * Use of this source code is governed by a BSD-style license
5
+ * that can be found in the LICENSE file in the root of the source
6
+ * tree. An additional intellectual property rights grant can be found
7
+ * in the file PATENTS. All contributing project authors may
8
+ * be found in the AUTHORS file in the root of the source tree.
9
+ */
10
+
11
+ #include "libyuv/row.h"
12
+
13
+ #include <stddef.h>
14
+ #include <string.h> // For memset.
15
+
16
+ #include "libyuv/basic_types.h"
17
+
18
+ #ifdef __cplusplus
19
+ namespace libyuv {
20
+ extern "C" {
21
+ #endif
22
+
23
+ // memset for vin is meant to clear the source buffer so that
24
+ // SIMD that reads full multiple of 16 bytes will not trigger msan errors.
25
+ // memset is not needed for production, as the garbage values are processed but
26
+ // not used, although there may be edge cases for subsampling.
27
+ // The size of the buffer is based on the largest read, which can be inferred
28
+ // by the source type (e.g. ARGB) and the mask (last parameter), or by examining
29
+ // the source code for how much the source pointers are advanced.
30
+
31
+ // Subsampled source needs to be increase by 1 of not even.
32
+ #define SS(width, shift) (((width) + (1 << (shift)) - 1) >> (shift))
33
+
34
+ // Any 4 planes to 1
35
+ #define ANY41(NAMEANY, ANY_SIMD, UVSHIFT, DUVSHIFT, BPP, MASK) \
36
+ void NAMEANY(const uint8_t* y_buf, const uint8_t* u_buf, \
37
+ const uint8_t* v_buf, const uint8_t* a_buf, uint8_t* dst_ptr, \
38
+ int width) { \
39
+ SIMD_ALIGNED(uint8_t vin[64 * 4]); \
40
+ SIMD_ALIGNED(uint8_t vout[64]); \
41
+ memset(vin, 0, sizeof(vin)); /* for msan */ \
42
+ int r = width & MASK; \
43
+ int n = width & ~MASK; \
44
+ if (n > 0) { \
45
+ ANY_SIMD(y_buf, u_buf, v_buf, a_buf, dst_ptr, n); \
46
+ } \
47
+ ptrdiff_t np = n; \
48
+ memcpy(vin, y_buf + np, r); \
49
+ memcpy(vin + 64, u_buf + (np >> UVSHIFT), SS(r, UVSHIFT)); \
50
+ memcpy(vin + 128, v_buf + (np >> UVSHIFT), SS(r, UVSHIFT)); \
51
+ memcpy(vin + 192, a_buf + np, r); \
52
+ ANY_SIMD(vin, vin + 64, vin + 128, vin + 192, vout, MASK + 1); \
53
+ memcpy(dst_ptr + (np >> DUVSHIFT) * BPP, vout, SS(r, DUVSHIFT) * BPP); \
54
+ }
55
+
56
+ #ifdef HAS_MERGEARGBROW_SSE2
57
+ ANY41(MergeARGBRow_Any_SSE2, MergeARGBRow_SSE2, 0, 0, 4, 7)
58
+ #endif
59
+ #ifdef HAS_MERGEARGBROW_AVX2
60
+ ANY41(MergeARGBRow_Any_AVX2, MergeARGBRow_AVX2, 0, 0, 4, 15)
61
+ #endif
62
+ #ifdef HAS_MERGEARGBROW_NEON
63
+ ANY41(MergeARGBRow_Any_NEON, MergeARGBRow_NEON, 0, 0, 4, 15)
64
+ #endif
65
+
66
+ // Note that odd width replication includes 444 due to implementation
67
+ // on arm that subsamples 444 to 422 internally.
68
+ // Any 4 planes to 1 with yuvconstants
69
+ #define ANY41C(NAMEANY, ANY_SIMD, UVSHIFT, DUVSHIFT, BPP, MASK) \
70
+ void NAMEANY(const uint8_t* y_buf, const uint8_t* u_buf, \
71
+ const uint8_t* v_buf, const uint8_t* a_buf, uint8_t* dst_ptr, \
72
+ const struct YuvConstants* yuvconstants, int width) { \
73
+ SIMD_ALIGNED(uint8_t vin[64 * 4]); \
74
+ SIMD_ALIGNED(uint8_t vout[64]); \
75
+ memset(vin, 0, sizeof(vin)); /* for msan */ \
76
+ int r = width & MASK; \
77
+ int n = width & ~MASK; \
78
+ if (n > 0) { \
79
+ ANY_SIMD(y_buf, u_buf, v_buf, a_buf, dst_ptr, yuvconstants, n); \
80
+ } \
81
+ ptrdiff_t np = n; \
82
+ memcpy(vin, y_buf + np, r); \
83
+ memcpy(vin + 64, u_buf + (np >> UVSHIFT), SS(r, UVSHIFT)); \
84
+ memcpy(vin + 128, v_buf + (np >> UVSHIFT), SS(r, UVSHIFT)); \
85
+ memcpy(vin + 192, a_buf + np, r); \
86
+ if (width & 1) { \
87
+ vin[64 + SS(r, UVSHIFT)] = vin[64 + SS(r, UVSHIFT) - 1]; \
88
+ vin[128 + SS(r, UVSHIFT)] = vin[128 + SS(r, UVSHIFT) - 1]; \
89
+ } \
90
+ ANY_SIMD(vin, vin + 64, vin + 128, vin + 192, vout, yuvconstants, \
91
+ MASK + 1); \
92
+ memcpy(dst_ptr + (np >> DUVSHIFT) * BPP, vout, SS(r, DUVSHIFT) * BPP); \
93
+ }
94
+
95
+ #ifdef HAS_I444ALPHATOARGBROW_SSSE3
96
+ ANY41C(I444AlphaToARGBRow_Any_SSSE3, I444AlphaToARGBRow_SSSE3, 0, 0, 4, 7)
97
+ #endif
98
+ #ifdef HAS_I444ALPHATOARGBROW_AVX2
99
+ ANY41C(I444AlphaToARGBRow_Any_AVX2, I444AlphaToARGBRow_AVX2, 0, 0, 4, 15)
100
+ #endif
101
+ #ifdef HAS_I422ALPHATOARGBROW_SSSE3
102
+ ANY41C(I422AlphaToARGBRow_Any_SSSE3, I422AlphaToARGBRow_SSSE3, 1, 0, 4, 7)
103
+ #endif
104
+ #ifdef HAS_I422ALPHATOARGBROW_AVX2
105
+ ANY41C(I422AlphaToARGBRow_Any_AVX2, I422AlphaToARGBRow_AVX2, 1, 0, 4, 15)
106
+ #endif
107
+ #ifdef HAS_I444ALPHATOARGBROW_NEON
108
+ ANY41C(I444AlphaToARGBRow_Any_NEON, I444AlphaToARGBRow_NEON, 0, 0, 4, 7)
109
+ #endif
110
+ #ifdef HAS_I422ALPHATOARGBROW_NEON
111
+ ANY41C(I422AlphaToARGBRow_Any_NEON, I422AlphaToARGBRow_NEON, 1, 0, 4, 7)
112
+ #endif
113
+ #ifdef HAS_I422ALPHATOARGBROW_LSX
114
+ ANY41C(I422AlphaToARGBRow_Any_LSX, I422AlphaToARGBRow_LSX, 1, 0, 4, 15)
115
+ #endif
116
+ #ifdef HAS_I422ALPHATOARGBROW_LASX
117
+ ANY41C(I422AlphaToARGBRow_Any_LASX, I422AlphaToARGBRow_LASX, 1, 0, 4, 15)
118
+ #endif
119
+ #undef ANY41C
120
+
121
+ // Any 4 planes to 1 plane of 8 bit with yuvconstants
122
+ #define ANY41CT(NAMEANY, ANY_SIMD, UVSHIFT, DUVSHIFT, T, SBPP, BPP, MASK) \
123
+ void NAMEANY(const T* y_buf, const T* u_buf, const T* v_buf, const T* a_buf, \
124
+ uint8_t* dst_ptr, const struct YuvConstants* yuvconstants, \
125
+ int width) { \
126
+ SIMD_ALIGNED(T vin[16 * 4]); \
127
+ SIMD_ALIGNED(uint8_t vout[64]); \
128
+ memset(vin, 0, sizeof(vin)); /* for YUY2 and msan */ \
129
+ int r = width & MASK; \
130
+ int n = width & ~MASK; \
131
+ if (n > 0) { \
132
+ ANY_SIMD(y_buf, u_buf, v_buf, a_buf, dst_ptr, yuvconstants, n); \
133
+ } \
134
+ ptrdiff_t np = n; \
135
+ memcpy(vin, y_buf + np, r * SBPP); \
136
+ memcpy(vin + 16, u_buf + (np >> UVSHIFT), SS(r, UVSHIFT) * SBPP); \
137
+ memcpy(vin + 32, v_buf + (np >> UVSHIFT), SS(r, UVSHIFT) * SBPP); \
138
+ memcpy(vin + 48, a_buf + np, r * SBPP); \
139
+ ANY_SIMD(vin, vin + 16, vin + 32, vin + 48, vout, yuvconstants, MASK + 1); \
140
+ memcpy(dst_ptr + (np >> DUVSHIFT) * BPP, vout, SS(r, DUVSHIFT) * BPP); \
141
+ }
142
+
143
+ #ifdef HAS_I210ALPHATOARGBROW_NEON
144
+ ANY41CT(I210AlphaToARGBRow_Any_NEON,
145
+ I210AlphaToARGBRow_NEON,
146
+ 1,
147
+ 0,
148
+ uint16_t,
149
+ 2,
150
+ 4,
151
+ 7)
152
+ #endif
153
+ #ifdef HAS_I410ALPHATOARGBROW_NEON
154
+ ANY41CT(I410AlphaToARGBRow_Any_NEON,
155
+ I410AlphaToARGBRow_NEON,
156
+ 0,
157
+ 0,
158
+ uint16_t,
159
+ 2,
160
+ 4,
161
+ 7)
162
+ #endif
163
+
164
+ #ifdef HAS_I210ALPHATOARGBROW_SSSE3
165
+ ANY41CT(I210AlphaToARGBRow_Any_SSSE3,
166
+ I210AlphaToARGBRow_SSSE3,
167
+ 1,
168
+ 0,
169
+ uint16_t,
170
+ 2,
171
+ 4,
172
+ 7)
173
+ #endif
174
+
175
+ #ifdef HAS_I210ALPHATOARGBROW_AVX2
176
+ ANY41CT(I210AlphaToARGBRow_Any_AVX2,
177
+ I210AlphaToARGBRow_AVX2,
178
+ 1,
179
+ 0,
180
+ uint16_t,
181
+ 2,
182
+ 4,
183
+ 15)
184
+ #endif
185
+
186
+ #ifdef HAS_I410ALPHATOARGBROW_SSSE3
187
+ ANY41CT(I410AlphaToARGBRow_Any_SSSE3,
188
+ I410AlphaToARGBRow_SSSE3,
189
+ 0,
190
+ 0,
191
+ uint16_t,
192
+ 2,
193
+ 4,
194
+ 7)
195
+ #endif
196
+
197
+ #ifdef HAS_I410ALPHATOARGBROW_AVX2
198
+ ANY41CT(I410AlphaToARGBRow_Any_AVX2,
199
+ I410AlphaToARGBRow_AVX2,
200
+ 0,
201
+ 0,
202
+ uint16_t,
203
+ 2,
204
+ 4,
205
+ 15)
206
+ #endif
207
+
208
+ #undef ANY41CT
209
+
210
+ // Any 4 planes to 1 plane with parameter
211
+ #define ANY41PT(NAMEANY, ANY_SIMD, STYPE, SBPP, DTYPE, BPP, MASK) \
212
+ void NAMEANY(const STYPE* r_buf, const STYPE* g_buf, const STYPE* b_buf, \
213
+ const STYPE* a_buf, DTYPE* dst_ptr, int depth, int width) { \
214
+ SIMD_ALIGNED(STYPE vin[16 * 4]); \
215
+ SIMD_ALIGNED(DTYPE vout[64]); \
216
+ memset(vin, 0, sizeof(vin)); /* for msan */ \
217
+ int r = width & MASK; \
218
+ int n = width & ~MASK; \
219
+ if (n > 0) { \
220
+ ANY_SIMD(r_buf, g_buf, b_buf, a_buf, dst_ptr, depth, n); \
221
+ } \
222
+ ptrdiff_t np = n; \
223
+ memcpy(vin, r_buf + np, r * SBPP); \
224
+ memcpy(vin + 16, g_buf + np, r * SBPP); \
225
+ memcpy(vin + 32, b_buf + np, r * SBPP); \
226
+ memcpy(vin + 48, a_buf + np, r * SBPP); \
227
+ ANY_SIMD(vin, vin + 16, vin + 32, vin + 48, vout, depth, MASK + 1); \
228
+ memcpy((uint8_t*)dst_ptr + np * BPP, vout, r * BPP); \
229
+ }
230
+
231
+ #ifdef HAS_MERGEAR64ROW_AVX2
232
+ ANY41PT(MergeAR64Row_Any_AVX2, MergeAR64Row_AVX2, uint16_t, 2, uint16_t, 8, 15)
233
+ #endif
234
+
235
+ #ifdef HAS_MERGEAR64ROW_NEON
236
+ ANY41PT(MergeAR64Row_Any_NEON, MergeAR64Row_NEON, uint16_t, 2, uint16_t, 8, 7)
237
+ #endif
238
+
239
+ #ifdef HAS_MERGEARGB16TO8ROW_AVX2
240
+ ANY41PT(MergeARGB16To8Row_Any_AVX2,
241
+ MergeARGB16To8Row_AVX2,
242
+ uint16_t,
243
+ 2,
244
+ uint8_t,
245
+ 4,
246
+ 15)
247
+ #endif
248
+
249
+ #ifdef HAS_MERGEARGB16TO8ROW_NEON
250
+ ANY41PT(MergeARGB16To8Row_Any_NEON,
251
+ MergeARGB16To8Row_NEON,
252
+ uint16_t,
253
+ 2,
254
+ uint8_t,
255
+ 4,
256
+ 7)
257
+ #endif
258
+
259
+ #undef ANY41PT
260
+
261
+ // Any 3 planes to 1.
262
+ #define ANY31(NAMEANY, ANY_SIMD, UVSHIFT, DUVSHIFT, BPP, MASK) \
263
+ void NAMEANY(const uint8_t* y_buf, const uint8_t* u_buf, \
264
+ const uint8_t* v_buf, uint8_t* dst_ptr, int width) { \
265
+ SIMD_ALIGNED(uint8_t vin[64 * 3]); \
266
+ SIMD_ALIGNED(uint8_t vout[64]); \
267
+ memset(vin, 0, sizeof(vin)); /* for YUY2 and msan */ \
268
+ int r = width & MASK; \
269
+ int n = width & ~MASK; \
270
+ if (n > 0) { \
271
+ ANY_SIMD(y_buf, u_buf, v_buf, dst_ptr, n); \
272
+ } \
273
+ ptrdiff_t np = n; \
274
+ memcpy(vin, y_buf + np, r); \
275
+ memcpy(vin + 64, u_buf + (np >> UVSHIFT), SS(r, UVSHIFT)); \
276
+ memcpy(vin + 128, v_buf + (np >> UVSHIFT), SS(r, UVSHIFT)); \
277
+ ANY_SIMD(vin, vin + 64, vin + 128, vout, MASK + 1); \
278
+ memcpy(dst_ptr + (np >> DUVSHIFT) * BPP, vout, SS(r, DUVSHIFT) * BPP); \
279
+ }
280
+
281
+ // Merge functions.
282
+ #ifdef HAS_MERGERGBROW_SSSE3
283
+ ANY31(MergeRGBRow_Any_SSSE3, MergeRGBRow_SSSE3, 0, 0, 3, 15)
284
+ #endif
285
+ #ifdef HAS_MERGERGBROW_NEON
286
+ ANY31(MergeRGBRow_Any_NEON, MergeRGBRow_NEON, 0, 0, 3, 15)
287
+ #endif
288
+ #ifdef HAS_MERGEXRGBROW_SSE2
289
+ ANY31(MergeXRGBRow_Any_SSE2, MergeXRGBRow_SSE2, 0, 0, 4, 7)
290
+ #endif
291
+ #ifdef HAS_MERGEXRGBROW_AVX2
292
+ ANY31(MergeXRGBRow_Any_AVX2, MergeXRGBRow_AVX2, 0, 0, 4, 15)
293
+ #endif
294
+ #ifdef HAS_MERGEXRGBROW_NEON
295
+ ANY31(MergeXRGBRow_Any_NEON, MergeXRGBRow_NEON, 0, 0, 4, 15)
296
+ #endif
297
+ #ifdef HAS_I422TOYUY2ROW_SSE2
298
+ ANY31(I422ToYUY2Row_Any_SSE2, I422ToYUY2Row_SSE2, 1, 1, 4, 15)
299
+ ANY31(I422ToUYVYRow_Any_SSE2, I422ToUYVYRow_SSE2, 1, 1, 4, 15)
300
+ #endif
301
+ #ifdef HAS_I422TOYUY2ROW_AVX2
302
+ ANY31(I422ToYUY2Row_Any_AVX2, I422ToYUY2Row_AVX2, 1, 1, 4, 31)
303
+ ANY31(I422ToUYVYRow_Any_AVX2, I422ToUYVYRow_AVX2, 1, 1, 4, 31)
304
+ #endif
305
+ #ifdef HAS_I422TOYUY2ROW_NEON
306
+ ANY31(I422ToYUY2Row_Any_NEON, I422ToYUY2Row_NEON, 1, 1, 4, 15)
307
+ #endif
308
+ #ifdef HAS_I422TOYUY2ROW_LSX
309
+ ANY31(I422ToYUY2Row_Any_LSX, I422ToYUY2Row_LSX, 1, 1, 4, 15)
310
+ #endif
311
+ #ifdef HAS_I422TOYUY2ROW_LASX
312
+ ANY31(I422ToYUY2Row_Any_LASX, I422ToYUY2Row_LASX, 1, 1, 4, 31)
313
+ #endif
314
+ #ifdef HAS_I422TOUYVYROW_NEON
315
+ ANY31(I422ToUYVYRow_Any_NEON, I422ToUYVYRow_NEON, 1, 1, 4, 15)
316
+ #endif
317
+ #ifdef HAS_I422TOUYVYROW_LSX
318
+ ANY31(I422ToUYVYRow_Any_LSX, I422ToUYVYRow_LSX, 1, 1, 4, 15)
319
+ #endif
320
+ #ifdef HAS_I422TOUYVYROW_LASX
321
+ ANY31(I422ToUYVYRow_Any_LASX, I422ToUYVYRow_LASX, 1, 1, 4, 31)
322
+ #endif
323
+ #ifdef HAS_BLENDPLANEROW_AVX2
324
+ ANY31(BlendPlaneRow_Any_AVX2, BlendPlaneRow_AVX2, 0, 0, 1, 31)
325
+ #endif
326
+ #ifdef HAS_BLENDPLANEROW_SSSE3
327
+ ANY31(BlendPlaneRow_Any_SSSE3, BlendPlaneRow_SSSE3, 0, 0, 1, 7)
328
+ #endif
329
+ #undef ANY31
330
+
331
+ // Note that odd width replication includes 444 due to implementation
332
+ // on arm that subsamples 444 to 422 internally.
333
+ // Any 3 planes to 1 with yuvconstants
334
+ #define ANY31C(NAMEANY, ANY_SIMD, UVSHIFT, DUVSHIFT, BPP, MASK) \
335
+ void NAMEANY(const uint8_t* y_buf, const uint8_t* u_buf, \
336
+ const uint8_t* v_buf, uint8_t* dst_ptr, \
337
+ const struct YuvConstants* yuvconstants, int width) { \
338
+ SIMD_ALIGNED(uint8_t vin[128 * 3]); \
339
+ SIMD_ALIGNED(uint8_t vout[128]); \
340
+ memset(vin, 0, sizeof(vin)); /* for YUY2 and msan */ \
341
+ int r = width & MASK; \
342
+ int n = width & ~MASK; \
343
+ if (n > 0) { \
344
+ ANY_SIMD(y_buf, u_buf, v_buf, dst_ptr, yuvconstants, n); \
345
+ } \
346
+ ptrdiff_t np = n; \
347
+ memcpy(vin, y_buf + np, r); \
348
+ memcpy(vin + 128, u_buf + (np >> UVSHIFT), SS(r, UVSHIFT)); \
349
+ memcpy(vin + 256, v_buf + (np >> UVSHIFT), SS(r, UVSHIFT)); \
350
+ if (width & 1) { \
351
+ vin[128 + SS(r, UVSHIFT)] = vin[128 + SS(r, UVSHIFT) - 1]; \
352
+ vin[256 + SS(r, UVSHIFT)] = vin[256 + SS(r, UVSHIFT) - 1]; \
353
+ } \
354
+ ANY_SIMD(vin, vin + 128, vin + 256, vout, yuvconstants, MASK + 1); \
355
+ memcpy(dst_ptr + (np >> DUVSHIFT) * BPP, vout, SS(r, DUVSHIFT) * BPP); \
356
+ }
357
+
358
+ #ifdef HAS_I422TOARGBROW_SSSE3
359
+ ANY31C(I422ToARGBRow_Any_SSSE3, I422ToARGBRow_SSSE3, 1, 0, 4, 7)
360
+ #endif
361
+ #ifdef HAS_I422TORGBAROW_SSSE3
362
+ ANY31C(I422ToRGBARow_Any_SSSE3, I422ToRGBARow_SSSE3, 1, 0, 4, 7)
363
+ #endif
364
+ #ifdef HAS_I422TOARGB4444ROW_SSSE3
365
+ ANY31C(I422ToARGB4444Row_Any_SSSE3, I422ToARGB4444Row_SSSE3, 1, 0, 2, 7)
366
+ #endif
367
+ #ifdef HAS_I422TOARGB1555ROW_SSSE3
368
+ ANY31C(I422ToARGB1555Row_Any_SSSE3, I422ToARGB1555Row_SSSE3, 1, 0, 2, 7)
369
+ #endif
370
+ #ifdef HAS_I422TORGB565ROW_SSSE3
371
+ ANY31C(I422ToRGB565Row_Any_SSSE3, I422ToRGB565Row_SSSE3, 1, 0, 2, 7)
372
+ #endif
373
+ #ifdef HAS_I422TORGB24ROW_SSSE3
374
+ ANY31C(I422ToRGB24Row_Any_SSSE3, I422ToRGB24Row_SSSE3, 1, 0, 3, 15)
375
+ #endif
376
+ #ifdef HAS_I422TOAR30ROW_SSSE3
377
+ ANY31C(I422ToAR30Row_Any_SSSE3, I422ToAR30Row_SSSE3, 1, 0, 4, 7)
378
+ #endif
379
+ #ifdef HAS_I422TOAR30ROW_AVX2
380
+ ANY31C(I422ToAR30Row_Any_AVX2, I422ToAR30Row_AVX2, 1, 0, 4, 15)
381
+ #endif
382
+ #ifdef HAS_I444TOARGBROW_SSSE3
383
+ ANY31C(I444ToARGBRow_Any_SSSE3, I444ToARGBRow_SSSE3, 0, 0, 4, 7)
384
+ #endif
385
+ #ifdef HAS_I444TORGB24ROW_SSSE3
386
+ ANY31C(I444ToRGB24Row_Any_SSSE3, I444ToRGB24Row_SSSE3, 0, 0, 3, 15)
387
+ #endif
388
+ #ifdef HAS_I422TORGB24ROW_AVX2
389
+ ANY31C(I422ToRGB24Row_Any_AVX2, I422ToRGB24Row_AVX2, 1, 0, 3, 31)
390
+ #endif
391
+ #ifdef HAS_I422TOARGBROW_AVX2
392
+ ANY31C(I422ToARGBRow_Any_AVX2, I422ToARGBRow_AVX2, 1, 0, 4, 15)
393
+ #endif
394
+ #ifdef HAS_I422TOARGBROW_AVX512BW
395
+ ANY31C(I422ToARGBRow_Any_AVX512BW, I422ToARGBRow_AVX512BW, 1, 0, 4, 31)
396
+ #endif
397
+ #ifdef HAS_I422TORGBAROW_AVX2
398
+ ANY31C(I422ToRGBARow_Any_AVX2, I422ToRGBARow_AVX2, 1, 0, 4, 15)
399
+ #endif
400
+ #ifdef HAS_I444TOARGBROW_AVX2
401
+ ANY31C(I444ToARGBRow_Any_AVX2, I444ToARGBRow_AVX2, 0, 0, 4, 15)
402
+ #endif
403
+ #ifdef HAS_I444TORGB24ROW_AVX2
404
+ ANY31C(I444ToRGB24Row_Any_AVX2, I444ToRGB24Row_AVX2, 0, 0, 3, 31)
405
+ #endif
406
+ #ifdef HAS_I422TOARGB4444ROW_AVX2
407
+ ANY31C(I422ToARGB4444Row_Any_AVX2, I422ToARGB4444Row_AVX2, 1, 0, 2, 15)
408
+ #endif
409
+ #ifdef HAS_I422TOARGB1555ROW_AVX2
410
+ ANY31C(I422ToARGB1555Row_Any_AVX2, I422ToARGB1555Row_AVX2, 1, 0, 2, 15)
411
+ #endif
412
+ #ifdef HAS_I422TORGB565ROW_AVX2
413
+ ANY31C(I422ToRGB565Row_Any_AVX2, I422ToRGB565Row_AVX2, 1, 0, 2, 15)
414
+ #endif
415
+ #ifdef HAS_I444TORGB24ROW_NEON
416
+ ANY31C(I444ToRGB24Row_Any_NEON, I444ToRGB24Row_NEON, 0, 0, 3, 7)
417
+ #endif
418
+ #ifdef HAS_I422TOAR30ROW_NEON
419
+ ANY31C(I422ToAR30Row_Any_NEON, I422ToAR30Row_NEON, 1, 0, 4, 7)
420
+ #endif
421
+ #ifdef HAS_I422TOARGBROW_NEON
422
+ ANY31C(I444ToARGBRow_Any_NEON, I444ToARGBRow_NEON, 0, 0, 4, 7)
423
+ ANY31C(I422ToARGBRow_Any_NEON, I422ToARGBRow_NEON, 1, 0, 4, 7)
424
+ ANY31C(I422ToRGBARow_Any_NEON, I422ToRGBARow_NEON, 1, 0, 4, 7)
425
+ ANY31C(I422ToRGB24Row_Any_NEON, I422ToRGB24Row_NEON, 1, 0, 3, 7)
426
+ ANY31C(I422ToARGB4444Row_Any_NEON, I422ToARGB4444Row_NEON, 1, 0, 2, 7)
427
+ ANY31C(I422ToARGB1555Row_Any_NEON, I422ToARGB1555Row_NEON, 1, 0, 2, 7)
428
+ ANY31C(I422ToRGB565Row_Any_NEON, I422ToRGB565Row_NEON, 1, 0, 2, 7)
429
+ #endif
430
+ #ifdef HAS_I422TOARGBROW_LSX
431
+ ANY31C(I422ToARGBRow_Any_LSX, I422ToARGBRow_LSX, 1, 0, 4, 15)
432
+ ANY31C(I422ToRGBARow_Any_LSX, I422ToRGBARow_LSX, 1, 0, 4, 15)
433
+ ANY31C(I422ToRGB24Row_Any_LSX, I422ToRGB24Row_LSX, 1, 0, 3, 15)
434
+ ANY31C(I422ToRGB565Row_Any_LSX, I422ToRGB565Row_LSX, 1, 0, 2, 15)
435
+ ANY31C(I422ToARGB4444Row_Any_LSX, I422ToARGB4444Row_LSX, 1, 0, 2, 15)
436
+ ANY31C(I422ToARGB1555Row_Any_LSX, I422ToARGB1555Row_LSX, 1, 0, 2, 15)
437
+ #endif
438
+ #ifdef HAS_I422TOARGBROW_LASX
439
+ ANY31C(I422ToARGBRow_Any_LASX, I422ToARGBRow_LASX, 1, 0, 4, 31)
440
+ ANY31C(I422ToRGBARow_Any_LASX, I422ToRGBARow_LASX, 1, 0, 4, 31)
441
+ ANY31C(I422ToRGB24Row_Any_LASX, I422ToRGB24Row_LASX, 1, 0, 3, 31)
442
+ ANY31C(I422ToRGB565Row_Any_LASX, I422ToRGB565Row_LASX, 1, 0, 2, 31)
443
+ ANY31C(I422ToARGB4444Row_Any_LASX, I422ToARGB4444Row_LASX, 1, 0, 2, 31)
444
+ ANY31C(I422ToARGB1555Row_Any_LASX, I422ToARGB1555Row_LASX, 1, 0, 2, 31)
445
+ #endif
446
+ #ifdef HAS_I444TOARGBROW_LSX
447
+ ANY31C(I444ToARGBRow_Any_LSX, I444ToARGBRow_LSX, 0, 0, 4, 15)
448
+ #endif
449
+ #undef ANY31C
450
+
451
+ // Any 3 planes of 16 bit to 1 with yuvconstants
452
+ // TODO(fbarchard): consider sharing this code with ANY31C
453
+ #define ANY31CT(NAMEANY, ANY_SIMD, UVSHIFT, DUVSHIFT, T, SBPP, BPP, MASK) \
454
+ void NAMEANY(const T* y_buf, const T* u_buf, const T* v_buf, \
455
+ uint8_t* dst_ptr, const struct YuvConstants* yuvconstants, \
456
+ int width) { \
457
+ SIMD_ALIGNED(T vin[16 * 3]); \
458
+ SIMD_ALIGNED(uint8_t vout[64]); \
459
+ memset(vin, 0, sizeof(vin)); /* for YUY2 and msan */ \
460
+ int r = width & MASK; \
461
+ int n = width & ~MASK; \
462
+ if (n > 0) { \
463
+ ANY_SIMD(y_buf, u_buf, v_buf, dst_ptr, yuvconstants, n); \
464
+ } \
465
+ ptrdiff_t np = n; \
466
+ memcpy(vin, y_buf + np, r * SBPP); \
467
+ memcpy(vin + 16, u_buf + (np >> UVSHIFT), SS(r, UVSHIFT) * SBPP); \
468
+ memcpy(vin + 32, v_buf + (np >> UVSHIFT), SS(r, UVSHIFT) * SBPP); \
469
+ ANY_SIMD(vin, vin + 16, vin + 32, vout, yuvconstants, MASK + 1); \
470
+ memcpy(dst_ptr + (np >> DUVSHIFT) * BPP, vout, SS(r, DUVSHIFT) * BPP); \
471
+ }
472
+
473
+ #ifdef HAS_I210TOAR30ROW_SSSE3
474
+ ANY31CT(I210ToAR30Row_Any_SSSE3, I210ToAR30Row_SSSE3, 1, 0, uint16_t, 2, 4, 7)
475
+ #endif
476
+ #ifdef HAS_I210TOARGBROW_SSSE3
477
+ ANY31CT(I210ToARGBRow_Any_SSSE3, I210ToARGBRow_SSSE3, 1, 0, uint16_t, 2, 4, 7)
478
+ #endif
479
+ #ifdef HAS_I210TOARGBROW_AVX2
480
+ ANY31CT(I210ToARGBRow_Any_AVX2, I210ToARGBRow_AVX2, 1, 0, uint16_t, 2, 4, 15)
481
+ #endif
482
+ #ifdef HAS_I210TOAR30ROW_AVX2
483
+ ANY31CT(I210ToAR30Row_Any_AVX2, I210ToAR30Row_AVX2, 1, 0, uint16_t, 2, 4, 15)
484
+ #endif
485
+ #ifdef HAS_I410TOAR30ROW_SSSE3
486
+ ANY31CT(I410ToAR30Row_Any_SSSE3, I410ToAR30Row_SSSE3, 0, 0, uint16_t, 2, 4, 7)
487
+ #endif
488
+ #ifdef HAS_I410TOARGBROW_SSSE3
489
+ ANY31CT(I410ToARGBRow_Any_SSSE3, I410ToARGBRow_SSSE3, 0, 0, uint16_t, 2, 4, 7)
490
+ #endif
491
+ #ifdef HAS_I410TOARGBROW_AVX2
492
+ ANY31CT(I410ToARGBRow_Any_AVX2, I410ToARGBRow_AVX2, 0, 0, uint16_t, 2, 4, 15)
493
+ #endif
494
+ #ifdef HAS_I410TOAR30ROW_AVX2
495
+ ANY31CT(I410ToAR30Row_Any_AVX2, I410ToAR30Row_AVX2, 0, 0, uint16_t, 2, 4, 15)
496
+ #endif
497
+ #ifdef HAS_I212TOAR30ROW_SSSE3
498
+ ANY31CT(I212ToAR30Row_Any_SSSE3, I212ToAR30Row_SSSE3, 1, 0, uint16_t, 2, 4, 7)
499
+ #endif
500
+ #ifdef HAS_I212TOARGBROW_SSSE3
501
+ ANY31CT(I212ToARGBRow_Any_SSSE3, I212ToARGBRow_SSSE3, 1, 0, uint16_t, 2, 4, 7)
502
+ #endif
503
+ #ifdef HAS_I212TOARGBROW_AVX2
504
+ ANY31CT(I212ToARGBRow_Any_AVX2, I212ToARGBRow_AVX2, 1, 0, uint16_t, 2, 4, 15)
505
+ #endif
506
+ #ifdef HAS_I212TOAR30ROW_AVX2
507
+ ANY31CT(I212ToAR30Row_Any_AVX2, I212ToAR30Row_AVX2, 1, 0, uint16_t, 2, 4, 15)
508
+ #endif
509
+ #ifdef HAS_I210TOARGBROW_NEON
510
+ ANY31CT(I210ToARGBRow_Any_NEON, I210ToARGBRow_NEON, 1, 0, uint16_t, 2, 4, 7)
511
+ #endif
512
+ #ifdef HAS_I410TOARGBROW_NEON
513
+ ANY31CT(I410ToARGBRow_Any_NEON, I410ToARGBRow_NEON, 0, 0, uint16_t, 2, 4, 7)
514
+ #endif
515
+ #ifdef HAS_I210TOAR30ROW_NEON
516
+ ANY31CT(I210ToAR30Row_Any_NEON, I210ToAR30Row_NEON, 1, 0, uint16_t, 2, 4, 7)
517
+ #endif
518
+ #ifdef HAS_I410TOAR30ROW_NEON
519
+ ANY31CT(I410ToAR30Row_Any_NEON, I410ToAR30Row_NEON, 0, 0, uint16_t, 2, 4, 7)
520
+ #endif
521
+ #ifdef HAS_I212TOARGBROW_NEON
522
+ ANY31CT(I212ToARGBRow_Any_NEON, I212ToARGBRow_NEON, 1, 0, uint16_t, 2, 4, 7)
523
+ #endif
524
+ #ifdef HAS_I212TOAR30ROW_NEON
525
+ ANY31CT(I212ToAR30Row_Any_NEON, I212ToAR30Row_NEON, 1, 0, uint16_t, 2, 4, 7)
526
+ #endif
527
+ #undef ANY31CT
528
+
529
+ // Any 3 planes to 1 plane with parameter
530
+ #define ANY31PT(NAMEANY, ANY_SIMD, STYPE, SBPP, DTYPE, BPP, MASK) \
531
+ void NAMEANY(const STYPE* r_buf, const STYPE* g_buf, const STYPE* b_buf, \
532
+ DTYPE* dst_ptr, int depth, int width) { \
533
+ SIMD_ALIGNED(STYPE vin[16 * 3]); \
534
+ SIMD_ALIGNED(DTYPE vout[64]); \
535
+ memset(vin, 0, sizeof(vin)); /* for YUY2 and msan */ \
536
+ int r = width & MASK; \
537
+ int n = width & ~MASK; \
538
+ if (n > 0) { \
539
+ ANY_SIMD(r_buf, g_buf, b_buf, dst_ptr, depth, n); \
540
+ } \
541
+ ptrdiff_t np = n; \
542
+ memcpy(vin, r_buf + np, r * SBPP); \
543
+ memcpy(vin + 16, g_buf + np, r * SBPP); \
544
+ memcpy(vin + 32, b_buf + np, r * SBPP); \
545
+ ANY_SIMD(vin, vin + 16, vin + 32, vout, depth, MASK + 1); \
546
+ memcpy((uint8_t*)dst_ptr + np * BPP, vout, r * BPP); \
547
+ }
548
+
549
+ #ifdef HAS_MERGEXR30ROW_AVX2
550
+ ANY31PT(MergeXR30Row_Any_AVX2, MergeXR30Row_AVX2, uint16_t, 2, uint8_t, 4, 15)
551
+ #endif
552
+
553
+ #ifdef HAS_MERGEXR30ROW_NEON
554
+ ANY31PT(MergeXR30Row_Any_NEON, MergeXR30Row_NEON, uint16_t, 2, uint8_t, 4, 3)
555
+ ANY31PT(MergeXR30Row_10_Any_NEON,
556
+ MergeXR30Row_10_NEON,
557
+ uint16_t,
558
+ 2,
559
+ uint8_t,
560
+ 4,
561
+ 7)
562
+ #endif
563
+
564
+ #ifdef HAS_MERGEXR64ROW_AVX2
565
+ ANY31PT(MergeXR64Row_Any_AVX2, MergeXR64Row_AVX2, uint16_t, 2, uint16_t, 8, 15)
566
+ #endif
567
+
568
+ #ifdef HAS_MERGEXR64ROW_NEON
569
+ ANY31PT(MergeXR64Row_Any_NEON, MergeXR64Row_NEON, uint16_t, 2, uint16_t, 8, 7)
570
+ #endif
571
+
572
+ #ifdef HAS_MERGEXRGB16TO8ROW_AVX2
573
+ ANY31PT(MergeXRGB16To8Row_Any_AVX2,
574
+ MergeXRGB16To8Row_AVX2,
575
+ uint16_t,
576
+ 2,
577
+ uint8_t,
578
+ 4,
579
+ 15)
580
+ #endif
581
+
582
+ #ifdef HAS_MERGEXRGB16TO8ROW_NEON
583
+ ANY31PT(MergeXRGB16To8Row_Any_NEON,
584
+ MergeXRGB16To8Row_NEON,
585
+ uint16_t,
586
+ 2,
587
+ uint8_t,
588
+ 4,
589
+ 7)
590
+ #endif
591
+
592
+ #undef ANY31PT
593
+
594
+ // Any 2 planes to 1.
595
+ #define ANY21(NAMEANY, ANY_SIMD, UVSHIFT, SBPP, SBPP2, BPP, MASK) \
596
+ void NAMEANY(const uint8_t* y_buf, const uint8_t* uv_buf, uint8_t* dst_ptr, \
597
+ int width) { \
598
+ SIMD_ALIGNED(uint8_t vin[128 * 2]); \
599
+ SIMD_ALIGNED(uint8_t vout[128]); \
600
+ memset(vin, 0, sizeof(vin)); /* for msan */ \
601
+ int r = width & MASK; \
602
+ int n = width & ~MASK; \
603
+ if (n > 0) { \
604
+ ANY_SIMD(y_buf, uv_buf, dst_ptr, n); \
605
+ } \
606
+ ptrdiff_t np = n; \
607
+ memcpy(vin, y_buf + np * SBPP, r * SBPP); \
608
+ memcpy(vin + 128, uv_buf + (np >> UVSHIFT) * SBPP2, \
609
+ SS(r, UVSHIFT) * SBPP2); \
610
+ ANY_SIMD(vin, vin + 128, vout, MASK + 1); \
611
+ memcpy(dst_ptr + np * BPP, vout, r * BPP); \
612
+ }
613
+
614
+ // Merge functions.
615
+ #ifdef HAS_MERGEUVROW_SSE2
616
+ ANY21(MergeUVRow_Any_SSE2, MergeUVRow_SSE2, 0, 1, 1, 2, 15)
617
+ #endif
618
+ #ifdef HAS_MERGEUVROW_AVX2
619
+ ANY21(MergeUVRow_Any_AVX2, MergeUVRow_AVX2, 0, 1, 1, 2, 15)
620
+ #endif
621
+ #ifdef HAS_MERGEUVROW_AVX512BW
622
+ ANY21(MergeUVRow_Any_AVX512BW, MergeUVRow_AVX512BW, 0, 1, 1, 2, 31)
623
+ #endif
624
+ #ifdef HAS_MERGEUVROW_NEON
625
+ ANY21(MergeUVRow_Any_NEON, MergeUVRow_NEON, 0, 1, 1, 2, 15)
626
+ #endif
627
+ #ifdef HAS_MERGEUVROW_LSX
628
+ ANY21(MergeUVRow_Any_LSX, MergeUVRow_LSX, 0, 1, 1, 2, 15)
629
+ #endif
630
+ #ifdef HAS_NV21TOYUV24ROW_NEON
631
+ ANY21(NV21ToYUV24Row_Any_NEON, NV21ToYUV24Row_NEON, 1, 1, 2, 3, 15)
632
+ #endif
633
+ #ifdef HAS_NV21TOYUV24ROW_SSSE3
634
+ ANY21(NV21ToYUV24Row_Any_SSSE3, NV21ToYUV24Row_SSSE3, 1, 1, 2, 3, 15)
635
+ #endif
636
+ #ifdef HAS_NV21TOYUV24ROW_AVX2
637
+ ANY21(NV21ToYUV24Row_Any_AVX2, NV21ToYUV24Row_AVX2, 1, 1, 2, 3, 31)
638
+ #endif
639
+ // Math functions.
640
+ #ifdef HAS_ARGBMULTIPLYROW_SSE2
641
+ ANY21(ARGBMultiplyRow_Any_SSE2, ARGBMultiplyRow_SSE2, 0, 4, 4, 4, 3)
642
+ #endif
643
+ #ifdef HAS_ARGBADDROW_SSE2
644
+ ANY21(ARGBAddRow_Any_SSE2, ARGBAddRow_SSE2, 0, 4, 4, 4, 3)
645
+ #endif
646
+ #ifdef HAS_ARGBSUBTRACTROW_SSE2
647
+ ANY21(ARGBSubtractRow_Any_SSE2, ARGBSubtractRow_SSE2, 0, 4, 4, 4, 3)
648
+ #endif
649
+ #ifdef HAS_ARGBMULTIPLYROW_AVX2
650
+ ANY21(ARGBMultiplyRow_Any_AVX2, ARGBMultiplyRow_AVX2, 0, 4, 4, 4, 7)
651
+ #endif
652
+ #ifdef HAS_ARGBADDROW_AVX2
653
+ ANY21(ARGBAddRow_Any_AVX2, ARGBAddRow_AVX2, 0, 4, 4, 4, 7)
654
+ #endif
655
+ #ifdef HAS_ARGBSUBTRACTROW_AVX2
656
+ ANY21(ARGBSubtractRow_Any_AVX2, ARGBSubtractRow_AVX2, 0, 4, 4, 4, 7)
657
+ #endif
658
+ #ifdef HAS_ARGBMULTIPLYROW_NEON
659
+ ANY21(ARGBMultiplyRow_Any_NEON, ARGBMultiplyRow_NEON, 0, 4, 4, 4, 7)
660
+ #endif
661
+ #ifdef HAS_ARGBADDROW_NEON
662
+ ANY21(ARGBAddRow_Any_NEON, ARGBAddRow_NEON, 0, 4, 4, 4, 7)
663
+ #endif
664
+ #ifdef HAS_ARGBSUBTRACTROW_NEON
665
+ ANY21(ARGBSubtractRow_Any_NEON, ARGBSubtractRow_NEON, 0, 4, 4, 4, 7)
666
+ #endif
667
+ #ifdef HAS_ARGBMULTIPLYROW_LSX
668
+ ANY21(ARGBMultiplyRow_Any_LSX, ARGBMultiplyRow_LSX, 0, 4, 4, 4, 3)
669
+ #endif
670
+ #ifdef HAS_ARGBMULTIPLYROW_LASX
671
+ ANY21(ARGBMultiplyRow_Any_LASX, ARGBMultiplyRow_LASX, 0, 4, 4, 4, 7)
672
+ #endif
673
+ #ifdef HAS_ARGBADDROW_LSX
674
+ ANY21(ARGBAddRow_Any_LSX, ARGBAddRow_LSX, 0, 4, 4, 4, 3)
675
+ #endif
676
+ #ifdef HAS_ARGBADDROW_LASX
677
+ ANY21(ARGBAddRow_Any_LASX, ARGBAddRow_LASX, 0, 4, 4, 4, 7)
678
+ #endif
679
+ #ifdef HAS_ARGBSUBTRACTROW_LSX
680
+ ANY21(ARGBSubtractRow_Any_LSX, ARGBSubtractRow_LSX, 0, 4, 4, 4, 3)
681
+ #endif
682
+ #ifdef HAS_ARGBSUBTRACTROW_LASX
683
+ ANY21(ARGBSubtractRow_Any_LASX, ARGBSubtractRow_LASX, 0, 4, 4, 4, 7)
684
+ #endif
685
+ #ifdef HAS_SOBELROW_SSE2
686
+ ANY21(SobelRow_Any_SSE2, SobelRow_SSE2, 0, 1, 1, 4, 15)
687
+ #endif
688
+ #ifdef HAS_SOBELROW_NEON
689
+ ANY21(SobelRow_Any_NEON, SobelRow_NEON, 0, 1, 1, 4, 7)
690
+ #endif
691
+ #ifdef HAS_SOBELROW_LSX
692
+ ANY21(SobelRow_Any_LSX, SobelRow_LSX, 0, 1, 1, 4, 15)
693
+ #endif
694
+ #ifdef HAS_SOBELTOPLANEROW_SSE2
695
+ ANY21(SobelToPlaneRow_Any_SSE2, SobelToPlaneRow_SSE2, 0, 1, 1, 1, 15)
696
+ #endif
697
+ #ifdef HAS_SOBELTOPLANEROW_NEON
698
+ ANY21(SobelToPlaneRow_Any_NEON, SobelToPlaneRow_NEON, 0, 1, 1, 1, 15)
699
+ #endif
700
+ #ifdef HAS_SOBELTOPLANEROW_LSX
701
+ ANY21(SobelToPlaneRow_Any_LSX, SobelToPlaneRow_LSX, 0, 1, 1, 1, 31)
702
+ #endif
703
+ #ifdef HAS_SOBELXYROW_SSE2
704
+ ANY21(SobelXYRow_Any_SSE2, SobelXYRow_SSE2, 0, 1, 1, 4, 15)
705
+ #endif
706
+ #ifdef HAS_SOBELXYROW_NEON
707
+ ANY21(SobelXYRow_Any_NEON, SobelXYRow_NEON, 0, 1, 1, 4, 7)
708
+ #endif
709
+ #ifdef HAS_SOBELXYROW_LSX
710
+ ANY21(SobelXYRow_Any_LSX, SobelXYRow_LSX, 0, 1, 1, 4, 15)
711
+ #endif
712
+ #undef ANY21
713
+
714
+ // Any 2 planes to 1 with stride
715
+ // width is measured in source pixels. 4 bytes contains 2 pixels
716
+ #define ANY21S(NAMEANY, ANY_SIMD, SBPP, BPP, MASK) \
717
+ void NAMEANY(const uint8_t* src_yuy2, int stride_yuy2, uint8_t* dst_uv, \
718
+ int width) { \
719
+ SIMD_ALIGNED(uint8_t vin[32 * 2]); \
720
+ SIMD_ALIGNED(uint8_t vout[32]); \
721
+ memset(vin, 0, sizeof(vin)); /* for msan */ \
722
+ int awidth = (width + 1) / 2; \
723
+ int r = awidth & MASK; \
724
+ int n = awidth & ~MASK; \
725
+ if (n > 0) { \
726
+ ANY_SIMD(src_yuy2, stride_yuy2, dst_uv, n * 2); \
727
+ } \
728
+ ptrdiff_t np = n; \
729
+ memcpy(vin, src_yuy2 + np * SBPP, r * SBPP); \
730
+ memcpy(vin + 32, src_yuy2 + stride_yuy2 + np * SBPP, r * SBPP); \
731
+ ANY_SIMD(vin, 32, vout, MASK + 1); \
732
+ memcpy(dst_uv + np * BPP, vout, r * BPP); \
733
+ }
734
+
735
+ #ifdef HAS_YUY2TONVUVROW_NEON
736
+ ANY21S(YUY2ToNVUVRow_Any_NEON, YUY2ToNVUVRow_NEON, 4, 2, 7)
737
+ #endif
738
+ #ifdef HAS_YUY2TONVUVROW_SSE2
739
+ ANY21S(YUY2ToNVUVRow_Any_SSE2, YUY2ToNVUVRow_SSE2, 4, 2, 7)
740
+ #endif
741
+ #ifdef HAS_YUY2TONVUVROW_AVX2
742
+ ANY21S(YUY2ToNVUVRow_Any_AVX2, YUY2ToNVUVRow_AVX2, 4, 2, 15)
743
+ #endif
744
+
745
+ // Any 2 planes to 1 with yuvconstants
746
+ #define ANY21C(NAMEANY, ANY_SIMD, UVSHIFT, SBPP, SBPP2, BPP, MASK) \
747
+ void NAMEANY(const uint8_t* y_buf, const uint8_t* uv_buf, uint8_t* dst_ptr, \
748
+ const struct YuvConstants* yuvconstants, int width) { \
749
+ SIMD_ALIGNED(uint8_t vin[128 * 2]); \
750
+ SIMD_ALIGNED(uint8_t vout[128]); \
751
+ memset(vin, 0, sizeof(vin)); /* for msan */ \
752
+ int r = width & MASK; \
753
+ int n = width & ~MASK; \
754
+ if (n > 0) { \
755
+ ANY_SIMD(y_buf, uv_buf, dst_ptr, yuvconstants, n); \
756
+ } \
757
+ ptrdiff_t np = n; \
758
+ memcpy(vin, y_buf + np * SBPP, r * SBPP); \
759
+ memcpy(vin + 128, uv_buf + (np >> UVSHIFT) * SBPP2, \
760
+ SS(r, UVSHIFT) * SBPP2); \
761
+ ANY_SIMD(vin, vin + 128, vout, yuvconstants, MASK + 1); \
762
+ memcpy(dst_ptr + np * BPP, vout, r * BPP); \
763
+ }
764
+
765
+ // Biplanar to RGB.
766
+ #ifdef HAS_NV12TOARGBROW_SSSE3
767
+ ANY21C(NV12ToARGBRow_Any_SSSE3, NV12ToARGBRow_SSSE3, 1, 1, 2, 4, 7)
768
+ #endif
769
+ #ifdef HAS_NV12TOARGBROW_AVX2
770
+ ANY21C(NV12ToARGBRow_Any_AVX2, NV12ToARGBRow_AVX2, 1, 1, 2, 4, 15)
771
+ #endif
772
+ #ifdef HAS_NV12TOARGBROW_NEON
773
+ ANY21C(NV12ToARGBRow_Any_NEON, NV12ToARGBRow_NEON, 1, 1, 2, 4, 7)
774
+ #endif
775
+ #ifdef HAS_NV12TOARGBROW_LSX
776
+ ANY21C(NV12ToARGBRow_Any_LSX, NV12ToARGBRow_LSX, 1, 1, 2, 4, 7)
777
+ #endif
778
+ #ifdef HAS_NV12TOARGBROW_LASX
779
+ ANY21C(NV12ToARGBRow_Any_LASX, NV12ToARGBRow_LASX, 1, 1, 2, 4, 15)
780
+ #endif
781
+ #ifdef HAS_NV21TOARGBROW_SSSE3
782
+ ANY21C(NV21ToARGBRow_Any_SSSE3, NV21ToARGBRow_SSSE3, 1, 1, 2, 4, 7)
783
+ #endif
784
+ #ifdef HAS_NV21TOARGBROW_AVX2
785
+ ANY21C(NV21ToARGBRow_Any_AVX2, NV21ToARGBRow_AVX2, 1, 1, 2, 4, 15)
786
+ #endif
787
+ #ifdef HAS_NV21TOARGBROW_NEON
788
+ ANY21C(NV21ToARGBRow_Any_NEON, NV21ToARGBRow_NEON, 1, 1, 2, 4, 7)
789
+ #endif
790
+ #ifdef HAS_NV21TOARGBROW_LSX
791
+ ANY21C(NV21ToARGBRow_Any_LSX, NV21ToARGBRow_LSX, 1, 1, 2, 4, 7)
792
+ #endif
793
+ #ifdef HAS_NV21TOARGBROW_LASX
794
+ ANY21C(NV21ToARGBRow_Any_LASX, NV21ToARGBRow_LASX, 1, 1, 2, 4, 15)
795
+ #endif
796
+ #ifdef HAS_NV12TORGB24ROW_NEON
797
+ ANY21C(NV12ToRGB24Row_Any_NEON, NV12ToRGB24Row_NEON, 1, 1, 2, 3, 7)
798
+ #endif
799
+ #ifdef HAS_NV21TORGB24ROW_NEON
800
+ ANY21C(NV21ToRGB24Row_Any_NEON, NV21ToRGB24Row_NEON, 1, 1, 2, 3, 7)
801
+ #endif
802
+ #ifdef HAS_NV12TORGB24ROW_SSSE3
803
+ ANY21C(NV12ToRGB24Row_Any_SSSE3, NV12ToRGB24Row_SSSE3, 1, 1, 2, 3, 15)
804
+ #endif
805
+ #ifdef HAS_NV21TORGB24ROW_SSSE3
806
+ ANY21C(NV21ToRGB24Row_Any_SSSE3, NV21ToRGB24Row_SSSE3, 1, 1, 2, 3, 15)
807
+ #endif
808
+ #ifdef HAS_NV12TORGB24ROW_AVX2
809
+ ANY21C(NV12ToRGB24Row_Any_AVX2, NV12ToRGB24Row_AVX2, 1, 1, 2, 3, 31)
810
+ #endif
811
+ #ifdef HAS_NV21TORGB24ROW_AVX2
812
+ ANY21C(NV21ToRGB24Row_Any_AVX2, NV21ToRGB24Row_AVX2, 1, 1, 2, 3, 31)
813
+ #endif
814
+ #ifdef HAS_NV12TORGB565ROW_SSSE3
815
+ ANY21C(NV12ToRGB565Row_Any_SSSE3, NV12ToRGB565Row_SSSE3, 1, 1, 2, 2, 7)
816
+ #endif
817
+ #ifdef HAS_NV12TORGB565ROW_AVX2
818
+ ANY21C(NV12ToRGB565Row_Any_AVX2, NV12ToRGB565Row_AVX2, 1, 1, 2, 2, 15)
819
+ #endif
820
+ #ifdef HAS_NV12TORGB565ROW_NEON
821
+ ANY21C(NV12ToRGB565Row_Any_NEON, NV12ToRGB565Row_NEON, 1, 1, 2, 2, 7)
822
+ #endif
823
+ #ifdef HAS_NV12TORGB565ROW_LSX
824
+ ANY21C(NV12ToRGB565Row_Any_LSX, NV12ToRGB565Row_LSX, 1, 1, 2, 2, 7)
825
+ #endif
826
+ #ifdef HAS_NV12TORGB565ROW_LASX
827
+ ANY21C(NV12ToRGB565Row_Any_LASX, NV12ToRGB565Row_LASX, 1, 1, 2, 2, 15)
828
+ #endif
829
+ #undef ANY21C
830
+
831
+ // Any 2 planes of 16 bit to 1 with yuvconstants
832
+ #define ANY21CT(NAMEANY, ANY_SIMD, UVSHIFT, DUVSHIFT, T, SBPP, BPP, MASK) \
833
+ void NAMEANY(const T* y_buf, const T* uv_buf, uint8_t* dst_ptr, \
834
+ const struct YuvConstants* yuvconstants, int width) { \
835
+ SIMD_ALIGNED(T vin[16 * 2]); \
836
+ SIMD_ALIGNED(uint8_t vout[64]); \
837
+ memset(vin, 0, sizeof(vin)); /* for msan */ \
838
+ int r = width & MASK; \
839
+ int n = width & ~MASK; \
840
+ if (n > 0) { \
841
+ ANY_SIMD(y_buf, uv_buf, dst_ptr, yuvconstants, n); \
842
+ } \
843
+ ptrdiff_t np = n; \
844
+ memcpy(vin, y_buf + np, r * SBPP); \
845
+ memcpy(vin + 16, uv_buf + 2 * (np >> UVSHIFT), SS(r, UVSHIFT) * SBPP * 2); \
846
+ ANY_SIMD(vin, vin + 16, vout, yuvconstants, MASK + 1); \
847
+ memcpy(dst_ptr + (np >> DUVSHIFT) * BPP, vout, SS(r, DUVSHIFT) * BPP); \
848
+ }
849
+
850
+ #ifdef HAS_P210TOAR30ROW_SSSE3
851
+ ANY21CT(P210ToAR30Row_Any_SSSE3, P210ToAR30Row_SSSE3, 1, 0, uint16_t, 2, 4, 7)
852
+ #endif
853
+ #ifdef HAS_P210TOARGBROW_SSSE3
854
+ ANY21CT(P210ToARGBRow_Any_SSSE3, P210ToARGBRow_SSSE3, 1, 0, uint16_t, 2, 4, 7)
855
+ #endif
856
+ #ifdef HAS_P210TOARGBROW_AVX2
857
+ ANY21CT(P210ToARGBRow_Any_AVX2, P210ToARGBRow_AVX2, 1, 0, uint16_t, 2, 4, 15)
858
+ #endif
859
+ #ifdef HAS_P210TOAR30ROW_AVX2
860
+ ANY21CT(P210ToAR30Row_Any_AVX2, P210ToAR30Row_AVX2, 1, 0, uint16_t, 2, 4, 15)
861
+ #endif
862
+ #ifdef HAS_P210TOAR30ROW_NEON
863
+ ANY21CT(P210ToAR30Row_Any_NEON, P210ToAR30Row_NEON, 1, 0, uint16_t, 2, 4, 7)
864
+ #endif
865
+ #ifdef HAS_P210TOARGBROW_NEON
866
+ ANY21CT(P210ToARGBRow_Any_NEON, P210ToARGBRow_NEON, 1, 0, uint16_t, 2, 4, 7)
867
+ #endif
868
+ #ifdef HAS_P410TOAR30ROW_SSSE3
869
+ ANY21CT(P410ToAR30Row_Any_SSSE3, P410ToAR30Row_SSSE3, 0, 0, uint16_t, 2, 4, 7)
870
+ #endif
871
+ #ifdef HAS_P410TOARGBROW_SSSE3
872
+ ANY21CT(P410ToARGBRow_Any_SSSE3, P410ToARGBRow_SSSE3, 0, 0, uint16_t, 2, 4, 7)
873
+ #endif
874
+ #ifdef HAS_P410TOARGBROW_AVX2
875
+ ANY21CT(P410ToARGBRow_Any_AVX2, P410ToARGBRow_AVX2, 0, 0, uint16_t, 2, 4, 15)
876
+ #endif
877
+ #ifdef HAS_P410TOAR30ROW_AVX2
878
+ ANY21CT(P410ToAR30Row_Any_AVX2, P410ToAR30Row_AVX2, 0, 0, uint16_t, 2, 4, 15)
879
+ #endif
880
+ #ifdef HAS_P410TOAR30ROW_NEON
881
+ ANY21CT(P410ToAR30Row_Any_NEON, P410ToAR30Row_NEON, 0, 0, uint16_t, 2, 4, 7)
882
+ #endif
883
+ #ifdef HAS_P410TOARGBROW_NEON
884
+ ANY21CT(P410ToARGBRow_Any_NEON, P410ToARGBRow_NEON, 0, 0, uint16_t, 2, 4, 7)
885
+ #endif
886
+
887
+ #undef ANY21CT
888
+
889
+ // Any 2 16 bit planes with parameter to 1
890
+ #define ANY21PT(NAMEANY, ANY_SIMD, T, BPP, MASK) \
891
+ void NAMEANY(const T* src_u, const T* src_v, T* dst_uv, int depth, \
892
+ int width) { \
893
+ SIMD_ALIGNED(T vin[16 * 2]); \
894
+ SIMD_ALIGNED(T vout[16]); \
895
+ memset(vin, 0, sizeof(vin)); /* for msan */ \
896
+ int r = width & MASK; \
897
+ int n = width & ~MASK; \
898
+ if (n > 0) { \
899
+ ANY_SIMD(src_u, src_v, dst_uv, depth, n); \
900
+ } \
901
+ ptrdiff_t np = n; \
902
+ memcpy(vin, src_u + np, r * BPP); \
903
+ memcpy(vin + 16, src_v + np, r * BPP); \
904
+ ANY_SIMD(vin, vin + 16, vout, depth, MASK + 1); \
905
+ memcpy(dst_uv + np * 2, vout, r * BPP * 2); \
906
+ }
907
+
908
+ #ifdef HAS_MERGEUVROW_16_AVX2
909
+ ANY21PT(MergeUVRow_16_Any_AVX2, MergeUVRow_16_AVX2, uint16_t, 2, 7)
910
+ #endif
911
+ #ifdef HAS_MERGEUVROW_16_NEON
912
+ ANY21PT(MergeUVRow_16_Any_NEON, MergeUVRow_16_NEON, uint16_t, 2, 7)
913
+ #endif
914
+
915
+ #undef ANY21CT
916
+
917
+ // Any 1 to 1.
918
+ #define ANY11(NAMEANY, ANY_SIMD, UVSHIFT, SBPP, BPP, MASK) \
919
+ void NAMEANY(const uint8_t* src_ptr, uint8_t* dst_ptr, int width) { \
920
+ SIMD_ALIGNED(uint8_t vin[128]); \
921
+ SIMD_ALIGNED(uint8_t vout[128]); \
922
+ memset(vin, 0, sizeof(vin)); /* for YUY2 and msan */ \
923
+ int r = width & MASK; \
924
+ int n = width & ~MASK; \
925
+ if (n > 0) { \
926
+ ANY_SIMD(src_ptr, dst_ptr, n); \
927
+ } \
928
+ ptrdiff_t np = n; \
929
+ memcpy(vin, src_ptr + (np >> UVSHIFT) * SBPP, SS(r, UVSHIFT) * SBPP); \
930
+ ANY_SIMD(vin, vout, MASK + 1); \
931
+ memcpy(dst_ptr + np * BPP, vout, r * BPP); \
932
+ }
933
+
934
+ #ifdef HAS_COPYROW_AVX512BW
935
+ ANY11(CopyRow_Any_AVX512BW, CopyRow_AVX512BW, 0, 1, 1, 127)
936
+ #endif
937
+ #ifdef HAS_COPYROW_AVX
938
+ ANY11(CopyRow_Any_AVX, CopyRow_AVX, 0, 1, 1, 63)
939
+ #endif
940
+ #ifdef HAS_COPYROW_SSE2
941
+ ANY11(CopyRow_Any_SSE2, CopyRow_SSE2, 0, 1, 1, 31)
942
+ #endif
943
+ #ifdef HAS_COPYROW_NEON
944
+ ANY11(CopyRow_Any_NEON, CopyRow_NEON, 0, 1, 1, 31)
945
+ #endif
946
+ #if defined(HAS_ARGBTORGB24ROW_SSSE3)
947
+ ANY11(ARGBToRGB24Row_Any_SSSE3, ARGBToRGB24Row_SSSE3, 0, 4, 3, 15)
948
+ ANY11(ARGBToRAWRow_Any_SSSE3, ARGBToRAWRow_SSSE3, 0, 4, 3, 15)
949
+ ANY11(ARGBToRGB565Row_Any_SSE2, ARGBToRGB565Row_SSE2, 0, 4, 2, 3)
950
+ ANY11(ARGBToARGB1555Row_Any_SSE2, ARGBToARGB1555Row_SSE2, 0, 4, 2, 3)
951
+ ANY11(ARGBToARGB4444Row_Any_SSE2, ARGBToARGB4444Row_SSE2, 0, 4, 2, 3)
952
+ #endif
953
+ #if defined(HAS_ARGBTORGB24ROW_AVX2)
954
+ ANY11(ARGBToRGB24Row_Any_AVX2, ARGBToRGB24Row_AVX2, 0, 4, 3, 31)
955
+ #endif
956
+ #if defined(HAS_ARGBTORGB24ROW_AVX512VBMI)
957
+ ANY11(ARGBToRGB24Row_Any_AVX512VBMI, ARGBToRGB24Row_AVX512VBMI, 0, 4, 3, 31)
958
+ #endif
959
+ #if defined(HAS_ARGBTORAWROW_AVX2)
960
+ ANY11(ARGBToRAWRow_Any_AVX2, ARGBToRAWRow_AVX2, 0, 4, 3, 31)
961
+ #endif
962
+ #if defined(HAS_ARGBTORGB565ROW_AVX2)
963
+ ANY11(ARGBToRGB565Row_Any_AVX2, ARGBToRGB565Row_AVX2, 0, 4, 2, 7)
964
+ #endif
965
+ #if defined(HAS_ARGBTOARGB4444ROW_AVX2)
966
+ ANY11(ARGBToARGB1555Row_Any_AVX2, ARGBToARGB1555Row_AVX2, 0, 4, 2, 7)
967
+ ANY11(ARGBToARGB4444Row_Any_AVX2, ARGBToARGB4444Row_AVX2, 0, 4, 2, 7)
968
+ #endif
969
+ #if defined(HAS_ABGRTOAR30ROW_SSSE3)
970
+ ANY11(ABGRToAR30Row_Any_SSSE3, ABGRToAR30Row_SSSE3, 0, 4, 4, 3)
971
+ #endif
972
+ #if defined(HAS_ABGRTOAR30ROW_NEON)
973
+ ANY11(ABGRToAR30Row_Any_NEON, ABGRToAR30Row_NEON, 0, 4, 4, 7)
974
+ #endif
975
+ #if defined(HAS_ARGBTOAR30ROW_NEON)
976
+ ANY11(ARGBToAR30Row_Any_NEON, ARGBToAR30Row_NEON, 0, 4, 4, 7)
977
+ #endif
978
+ #if defined(HAS_ARGBTOAR30ROW_SSSE3)
979
+ ANY11(ARGBToAR30Row_Any_SSSE3, ARGBToAR30Row_SSSE3, 0, 4, 4, 3)
980
+ #endif
981
+ #if defined(HAS_ABGRTOAR30ROW_AVX2)
982
+ ANY11(ABGRToAR30Row_Any_AVX2, ABGRToAR30Row_AVX2, 0, 4, 4, 7)
983
+ #endif
984
+ #if defined(HAS_ARGBTOAR30ROW_AVX2)
985
+ ANY11(ARGBToAR30Row_Any_AVX2, ARGBToAR30Row_AVX2, 0, 4, 4, 7)
986
+ #endif
987
+ #if defined(HAS_J400TOARGBROW_SSE2)
988
+ ANY11(J400ToARGBRow_Any_SSE2, J400ToARGBRow_SSE2, 0, 1, 4, 7)
989
+ #endif
990
+ #if defined(HAS_J400TOARGBROW_AVX2)
991
+ ANY11(J400ToARGBRow_Any_AVX2, J400ToARGBRow_AVX2, 0, 1, 4, 15)
992
+ #endif
993
+ #if defined(HAS_RGB24TOARGBROW_SSSE3)
994
+ ANY11(RGB24ToARGBRow_Any_SSSE3, RGB24ToARGBRow_SSSE3, 0, 3, 4, 15)
995
+ ANY11(RAWToARGBRow_Any_SSSE3, RAWToARGBRow_SSSE3, 0, 3, 4, 15)
996
+ ANY11(RGB565ToARGBRow_Any_SSE2, RGB565ToARGBRow_SSE2, 0, 2, 4, 7)
997
+ ANY11(ARGB1555ToARGBRow_Any_SSE2, ARGB1555ToARGBRow_SSE2, 0, 2, 4, 7)
998
+ ANY11(ARGB4444ToARGBRow_Any_SSE2, ARGB4444ToARGBRow_SSE2, 0, 2, 4, 7)
999
+ #endif
1000
+ #if defined(HAS_RAWTOARGBROW_AVX2)
1001
+ ANY11(RAWToARGBRow_Any_AVX2, RAWToARGBRow_AVX2, 0, 3, 4, 31)
1002
+ #endif
1003
+ #if defined(HAS_RAWTORGBAROW_SSSE3)
1004
+ ANY11(RAWToRGBARow_Any_SSSE3, RAWToRGBARow_SSSE3, 0, 3, 4, 15)
1005
+ #endif
1006
+ #if defined(HAS_RAWTORGB24ROW_SSSE3)
1007
+ ANY11(RAWToRGB24Row_Any_SSSE3, RAWToRGB24Row_SSSE3, 0, 3, 3, 7)
1008
+ #endif
1009
+ #if defined(HAS_RGB565TOARGBROW_AVX2)
1010
+ ANY11(RGB565ToARGBRow_Any_AVX2, RGB565ToARGBRow_AVX2, 0, 2, 4, 15)
1011
+ #endif
1012
+ #if defined(HAS_ARGB1555TOARGBROW_AVX2)
1013
+ ANY11(ARGB1555ToARGBRow_Any_AVX2, ARGB1555ToARGBRow_AVX2, 0, 2, 4, 15)
1014
+ #endif
1015
+ #if defined(HAS_ARGB4444TOARGBROW_AVX2)
1016
+ ANY11(ARGB4444ToARGBRow_Any_AVX2, ARGB4444ToARGBRow_AVX2, 0, 2, 4, 15)
1017
+ #endif
1018
+ #if defined(HAS_ARGBTORGB24ROW_NEON)
1019
+ ANY11(ARGBToRGB24Row_Any_NEON, ARGBToRGB24Row_NEON, 0, 4, 3, 15)
1020
+ ANY11(ARGBToRAWRow_Any_NEON, ARGBToRAWRow_NEON, 0, 4, 3, 7)
1021
+ ANY11(ARGBToRGB565Row_Any_NEON, ARGBToRGB565Row_NEON, 0, 4, 2, 7)
1022
+ ANY11(ARGBToARGB1555Row_Any_NEON, ARGBToARGB1555Row_NEON, 0, 4, 2, 7)
1023
+ ANY11(ARGBToARGB4444Row_Any_NEON, ARGBToARGB4444Row_NEON, 0, 4, 2, 7)
1024
+ ANY11(J400ToARGBRow_Any_NEON, J400ToARGBRow_NEON, 0, 1, 4, 7)
1025
+ #endif
1026
+ #if defined(HAS_ARGBTORGB24ROW_LSX)
1027
+ ANY11(ARGBToRGB24Row_Any_LSX, ARGBToRGB24Row_LSX, 0, 4, 3, 15)
1028
+ ANY11(ARGBToRAWRow_Any_LSX, ARGBToRAWRow_LSX, 0, 4, 3, 15)
1029
+ ANY11(ARGBToRGB565Row_Any_LSX, ARGBToRGB565Row_LSX, 0, 4, 2, 7)
1030
+ ANY11(ARGBToARGB1555Row_Any_LSX, ARGBToARGB1555Row_LSX, 0, 4, 2, 7)
1031
+ ANY11(ARGBToARGB4444Row_Any_LSX, ARGBToARGB4444Row_LSX, 0, 4, 2, 7)
1032
+ #endif
1033
+ #if defined(HAS_ARGBTORGB24ROW_LASX)
1034
+ ANY11(ARGBToRGB24Row_Any_LASX, ARGBToRGB24Row_LASX, 0, 4, 3, 31)
1035
+ ANY11(ARGBToRAWRow_Any_LASX, ARGBToRAWRow_LASX, 0, 4, 3, 31)
1036
+ ANY11(ARGBToRGB565Row_Any_LASX, ARGBToRGB565Row_LASX, 0, 4, 2, 15)
1037
+ ANY11(ARGBToARGB1555Row_Any_LASX, ARGBToARGB1555Row_LASX, 0, 4, 2, 15)
1038
+ ANY11(ARGBToARGB4444Row_Any_LASX, ARGBToARGB4444Row_LASX, 0, 4, 2, 15)
1039
+ #endif
1040
+ #if defined(HAS_J400TOARGBROW_LSX)
1041
+ ANY11(J400ToARGBRow_Any_LSX, J400ToARGBRow_LSX, 0, 1, 4, 15)
1042
+ #endif
1043
+ #if defined(HAS_RAWTORGB24ROW_NEON)
1044
+ ANY11(RAWToRGB24Row_Any_NEON, RAWToRGB24Row_NEON, 0, 3, 3, 7)
1045
+ #endif
1046
+ #if defined(HAS_RAWTORGB24ROW_LSX)
1047
+ ANY11(RAWToRGB24Row_Any_LSX, RAWToRGB24Row_LSX, 0, 3, 3, 15)
1048
+ #endif
1049
+ #ifdef HAS_ARGBTOYROW_AVX2
1050
+ ANY11(ARGBToYRow_Any_AVX2, ARGBToYRow_AVX2, 0, 4, 1, 31)
1051
+ #endif
1052
+ #ifdef HAS_ABGRTOYROW_AVX2
1053
+ ANY11(ABGRToYRow_Any_AVX2, ABGRToYRow_AVX2, 0, 4, 1, 31)
1054
+ #endif
1055
+ #ifdef HAS_ARGBTOYJROW_AVX2
1056
+ ANY11(ARGBToYJRow_Any_AVX2, ARGBToYJRow_AVX2, 0, 4, 1, 31)
1057
+ #endif
1058
+ #ifdef HAS_ABGRTOYJROW_AVX2
1059
+ ANY11(ABGRToYJRow_Any_AVX2, ABGRToYJRow_AVX2, 0, 4, 1, 31)
1060
+ #endif
1061
+ #ifdef HAS_RGBATOYJROW_AVX2
1062
+ ANY11(RGBAToYJRow_Any_AVX2, RGBAToYJRow_AVX2, 0, 4, 1, 31)
1063
+ #endif
1064
+ #ifdef HAS_UYVYTOYROW_AVX2
1065
+ ANY11(UYVYToYRow_Any_AVX2, UYVYToYRow_AVX2, 0, 2, 1, 31)
1066
+ #endif
1067
+ #ifdef HAS_YUY2TOYROW_AVX2
1068
+ ANY11(YUY2ToYRow_Any_AVX2, YUY2ToYRow_AVX2, 1, 4, 1, 31)
1069
+ #endif
1070
+ #ifdef HAS_ARGBTOYROW_SSSE3
1071
+ ANY11(ARGBToYRow_Any_SSSE3, ARGBToYRow_SSSE3, 0, 4, 1, 15)
1072
+ #endif
1073
+ #ifdef HAS_BGRATOYROW_SSSE3
1074
+ ANY11(BGRAToYRow_Any_SSSE3, BGRAToYRow_SSSE3, 0, 4, 1, 15)
1075
+ ANY11(ABGRToYRow_Any_SSSE3, ABGRToYRow_SSSE3, 0, 4, 1, 15)
1076
+ ANY11(RGBAToYRow_Any_SSSE3, RGBAToYRow_SSSE3, 0, 4, 1, 15)
1077
+ #endif
1078
+ #ifdef HAS_YUY2TOYROW_SSE2
1079
+ ANY11(YUY2ToYRow_Any_SSE2, YUY2ToYRow_SSE2, 1, 4, 1, 15)
1080
+ ANY11(UYVYToYRow_Any_SSE2, UYVYToYRow_SSE2, 1, 4, 1, 15)
1081
+ #endif
1082
+ #ifdef HAS_ARGBTOYJROW_SSSE3
1083
+ ANY11(ARGBToYJRow_Any_SSSE3, ARGBToYJRow_SSSE3, 0, 4, 1, 15)
1084
+ #endif
1085
+ #ifdef HAS_ABGRTOYJROW_SSSE3
1086
+ ANY11(ABGRToYJRow_Any_SSSE3, ABGRToYJRow_SSSE3, 0, 4, 1, 15)
1087
+ #endif
1088
+ #ifdef HAS_RGBATOYJROW_SSSE3
1089
+ ANY11(RGBAToYJRow_Any_SSSE3, RGBAToYJRow_SSSE3, 0, 4, 1, 15)
1090
+ #endif
1091
+ #ifdef HAS_ARGBTOYROW_NEON
1092
+ ANY11(ARGBToYRow_Any_NEON, ARGBToYRow_NEON, 0, 4, 1, 15)
1093
+ #endif
1094
+ #ifdef HAS_ARGBTOYROW_NEON_DOTPROD
1095
+ ANY11(ARGBToYRow_Any_NEON_DotProd, ARGBToYRow_NEON_DotProd, 0, 4, 1, 15)
1096
+ #endif
1097
+ #ifdef HAS_ARGBTOYROW_LSX
1098
+ ANY11(ARGBToYRow_Any_LSX, ARGBToYRow_LSX, 0, 4, 1, 15)
1099
+ #endif
1100
+ #ifdef HAS_ARGBTOYROW_LASX
1101
+ ANY11(ARGBToYRow_Any_LASX, ARGBToYRow_LASX, 0, 4, 1, 31)
1102
+ #endif
1103
+ #ifdef HAS_ARGBTOYJROW_NEON
1104
+ ANY11(ARGBToYJRow_Any_NEON, ARGBToYJRow_NEON, 0, 4, 1, 15)
1105
+ #endif
1106
+ #ifdef HAS_ARGBTOYJROW_NEON_DOTPROD
1107
+ ANY11(ARGBToYJRow_Any_NEON_DotProd, ARGBToYJRow_NEON_DotProd, 0, 4, 1, 15)
1108
+ #endif
1109
+ #ifdef HAS_ABGRTOYJROW_NEON
1110
+ ANY11(ABGRToYJRow_Any_NEON, ABGRToYJRow_NEON, 0, 4, 1, 15)
1111
+ #endif
1112
+ #ifdef HAS_ABGRTOYJROW_NEON_DOTPROD
1113
+ ANY11(ABGRToYJRow_Any_NEON_DotProd, ABGRToYJRow_NEON_DotProd, 0, 4, 1, 15)
1114
+ #endif
1115
+ #ifdef HAS_RGBATOYJROW_NEON
1116
+ ANY11(RGBAToYJRow_Any_NEON, RGBAToYJRow_NEON, 0, 4, 1, 15)
1117
+ #endif
1118
+ #ifdef HAS_RGBATOYJROW_NEON_DOTPROD
1119
+ ANY11(RGBAToYJRow_Any_NEON_DotProd, RGBAToYJRow_NEON_DotProd, 0, 4, 1, 15)
1120
+ #endif
1121
+ #ifdef HAS_ARGBTOYJROW_LSX
1122
+ ANY11(ARGBToYJRow_Any_LSX, ARGBToYJRow_LSX, 0, 4, 1, 15)
1123
+ #endif
1124
+ #ifdef HAS_RGBATOYJROW_LSX
1125
+ ANY11(RGBAToYJRow_Any_LSX, RGBAToYJRow_LSX, 0, 4, 1, 15)
1126
+ #endif
1127
+ #ifdef HAS_ABGRTOYJROW_LSX
1128
+ ANY11(ABGRToYJRow_Any_LSX, ABGRToYJRow_LSX, 0, 4, 1, 15)
1129
+ #endif
1130
+ #ifdef HAS_RGBATOYJROW_LASX
1131
+ ANY11(RGBAToYJRow_Any_LASX, RGBAToYJRow_LASX, 0, 4, 1, 31)
1132
+ #endif
1133
+ #ifdef HAS_ARGBTOYJROW_LASX
1134
+ ANY11(ARGBToYJRow_Any_LASX, ARGBToYJRow_LASX, 0, 4, 1, 31)
1135
+ #endif
1136
+ #ifdef HAS_ABGRTOYJROW_LASX
1137
+ ANY11(ABGRToYJRow_Any_LASX, ABGRToYJRow_LASX, 0, 4, 1, 31)
1138
+ #endif
1139
+ #ifdef HAS_BGRATOYROW_NEON
1140
+ ANY11(BGRAToYRow_Any_NEON, BGRAToYRow_NEON, 0, 4, 1, 15)
1141
+ #endif
1142
+ #ifdef HAS_BGRATOYROW_NEON_DOTPROD
1143
+ ANY11(BGRAToYRow_Any_NEON_DotProd, BGRAToYRow_NEON_DotProd, 0, 4, 1, 15)
1144
+ #endif
1145
+ #ifdef HAS_BGRATOYROW_LSX
1146
+ ANY11(BGRAToYRow_Any_LSX, BGRAToYRow_LSX, 0, 4, 1, 15)
1147
+ #endif
1148
+ #ifdef HAS_BGRATOYROW_LASX
1149
+ ANY11(BGRAToYRow_Any_LASX, BGRAToYRow_LASX, 0, 4, 1, 31)
1150
+ #endif
1151
+ #ifdef HAS_ABGRTOYROW_NEON
1152
+ ANY11(ABGRToYRow_Any_NEON, ABGRToYRow_NEON, 0, 4, 1, 15)
1153
+ #endif
1154
+ #ifdef HAS_ABGRTOYROW_NEON_DOTPROD
1155
+ ANY11(ABGRToYRow_Any_NEON_DotProd, ABGRToYRow_NEON_DotProd, 0, 4, 1, 15)
1156
+ #endif
1157
+ #ifdef HAS_ABGRTOYROW_LSX
1158
+ ANY11(ABGRToYRow_Any_LSX, ABGRToYRow_LSX, 0, 4, 1, 15)
1159
+ #endif
1160
+ #ifdef HAS_ABGRTOYROW_LASX
1161
+ ANY11(ABGRToYRow_Any_LASX, ABGRToYRow_LASX, 0, 4, 1, 31)
1162
+ #endif
1163
+ #ifdef HAS_RGBATOYROW_NEON
1164
+ ANY11(RGBAToYRow_Any_NEON, RGBAToYRow_NEON, 0, 4, 1, 15)
1165
+ #endif
1166
+ #ifdef HAS_RGBATOYROW_NEON_DOTPROD
1167
+ ANY11(RGBAToYRow_Any_NEON_DotProd, RGBAToYRow_NEON_DotProd, 0, 4, 1, 15)
1168
+ #endif
1169
+ #ifdef HAS_RGBATOYROW_LSX
1170
+ ANY11(RGBAToYRow_Any_LSX, RGBAToYRow_LSX, 0, 4, 1, 15)
1171
+ #endif
1172
+ #ifdef HAS_RGBATOYROW_LASX
1173
+ ANY11(RGBAToYRow_Any_LASX, RGBAToYRow_LASX, 0, 4, 1, 31)
1174
+ #endif
1175
+ #ifdef HAS_RGB24TOYROW_NEON
1176
+ ANY11(RGB24ToYRow_Any_NEON, RGB24ToYRow_NEON, 0, 3, 1, 15)
1177
+ #endif
1178
+ #ifdef HAS_RGB24TOYJROW_AVX2
1179
+ ANY11(RGB24ToYJRow_Any_AVX2, RGB24ToYJRow_AVX2, 0, 3, 1, 31)
1180
+ #endif
1181
+ #ifdef HAS_RGB24TOYJROW_SSSE3
1182
+ ANY11(RGB24ToYJRow_Any_SSSE3, RGB24ToYJRow_SSSE3, 0, 3, 1, 15)
1183
+ #endif
1184
+ #ifdef HAS_RGB24TOYJROW_NEON
1185
+ ANY11(RGB24ToYJRow_Any_NEON, RGB24ToYJRow_NEON, 0, 3, 1, 15)
1186
+ #endif
1187
+ #ifdef HAS_RGB24TOYROW_LSX
1188
+ ANY11(RGB24ToYRow_Any_LSX, RGB24ToYRow_LSX, 0, 3, 1, 15)
1189
+ #endif
1190
+ #ifdef HAS_RGB24TOYJROW_LSX
1191
+ ANY11(RGB24ToYJRow_Any_LSX, RGB24ToYJRow_LSX, 0, 3, 1, 15)
1192
+ #endif
1193
+ #ifdef HAS_RGB24TOYJROW_LASX
1194
+ ANY11(RGB24ToYJRow_Any_LASX, RGB24ToYJRow_LASX, 0, 3, 1, 31)
1195
+ #endif
1196
+ #ifdef HAS_RGB24TOYROW_LASX
1197
+ ANY11(RGB24ToYRow_Any_LASX, RGB24ToYRow_LASX, 0, 3, 1, 31)
1198
+ #endif
1199
+ #ifdef HAS_RAWTOYROW_NEON
1200
+ ANY11(RAWToYRow_Any_NEON, RAWToYRow_NEON, 0, 3, 1, 15)
1201
+ #endif
1202
+ #ifdef HAS_RAWTOYJROW_AVX2
1203
+ ANY11(RAWToYJRow_Any_AVX2, RAWToYJRow_AVX2, 0, 3, 1, 31)
1204
+ #endif
1205
+ #ifdef HAS_RAWTOYJROW_SSSE3
1206
+ ANY11(RAWToYJRow_Any_SSSE3, RAWToYJRow_SSSE3, 0, 3, 1, 15)
1207
+ #endif
1208
+ #ifdef HAS_RAWTOYJROW_NEON
1209
+ ANY11(RAWToYJRow_Any_NEON, RAWToYJRow_NEON, 0, 3, 1, 15)
1210
+ #endif
1211
+ #ifdef HAS_RAWTOYROW_LSX
1212
+ ANY11(RAWToYRow_Any_LSX, RAWToYRow_LSX, 0, 3, 1, 15)
1213
+ #endif
1214
+ #ifdef HAS_RAWTOYROW_LASX
1215
+ ANY11(RAWToYRow_Any_LASX, RAWToYRow_LASX, 0, 3, 1, 31)
1216
+ #endif
1217
+ #ifdef HAS_RAWTOYJROW_LSX
1218
+ ANY11(RAWToYJRow_Any_LSX, RAWToYJRow_LSX, 0, 3, 1, 15)
1219
+ #endif
1220
+ #ifdef HAS_RAWTOYJROW_LASX
1221
+ ANY11(RAWToYJRow_Any_LASX, RAWToYJRow_LASX, 0, 3, 1, 31)
1222
+ #endif
1223
+ #ifdef HAS_RGB565TOYROW_NEON
1224
+ ANY11(RGB565ToYRow_Any_NEON, RGB565ToYRow_NEON, 0, 2, 1, 15)
1225
+ #endif
1226
+ #ifdef HAS_RGB565TOYROW_LSX
1227
+ ANY11(RGB565ToYRow_Any_LSX, RGB565ToYRow_LSX, 0, 2, 1, 15)
1228
+ #endif
1229
+ #ifdef HAS_RGB565TOYROW_LASX
1230
+ ANY11(RGB565ToYRow_Any_LASX, RGB565ToYRow_LASX, 0, 2, 1, 31)
1231
+ #endif
1232
+ #ifdef HAS_ARGB1555TOYROW_NEON
1233
+ #ifdef __aarch64__
1234
+ ANY11(ARGB1555ToYRow_Any_NEON, ARGB1555ToYRow_NEON, 0, 2, 1, 15)
1235
+ #else
1236
+ ANY11(ARGB1555ToYRow_Any_NEON, ARGB1555ToYRow_NEON, 0, 2, 1, 7)
1237
+ #endif
1238
+ #endif
1239
+ #ifdef HAS_ARGB1555TOYROW_LSX
1240
+ ANY11(ARGB1555ToYRow_Any_LSX, ARGB1555ToYRow_LSX, 0, 2, 1, 15)
1241
+ #endif
1242
+ #ifdef HAS_ARGB1555TOYROW_LASX
1243
+ ANY11(ARGB1555ToYRow_Any_LASX, ARGB1555ToYRow_LASX, 0, 2, 1, 31)
1244
+ #endif
1245
+ #ifdef HAS_ARGB4444TOYROW_NEON
1246
+ #ifdef __aarch64__
1247
+ ANY11(ARGB4444ToYRow_Any_NEON, ARGB4444ToYRow_NEON, 0, 2, 1, 15)
1248
+ #else
1249
+ ANY11(ARGB4444ToYRow_Any_NEON, ARGB4444ToYRow_NEON, 0, 2, 1, 7)
1250
+ #endif
1251
+ #endif
1252
+ #ifdef HAS_YUY2TOYROW_NEON
1253
+ ANY11(YUY2ToYRow_Any_NEON, YUY2ToYRow_NEON, 1, 4, 1, 15)
1254
+ #endif
1255
+ #ifdef HAS_UYVYTOYROW_NEON
1256
+ ANY11(UYVYToYRow_Any_NEON, UYVYToYRow_NEON, 1, 4, 1, 15)
1257
+ #endif
1258
+ #ifdef HAS_YUY2TOYROW_LSX
1259
+ ANY11(YUY2ToYRow_Any_LSX, YUY2ToYRow_LSX, 1, 4, 1, 15)
1260
+ #endif
1261
+ #ifdef HAS_YUY2TOYROW_LASX
1262
+ ANY11(YUY2ToYRow_Any_LASX, YUY2ToYRow_LASX, 1, 4, 1, 31)
1263
+ #endif
1264
+ #ifdef HAS_UYVYTOYROW_LSX
1265
+ ANY11(UYVYToYRow_Any_LSX, UYVYToYRow_LSX, 1, 4, 1, 15)
1266
+ #endif
1267
+ #ifdef HAS_UYVYTOYROW_LASX
1268
+ ANY11(UYVYToYRow_Any_LASX, UYVYToYRow_LASX, 1, 4, 1, 31)
1269
+ #endif
1270
+ #ifdef HAS_AYUVTOYROW_NEON
1271
+ ANY11(AYUVToYRow_Any_NEON, AYUVToYRow_NEON, 0, 4, 1, 15)
1272
+ #endif
1273
+ #ifdef HAS_SWAPUVROW_SSSE3
1274
+ ANY11(SwapUVRow_Any_SSSE3, SwapUVRow_SSSE3, 0, 2, 2, 15)
1275
+ #endif
1276
+ #ifdef HAS_SWAPUVROW_AVX2
1277
+ ANY11(SwapUVRow_Any_AVX2, SwapUVRow_AVX2, 0, 2, 2, 31)
1278
+ #endif
1279
+ #ifdef HAS_SWAPUVROW_NEON
1280
+ ANY11(SwapUVRow_Any_NEON, SwapUVRow_NEON, 0, 2, 2, 15)
1281
+ #endif
1282
+ #ifdef HAS_RGB24TOARGBROW_NEON
1283
+ ANY11(RGB24ToARGBRow_Any_NEON, RGB24ToARGBRow_NEON, 0, 3, 4, 7)
1284
+ #endif
1285
+ #ifdef HAS_RGB24TOARGBROW_LSX
1286
+ ANY11(RGB24ToARGBRow_Any_LSX, RGB24ToARGBRow_LSX, 0, 3, 4, 15)
1287
+ #endif
1288
+ #ifdef HAS_RGB24TOARGBROW_LASX
1289
+ ANY11(RGB24ToARGBRow_Any_LASX, RGB24ToARGBRow_LASX, 0, 3, 4, 31)
1290
+ #endif
1291
+ #ifdef HAS_RAWTOARGBROW_NEON
1292
+ ANY11(RAWToARGBRow_Any_NEON, RAWToARGBRow_NEON, 0, 3, 4, 7)
1293
+ #endif
1294
+ #ifdef HAS_RAWTORGBAROW_NEON
1295
+ ANY11(RAWToRGBARow_Any_NEON, RAWToRGBARow_NEON, 0, 3, 4, 7)
1296
+ #endif
1297
+ #ifdef HAS_RAWTOARGBROW_LSX
1298
+ ANY11(RAWToARGBRow_Any_LSX, RAWToARGBRow_LSX, 0, 3, 4, 15)
1299
+ #endif
1300
+ #ifdef HAS_RAWTOARGBROW_LASX
1301
+ ANY11(RAWToARGBRow_Any_LASX, RAWToARGBRow_LASX, 0, 3, 4, 31)
1302
+ #endif
1303
+ #ifdef HAS_RGB565TOARGBROW_NEON
1304
+ ANY11(RGB565ToARGBRow_Any_NEON, RGB565ToARGBRow_NEON, 0, 2, 4, 15)
1305
+ #endif
1306
+ #ifdef HAS_RGB565TOARGBROW_LSX
1307
+ ANY11(RGB565ToARGBRow_Any_LSX, RGB565ToARGBRow_LSX, 0, 2, 4, 15)
1308
+ #endif
1309
+ #ifdef HAS_RGB565TOARGBROW_LASX
1310
+ ANY11(RGB565ToARGBRow_Any_LASX, RGB565ToARGBRow_LASX, 0, 2, 4, 31)
1311
+ #endif
1312
+ #ifdef HAS_ARGB1555TOARGBROW_NEON
1313
+ ANY11(ARGB1555ToARGBRow_Any_NEON, ARGB1555ToARGBRow_NEON, 0, 2, 4, 15)
1314
+ #endif
1315
+ #ifdef HAS_ARGB1555TOARGBROW_LSX
1316
+ ANY11(ARGB1555ToARGBRow_Any_LSX, ARGB1555ToARGBRow_LSX, 0, 2, 4, 15)
1317
+ #endif
1318
+ #ifdef HAS_ARGB1555TOARGBROW_LASX
1319
+ ANY11(ARGB1555ToARGBRow_Any_LASX, ARGB1555ToARGBRow_LASX, 0, 2, 4, 31)
1320
+ #endif
1321
+ #ifdef HAS_ARGB4444TOARGBROW_NEON
1322
+ ANY11(ARGB4444ToARGBRow_Any_NEON, ARGB4444ToARGBRow_NEON, 0, 2, 4, 7)
1323
+ #endif
1324
+ #ifdef HAS_ARGB4444TOARGBROW_LSX
1325
+ ANY11(ARGB4444ToARGBRow_Any_LSX, ARGB4444ToARGBRow_LSX, 0, 2, 4, 15)
1326
+ #endif
1327
+ #ifdef HAS_ARGB4444TOARGBROW_LASX
1328
+ ANY11(ARGB4444ToARGBRow_Any_LASX, ARGB4444ToARGBRow_LASX, 0, 2, 4, 31)
1329
+ #endif
1330
+ #ifdef HAS_ARGBATTENUATEROW_SSSE3
1331
+ ANY11(ARGBAttenuateRow_Any_SSSE3, ARGBAttenuateRow_SSSE3, 0, 4, 4, 3)
1332
+ #endif
1333
+ #ifdef HAS_ARGBUNATTENUATEROW_SSE2
1334
+ ANY11(ARGBUnattenuateRow_Any_SSE2, ARGBUnattenuateRow_SSE2, 0, 4, 4, 3)
1335
+ #endif
1336
+ #ifdef HAS_ARGBATTENUATEROW_AVX2
1337
+ ANY11(ARGBAttenuateRow_Any_AVX2, ARGBAttenuateRow_AVX2, 0, 4, 4, 7)
1338
+ #endif
1339
+ #ifdef HAS_ARGBUNATTENUATEROW_AVX2
1340
+ ANY11(ARGBUnattenuateRow_Any_AVX2, ARGBUnattenuateRow_AVX2, 0, 4, 4, 7)
1341
+ #endif
1342
+ #ifdef HAS_ARGBATTENUATEROW_NEON
1343
+ ANY11(ARGBAttenuateRow_Any_NEON, ARGBAttenuateRow_NEON, 0, 4, 4, 7)
1344
+ #endif
1345
+ #ifdef HAS_ARGBATTENUATEROW_LSX
1346
+ ANY11(ARGBAttenuateRow_Any_LSX, ARGBAttenuateRow_LSX, 0, 4, 4, 7)
1347
+ #endif
1348
+ #ifdef HAS_ARGBATTENUATEROW_LASX
1349
+ ANY11(ARGBAttenuateRow_Any_LASX, ARGBAttenuateRow_LASX, 0, 4, 4, 15)
1350
+ #endif
1351
+ #ifdef HAS_ARGBEXTRACTALPHAROW_SSE2
1352
+ ANY11(ARGBExtractAlphaRow_Any_SSE2, ARGBExtractAlphaRow_SSE2, 0, 4, 1, 7)
1353
+ #endif
1354
+ #ifdef HAS_ARGBEXTRACTALPHAROW_AVX2
1355
+ ANY11(ARGBExtractAlphaRow_Any_AVX2, ARGBExtractAlphaRow_AVX2, 0, 4, 1, 31)
1356
+ #endif
1357
+ #ifdef HAS_ARGBEXTRACTALPHAROW_NEON
1358
+ ANY11(ARGBExtractAlphaRow_Any_NEON, ARGBExtractAlphaRow_NEON, 0, 4, 1, 15)
1359
+ #endif
1360
+ #ifdef HAS_ARGBEXTRACTALPHAROW_LSX
1361
+ ANY11(ARGBExtractAlphaRow_Any_LSX, ARGBExtractAlphaRow_LSX, 0, 4, 1, 15)
1362
+ #endif
1363
+ #undef ANY11
1364
+
1365
+ // Any 1 to 1 blended. Destination is read, modify, write.
1366
+ #define ANY11B(NAMEANY, ANY_SIMD, UVSHIFT, SBPP, BPP, MASK) \
1367
+ void NAMEANY(const uint8_t* src_ptr, uint8_t* dst_ptr, int width) { \
1368
+ SIMD_ALIGNED(uint8_t vin[64]); \
1369
+ SIMD_ALIGNED(uint8_t vout[64]); \
1370
+ memset(vin, 0, sizeof(vin)); /* for msan */ \
1371
+ memset(vout, 0, sizeof(vout)); /* for msan */ \
1372
+ int r = width & MASK; \
1373
+ int n = width & ~MASK; \
1374
+ if (n > 0) { \
1375
+ ANY_SIMD(src_ptr, dst_ptr, n); \
1376
+ } \
1377
+ ptrdiff_t np = n; \
1378
+ memcpy(vin, src_ptr + (np >> UVSHIFT) * SBPP, SS(r, UVSHIFT) * SBPP); \
1379
+ memcpy(vout, dst_ptr + np * BPP, r * BPP); \
1380
+ ANY_SIMD(vin, vout, MASK + 1); \
1381
+ memcpy(dst_ptr + np * BPP, vout, r * BPP); \
1382
+ }
1383
+
1384
+ #ifdef HAS_ARGBCOPYALPHAROW_AVX2
1385
+ ANY11B(ARGBCopyAlphaRow_Any_AVX2, ARGBCopyAlphaRow_AVX2, 0, 4, 4, 15)
1386
+ #endif
1387
+ #ifdef HAS_ARGBCOPYALPHAROW_SSE2
1388
+ ANY11B(ARGBCopyAlphaRow_Any_SSE2, ARGBCopyAlphaRow_SSE2, 0, 4, 4, 7)
1389
+ #endif
1390
+ #ifdef HAS_ARGBCOPYYTOALPHAROW_AVX2
1391
+ ANY11B(ARGBCopyYToAlphaRow_Any_AVX2, ARGBCopyYToAlphaRow_AVX2, 0, 1, 4, 15)
1392
+ #endif
1393
+ #ifdef HAS_ARGBCOPYYTOALPHAROW_SSE2
1394
+ ANY11B(ARGBCopyYToAlphaRow_Any_SSE2, ARGBCopyYToAlphaRow_SSE2, 0, 1, 4, 7)
1395
+ #endif
1396
+ #undef ANY11B
1397
+
1398
+ // Any 1 to 1 with parameter.
1399
+ #define ANY11P(NAMEANY, ANY_SIMD, T, SBPP, BPP, MASK) \
1400
+ void NAMEANY(const uint8_t* src_ptr, uint8_t* dst_ptr, T param, int width) { \
1401
+ SIMD_ALIGNED(uint8_t vin[64]); \
1402
+ SIMD_ALIGNED(uint8_t vout[64]); \
1403
+ memset(vin, 0, sizeof(vin)); /* for msan */ \
1404
+ int r = width & MASK; \
1405
+ int n = width & ~MASK; \
1406
+ if (n > 0) { \
1407
+ ANY_SIMD(src_ptr, dst_ptr, param, n); \
1408
+ } \
1409
+ ptrdiff_t np = n; \
1410
+ memcpy(vin, src_ptr + np * SBPP, r * SBPP); \
1411
+ ANY_SIMD(vin, vout, param, MASK + 1); \
1412
+ memcpy(dst_ptr + np * BPP, vout, r * BPP); \
1413
+ }
1414
+
1415
+ #if defined(HAS_I400TOARGBROW_SSE2)
1416
+ ANY11P(I400ToARGBRow_Any_SSE2,
1417
+ I400ToARGBRow_SSE2,
1418
+ const struct YuvConstants*,
1419
+ 1,
1420
+ 4,
1421
+ 7)
1422
+ #endif
1423
+ #if defined(HAS_I400TOARGBROW_AVX2)
1424
+ ANY11P(I400ToARGBRow_Any_AVX2,
1425
+ I400ToARGBRow_AVX2,
1426
+ const struct YuvConstants*,
1427
+ 1,
1428
+ 4,
1429
+ 15)
1430
+ #endif
1431
+ #if defined(HAS_I400TOARGBROW_NEON)
1432
+ ANY11P(I400ToARGBRow_Any_NEON,
1433
+ I400ToARGBRow_NEON,
1434
+ const struct YuvConstants*,
1435
+ 1,
1436
+ 4,
1437
+ 7)
1438
+ #endif
1439
+ #if defined(HAS_I400TOARGBROW_LSX)
1440
+ ANY11P(I400ToARGBRow_Any_LSX,
1441
+ I400ToARGBRow_LSX,
1442
+ const struct YuvConstants*,
1443
+ 1,
1444
+ 4,
1445
+ 15)
1446
+ #endif
1447
+
1448
+ #if defined(HAS_ARGBTORGB565DITHERROW_SSE2)
1449
+ ANY11P(ARGBToRGB565DitherRow_Any_SSE2,
1450
+ ARGBToRGB565DitherRow_SSE2,
1451
+ const uint32_t,
1452
+ 4,
1453
+ 2,
1454
+ 3)
1455
+ #endif
1456
+ #if defined(HAS_ARGBTORGB565DITHERROW_AVX2)
1457
+ ANY11P(ARGBToRGB565DitherRow_Any_AVX2,
1458
+ ARGBToRGB565DitherRow_AVX2,
1459
+ const uint32_t,
1460
+ 4,
1461
+ 2,
1462
+ 7)
1463
+ #endif
1464
+ #if defined(HAS_ARGBTORGB565DITHERROW_NEON)
1465
+ ANY11P(ARGBToRGB565DitherRow_Any_NEON,
1466
+ ARGBToRGB565DitherRow_NEON,
1467
+ const uint32_t,
1468
+ 4,
1469
+ 2,
1470
+ 7)
1471
+ #endif
1472
+ #if defined(HAS_ARGBTORGB565DITHERROW_LSX)
1473
+ ANY11P(ARGBToRGB565DitherRow_Any_LSX,
1474
+ ARGBToRGB565DitherRow_LSX,
1475
+ const uint32_t,
1476
+ 4,
1477
+ 2,
1478
+ 7)
1479
+ #endif
1480
+ #if defined(HAS_ARGBTORGB565DITHERROW_LASX)
1481
+ ANY11P(ARGBToRGB565DitherRow_Any_LASX,
1482
+ ARGBToRGB565DitherRow_LASX,
1483
+ const uint32_t,
1484
+ 4,
1485
+ 2,
1486
+ 15)
1487
+ #endif
1488
+ #ifdef HAS_ARGBSHUFFLEROW_SSSE3
1489
+ ANY11P(ARGBShuffleRow_Any_SSSE3, ARGBShuffleRow_SSSE3, const uint8_t*, 4, 4, 7)
1490
+ #endif
1491
+ #ifdef HAS_ARGBSHUFFLEROW_AVX2
1492
+ ANY11P(ARGBShuffleRow_Any_AVX2, ARGBShuffleRow_AVX2, const uint8_t*, 4, 4, 15)
1493
+ #endif
1494
+ #ifdef HAS_ARGBSHUFFLEROW_NEON
1495
+ ANY11P(ARGBShuffleRow_Any_NEON, ARGBShuffleRow_NEON, const uint8_t*, 4, 4, 3)
1496
+ #endif
1497
+ #ifdef HAS_ARGBSHUFFLEROW_LSX
1498
+ ANY11P(ARGBShuffleRow_Any_LSX, ARGBShuffleRow_LSX, const uint8_t*, 4, 4, 7)
1499
+ #endif
1500
+ #ifdef HAS_ARGBSHUFFLEROW_LASX
1501
+ ANY11P(ARGBShuffleRow_Any_LASX, ARGBShuffleRow_LASX, const uint8_t*, 4, 4, 15)
1502
+ #endif
1503
+ #undef ANY11P
1504
+ #undef ANY11P
1505
+
1506
+ // Any 1 to 1 with type
1507
+ #define ANY11T(NAMEANY, ANY_SIMD, SBPP, BPP, STYPE, DTYPE, MASK) \
1508
+ void NAMEANY(const STYPE* src_ptr, DTYPE* dst_ptr, int width) { \
1509
+ SIMD_ALIGNED(uint8_t vin[(MASK + 1) * SBPP]); \
1510
+ SIMD_ALIGNED(uint8_t vout[(MASK + 1) * BPP]); \
1511
+ memset(vin, 0, sizeof(vin)); /* for msan */ \
1512
+ int r = width & MASK; \
1513
+ int n = width & ~MASK; \
1514
+ if (n > 0) { \
1515
+ ANY_SIMD(src_ptr, dst_ptr, n); \
1516
+ } \
1517
+ ptrdiff_t np = n; \
1518
+ memcpy(vin, (uint8_t*)(src_ptr) + np * SBPP, r * SBPP); \
1519
+ ANY_SIMD((STYPE*)vin, (DTYPE*)vout, MASK + 1); \
1520
+ memcpy((uint8_t*)(dst_ptr) + np * BPP, vout, r * BPP); \
1521
+ }
1522
+
1523
+ #ifdef HAS_ARGBTOAR64ROW_SSSE3
1524
+ ANY11T(ARGBToAR64Row_Any_SSSE3, ARGBToAR64Row_SSSE3, 4, 8, uint8_t, uint16_t, 3)
1525
+ #endif
1526
+
1527
+ #ifdef HAS_ARGBTOAB64ROW_SSSE3
1528
+ ANY11T(ARGBToAB64Row_Any_SSSE3, ARGBToAB64Row_SSSE3, 4, 8, uint8_t, uint16_t, 3)
1529
+ #endif
1530
+
1531
+ #ifdef HAS_AR64TOARGBROW_SSSE3
1532
+ ANY11T(AR64ToARGBRow_Any_SSSE3, AR64ToARGBRow_SSSE3, 8, 4, uint16_t, uint8_t, 3)
1533
+ #endif
1534
+
1535
+ #ifdef HAS_ARGBTOAR64ROW_SSSE3
1536
+ ANY11T(AB64ToARGBRow_Any_SSSE3, AB64ToARGBRow_SSSE3, 8, 4, uint16_t, uint8_t, 3)
1537
+ #endif
1538
+
1539
+ #ifdef HAS_ARGBTOAR64ROW_AVX2
1540
+ ANY11T(ARGBToAR64Row_Any_AVX2, ARGBToAR64Row_AVX2, 4, 8, uint8_t, uint16_t, 7)
1541
+ #endif
1542
+
1543
+ #ifdef HAS_ARGBTOAB64ROW_AVX2
1544
+ ANY11T(ARGBToAB64Row_Any_AVX2, ARGBToAB64Row_AVX2, 4, 8, uint8_t, uint16_t, 7)
1545
+ #endif
1546
+
1547
+ #ifdef HAS_AR64TOARGBROW_AVX2
1548
+ ANY11T(AR64ToARGBRow_Any_AVX2, AR64ToARGBRow_AVX2, 8, 4, uint16_t, uint8_t, 7)
1549
+ #endif
1550
+
1551
+ #ifdef HAS_ARGBTOAR64ROW_AVX2
1552
+ ANY11T(AB64ToARGBRow_Any_AVX2, AB64ToARGBRow_AVX2, 8, 4, uint16_t, uint8_t, 7)
1553
+ #endif
1554
+
1555
+ #ifdef HAS_ARGBTOAR64ROW_NEON
1556
+ ANY11T(ARGBToAR64Row_Any_NEON, ARGBToAR64Row_NEON, 4, 8, uint8_t, uint16_t, 7)
1557
+ #endif
1558
+
1559
+ #ifdef HAS_ARGBTOAB64ROW_NEON
1560
+ ANY11T(ARGBToAB64Row_Any_NEON, ARGBToAB64Row_NEON, 4, 8, uint8_t, uint16_t, 7)
1561
+ #endif
1562
+
1563
+ #ifdef HAS_AR64TOARGBROW_NEON
1564
+ ANY11T(AR64ToARGBRow_Any_NEON, AR64ToARGBRow_NEON, 8, 4, uint16_t, uint8_t, 7)
1565
+ #endif
1566
+
1567
+ #ifdef HAS_ARGBTOAR64ROW_NEON
1568
+ ANY11T(AB64ToARGBRow_Any_NEON, AB64ToARGBRow_NEON, 8, 4, uint16_t, uint8_t, 7)
1569
+ #endif
1570
+
1571
+ #undef ANY11T
1572
+
1573
+ // Any 1 to 1 with parameter and shorts. BPP measures in shorts.
1574
+ #define ANY11C(NAMEANY, ANY_SIMD, SBPP, BPP, STYPE, DTYPE, MASK) \
1575
+ void NAMEANY(const STYPE* src_ptr, DTYPE* dst_ptr, int scale, int width) { \
1576
+ SIMD_ALIGNED(STYPE vin[64]); \
1577
+ SIMD_ALIGNED(DTYPE vout[64]); \
1578
+ memset(vin, 0, sizeof(vin)); /* for msan */ \
1579
+ int r = width & MASK; \
1580
+ int n = width & ~MASK; \
1581
+ if (n > 0) { \
1582
+ ANY_SIMD(src_ptr, dst_ptr, scale, n); \
1583
+ } \
1584
+ ptrdiff_t np = n; \
1585
+ memcpy(vin, src_ptr + np, r * SBPP); \
1586
+ ANY_SIMD(vin, vout, scale, MASK + 1); \
1587
+ memcpy(dst_ptr + np, vout, r * BPP); \
1588
+ }
1589
+
1590
+ #ifdef HAS_CONVERT16TO8ROW_SSSE3
1591
+ ANY11C(Convert16To8Row_Any_SSSE3,
1592
+ Convert16To8Row_SSSE3,
1593
+ 2,
1594
+ 1,
1595
+ uint16_t,
1596
+ uint8_t,
1597
+ 15)
1598
+ #endif
1599
+ #ifdef HAS_CONVERT16TO8ROW_AVX2
1600
+ ANY11C(Convert16To8Row_Any_AVX2,
1601
+ Convert16To8Row_AVX2,
1602
+ 2,
1603
+ 1,
1604
+ uint16_t,
1605
+ uint8_t,
1606
+ 31)
1607
+ #endif
1608
+ #ifdef HAS_CONVERT16TO8ROW_AVX512BW
1609
+ ANY11C(Convert16To8Row_Any_AVX512BW,
1610
+ Convert16To8Row_AVX512BW,
1611
+ 2,
1612
+ 1,
1613
+ uint16_t,
1614
+ uint8_t,
1615
+ 63)
1616
+ #endif
1617
+ #ifdef HAS_CONVERT16TO8ROW_NEON
1618
+ ANY11C(Convert16To8Row_Any_NEON,
1619
+ Convert16To8Row_NEON,
1620
+ 2,
1621
+ 1,
1622
+ uint16_t,
1623
+ uint8_t,
1624
+ 15)
1625
+ #endif
1626
+ #ifdef HAS_CONVERT8TO16ROW_SSE2
1627
+ ANY11C(Convert8To16Row_Any_SSE2,
1628
+ Convert8To16Row_SSE2,
1629
+ 1,
1630
+ 2,
1631
+ uint8_t,
1632
+ uint16_t,
1633
+ 15)
1634
+ #endif
1635
+ #ifdef HAS_CONVERT8TO16ROW_AVX2
1636
+ ANY11C(Convert8To16Row_Any_AVX2,
1637
+ Convert8To16Row_AVX2,
1638
+ 1,
1639
+ 2,
1640
+ uint8_t,
1641
+ uint16_t,
1642
+ 31)
1643
+ #endif
1644
+ #ifdef HAS_CONVERT8TO16ROW_NEON
1645
+ ANY11C(Convert8To16Row_Any_NEON,
1646
+ Convert8To16Row_NEON,
1647
+ 1,
1648
+ 2,
1649
+ uint8_t,
1650
+ uint16_t,
1651
+ 15)
1652
+ #endif
1653
+ #ifdef HAS_MULTIPLYROW_16_AVX2
1654
+ ANY11C(MultiplyRow_16_Any_AVX2,
1655
+ MultiplyRow_16_AVX2,
1656
+ 2,
1657
+ 2,
1658
+ uint16_t,
1659
+ uint16_t,
1660
+ 31)
1661
+ #endif
1662
+ #ifdef HAS_MULTIPLYROW_16_NEON
1663
+ ANY11C(MultiplyRow_16_Any_NEON,
1664
+ MultiplyRow_16_NEON,
1665
+ 2,
1666
+ 2,
1667
+ uint16_t,
1668
+ uint16_t,
1669
+ 15)
1670
+ #endif
1671
+ #ifdef HAS_DIVIDEROW_16_AVX2
1672
+ ANY11C(DivideRow_16_Any_AVX2, DivideRow_16_AVX2, 2, 2, uint16_t, uint16_t, 31)
1673
+ #endif
1674
+ #ifdef HAS_DIVIDEROW_16_NEON
1675
+ ANY11C(DivideRow_16_Any_NEON, DivideRow_16_NEON, 2, 2, uint16_t, uint16_t, 15)
1676
+ #endif
1677
+ #undef ANY11C
1678
+
1679
+ // Any 1 to 1 with parameter and shorts. BPP measures in shorts.
1680
+ #define ANY11SB(NAMEANY, ANY_SIMD, SBPP, BPP, STYPE, DTYPE, MASK) \
1681
+ void NAMEANY(const STYPE* src_ptr, DTYPE* dst_ptr, int scale, int bias, \
1682
+ int width) { \
1683
+ SIMD_ALIGNED(STYPE vin[64]); \
1684
+ SIMD_ALIGNED(DTYPE vout[64]); \
1685
+ memset(vin, 0, sizeof(vin)); /* for msan */ \
1686
+ int r = width & MASK; \
1687
+ int n = width & ~MASK; \
1688
+ if (n > 0) { \
1689
+ ANY_SIMD(src_ptr, dst_ptr, scale, bias, n); \
1690
+ } \
1691
+ ptrdiff_t np = n; \
1692
+ memcpy(vin, src_ptr + np, r * SBPP); \
1693
+ ANY_SIMD(vin, vout, scale, bias, MASK + 1); \
1694
+ memcpy(dst_ptr + np, vout, r * BPP); \
1695
+ }
1696
+
1697
+ #ifdef HAS_CONVERT8TO8ROW_NEON
1698
+ ANY11SB(Convert8To8Row_Any_NEON,
1699
+ Convert8To8Row_NEON,
1700
+ 1,
1701
+ 1,
1702
+ uint8_t,
1703
+ uint8_t,
1704
+ 31)
1705
+ #endif
1706
+ #ifdef HAS_CONVERT8TO8ROW_AVX2
1707
+ ANY11SB(Convert8To8Row_Any_AVX2,
1708
+ Convert8To8Row_AVX2,
1709
+ 1,
1710
+ 1,
1711
+ uint8_t,
1712
+ uint8_t,
1713
+ 31)
1714
+ #endif
1715
+ #undef ANY11B
1716
+
1717
+ // Any 1 to 1 with parameter and shorts to byte. BPP measures in shorts.
1718
+ #define ANY11P16(NAMEANY, ANY_SIMD, ST, T, SBPP, BPP, MASK) \
1719
+ void NAMEANY(const ST* src_ptr, T* dst_ptr, float param, int width) { \
1720
+ SIMD_ALIGNED(ST vin[32]); \
1721
+ SIMD_ALIGNED(T vout[32]); \
1722
+ memset(vin, 0, sizeof(vin)); /* for msan */ \
1723
+ int r = width & MASK; \
1724
+ int n = width & ~MASK; \
1725
+ if (n > 0) { \
1726
+ ANY_SIMD(src_ptr, dst_ptr, param, n); \
1727
+ } \
1728
+ ptrdiff_t np = n; \
1729
+ memcpy(vin, src_ptr + np, r * SBPP); \
1730
+ ANY_SIMD(vin, vout, param, MASK + 1); \
1731
+ memcpy(dst_ptr + np, vout, r * BPP); \
1732
+ }
1733
+
1734
+ #ifdef HAS_HALFFLOATROW_SSE2
1735
+ ANY11P16(HalfFloatRow_Any_SSE2, HalfFloatRow_SSE2, uint16_t, uint16_t, 2, 2, 7)
1736
+ #endif
1737
+ #ifdef HAS_HALFFLOATROW_AVX2
1738
+ ANY11P16(HalfFloatRow_Any_AVX2, HalfFloatRow_AVX2, uint16_t, uint16_t, 2, 2, 15)
1739
+ #endif
1740
+ #ifdef HAS_HALFFLOATROW_F16C
1741
+ ANY11P16(HalfFloatRow_Any_F16C, HalfFloatRow_F16C, uint16_t, uint16_t, 2, 2, 15)
1742
+ ANY11P16(HalfFloat1Row_Any_F16C,
1743
+ HalfFloat1Row_F16C,
1744
+ uint16_t,
1745
+ uint16_t,
1746
+ 2,
1747
+ 2,
1748
+ 15)
1749
+ #endif
1750
+ #ifdef HAS_HALFFLOATROW_NEON
1751
+ ANY11P16(HalfFloatRow_Any_NEON, HalfFloatRow_NEON, uint16_t, uint16_t, 2, 2, 15)
1752
+ #endif
1753
+ #ifdef HAS_BYTETOFLOATROW_NEON
1754
+ ANY11P16(ByteToFloatRow_Any_NEON, ByteToFloatRow_NEON, uint8_t, float, 1, 3, 7)
1755
+ #endif
1756
+ #ifdef HAS_HALFFLOATROW_LSX
1757
+ ANY11P16(HalfFloatRow_Any_LSX, HalfFloatRow_LSX, uint16_t, uint16_t, 2, 2, 31)
1758
+ #endif
1759
+ #undef ANY11P16
1760
+
1761
+ // Any 1 to 1 with yuvconstants
1762
+ #define ANY11C(NAMEANY, ANY_SIMD, UVSHIFT, SBPP, BPP, MASK) \
1763
+ void NAMEANY(const uint8_t* src_ptr, uint8_t* dst_ptr, \
1764
+ const struct YuvConstants* yuvconstants, int width) { \
1765
+ SIMD_ALIGNED(uint8_t vin[128]); \
1766
+ SIMD_ALIGNED(uint8_t vout[128]); \
1767
+ memset(vin, 0, sizeof(vin)); /* for YUY2 and msan */ \
1768
+ int r = width & MASK; \
1769
+ int n = width & ~MASK; \
1770
+ if (n > 0) { \
1771
+ ANY_SIMD(src_ptr, dst_ptr, yuvconstants, n); \
1772
+ } \
1773
+ ptrdiff_t np = n; \
1774
+ memcpy(vin, src_ptr + (np >> UVSHIFT) * SBPP, SS(r, UVSHIFT) * SBPP); \
1775
+ ANY_SIMD(vin, vout, yuvconstants, MASK + 1); \
1776
+ memcpy(dst_ptr + np * BPP, vout, r * BPP); \
1777
+ }
1778
+
1779
+ #if defined(HAS_YUY2TOARGBROW_SSSE3)
1780
+ ANY11C(YUY2ToARGBRow_Any_SSSE3, YUY2ToARGBRow_SSSE3, 1, 4, 4, 15)
1781
+ ANY11C(UYVYToARGBRow_Any_SSSE3, UYVYToARGBRow_SSSE3, 1, 4, 4, 15)
1782
+ #endif
1783
+ #if defined(HAS_YUY2TOARGBROW_AVX2)
1784
+ ANY11C(YUY2ToARGBRow_Any_AVX2, YUY2ToARGBRow_AVX2, 1, 4, 4, 31)
1785
+ ANY11C(UYVYToARGBRow_Any_AVX2, UYVYToARGBRow_AVX2, 1, 4, 4, 31)
1786
+ #endif
1787
+ #if defined(HAS_YUY2TOARGBROW_NEON)
1788
+ ANY11C(YUY2ToARGBRow_Any_NEON, YUY2ToARGBRow_NEON, 1, 4, 4, 7)
1789
+ ANY11C(UYVYToARGBRow_Any_NEON, UYVYToARGBRow_NEON, 1, 4, 4, 7)
1790
+ #endif
1791
+ #if defined(HAS_YUY2TOARGBROW_LSX)
1792
+ ANY11C(YUY2ToARGBRow_Any_LSX, YUY2ToARGBRow_LSX, 1, 4, 4, 7)
1793
+ ANY11C(UYVYToARGBRow_Any_LSX, UYVYToARGBRow_LSX, 1, 4, 4, 7)
1794
+ #endif
1795
+ #undef ANY11C
1796
+
1797
+ // Any 1 to 1 interpolate. Takes 2 rows of source via stride.
1798
+ #define ANY11I(NAMEANY, ANY_SIMD, TD, TS, SBPP, BPP, MASK) \
1799
+ void NAMEANY(TD* dst_ptr, const TS* src_ptr, ptrdiff_t src_stride, \
1800
+ int width, int source_y_fraction) { \
1801
+ SIMD_ALIGNED(TS vin[64 * 2]); \
1802
+ SIMD_ALIGNED(TD vout[64]); \
1803
+ memset(vin, 0, sizeof(vin)); /* for msan */ \
1804
+ int r = width & MASK; \
1805
+ int n = width & ~MASK; \
1806
+ if (n > 0) { \
1807
+ ANY_SIMD(dst_ptr, src_ptr, src_stride, n, source_y_fraction); \
1808
+ } \
1809
+ ptrdiff_t np = n; \
1810
+ memcpy(vin, src_ptr + np * SBPP, r * SBPP * sizeof(TS)); \
1811
+ if (source_y_fraction) { \
1812
+ memcpy(vin + 64, src_ptr + src_stride + np * SBPP, \
1813
+ r * SBPP * sizeof(TS)); \
1814
+ } \
1815
+ ANY_SIMD(vout, vin, 64, MASK + 1, source_y_fraction); \
1816
+ memcpy(dst_ptr + np * BPP, vout, r * BPP * sizeof(TD)); \
1817
+ }
1818
+
1819
+ #ifdef HAS_INTERPOLATEROW_AVX2
1820
+ ANY11I(InterpolateRow_Any_AVX2, InterpolateRow_AVX2, uint8_t, uint8_t, 1, 1, 31)
1821
+ #endif
1822
+ #ifdef HAS_INTERPOLATEROW_SSSE3
1823
+ ANY11I(InterpolateRow_Any_SSSE3,
1824
+ InterpolateRow_SSSE3,
1825
+ uint8_t,
1826
+ uint8_t,
1827
+ 1,
1828
+ 1,
1829
+ 15)
1830
+ #endif
1831
+ #ifdef HAS_INTERPOLATEROW_NEON
1832
+ ANY11I(InterpolateRow_Any_NEON, InterpolateRow_NEON, uint8_t, uint8_t, 1, 1, 15)
1833
+ #endif
1834
+ #ifdef HAS_INTERPOLATEROW_LSX
1835
+ ANY11I(InterpolateRow_Any_LSX, InterpolateRow_LSX, uint8_t, uint8_t, 1, 1, 31)
1836
+ #endif
1837
+
1838
+ #ifdef HAS_INTERPOLATEROW_16_NEON
1839
+ ANY11I(InterpolateRow_16_Any_NEON,
1840
+ InterpolateRow_16_NEON,
1841
+ uint16_t,
1842
+ uint16_t,
1843
+ 1,
1844
+ 1,
1845
+ 7)
1846
+ #endif
1847
+ #undef ANY11I
1848
+
1849
+ // Any 1 to 1 interpolate with scale param
1850
+ #define ANY11IS(NAMEANY, ANY_SIMD, TD, TS, SBPP, BPP, MASK) \
1851
+ void NAMEANY(TD* dst_ptr, const TS* src_ptr, ptrdiff_t src_stride, \
1852
+ int scale, int width, int source_y_fraction) { \
1853
+ SIMD_ALIGNED(TS vin[64 * 2]); \
1854
+ SIMD_ALIGNED(TD vout[64]); \
1855
+ memset(vin, 0, sizeof(vin)); /* for msan */ \
1856
+ int r = width & MASK; \
1857
+ int n = width & ~MASK; \
1858
+ if (n > 0) { \
1859
+ ANY_SIMD(dst_ptr, src_ptr, src_stride, scale, n, source_y_fraction); \
1860
+ } \
1861
+ ptrdiff_t np = n; \
1862
+ memcpy(vin, src_ptr + np * SBPP, r * SBPP * sizeof(TS)); \
1863
+ if (source_y_fraction) { \
1864
+ memcpy(vin + 64, src_ptr + src_stride + np * SBPP, \
1865
+ r * SBPP * sizeof(TS)); \
1866
+ } \
1867
+ ANY_SIMD(vout, vin, 64, scale, MASK + 1, source_y_fraction); \
1868
+ memcpy(dst_ptr + np * BPP, vout, r * BPP * sizeof(TD)); \
1869
+ }
1870
+
1871
+ #ifdef HAS_INTERPOLATEROW_16TO8_NEON
1872
+ ANY11IS(InterpolateRow_16To8_Any_NEON,
1873
+ InterpolateRow_16To8_NEON,
1874
+ uint8_t,
1875
+ uint16_t,
1876
+ 1,
1877
+ 1,
1878
+ 7)
1879
+ #endif
1880
+ #ifdef HAS_INTERPOLATEROW_16TO8_AVX2
1881
+ ANY11IS(InterpolateRow_16To8_Any_AVX2,
1882
+ InterpolateRow_16To8_AVX2,
1883
+ uint8_t,
1884
+ uint16_t,
1885
+ 1,
1886
+ 1,
1887
+ 31)
1888
+ #endif
1889
+
1890
+ #undef ANY11IS
1891
+
1892
+ // Any 1 to 1 mirror.
1893
+ #define ANY11M(NAMEANY, ANY_SIMD, BPP, MASK) \
1894
+ void NAMEANY(const uint8_t* src_ptr, uint8_t* dst_ptr, int width) { \
1895
+ SIMD_ALIGNED(uint8_t vin[64]); \
1896
+ SIMD_ALIGNED(uint8_t vout[64]); \
1897
+ memset(vin, 0, sizeof(vin)); /* for msan */ \
1898
+ int r = width & MASK; \
1899
+ int n = width & ~MASK; \
1900
+ if (n > 0) { \
1901
+ ANY_SIMD(src_ptr + r * BPP, dst_ptr, n); \
1902
+ } \
1903
+ ptrdiff_t np = n; \
1904
+ memcpy(vin, src_ptr, r* BPP); \
1905
+ ANY_SIMD(vin, vout, MASK + 1); \
1906
+ memcpy(dst_ptr + np * BPP, vout + (MASK + 1 - r) * BPP, r * BPP); \
1907
+ }
1908
+
1909
+ #ifdef HAS_MIRRORROW_AVX2
1910
+ ANY11M(MirrorRow_Any_AVX2, MirrorRow_AVX2, 1, 31)
1911
+ #endif
1912
+ #ifdef HAS_MIRRORROW_SSSE3
1913
+ ANY11M(MirrorRow_Any_SSSE3, MirrorRow_SSSE3, 1, 15)
1914
+ #endif
1915
+ #ifdef HAS_MIRRORROW_NEON
1916
+ ANY11M(MirrorRow_Any_NEON, MirrorRow_NEON, 1, 31)
1917
+ #endif
1918
+ #ifdef HAS_MIRRORROW_LSX
1919
+ ANY11M(MirrorRow_Any_LSX, MirrorRow_LSX, 1, 31)
1920
+ #endif
1921
+ #ifdef HAS_MIRRORROW_LASX
1922
+ ANY11M(MirrorRow_Any_LASX, MirrorRow_LASX, 1, 63)
1923
+ #endif
1924
+ #ifdef HAS_MIRRORUVROW_AVX2
1925
+ ANY11M(MirrorUVRow_Any_AVX2, MirrorUVRow_AVX2, 2, 15)
1926
+ #endif
1927
+ #ifdef HAS_MIRRORUVROW_SSSE3
1928
+ ANY11M(MirrorUVRow_Any_SSSE3, MirrorUVRow_SSSE3, 2, 7)
1929
+ #endif
1930
+ #ifdef HAS_MIRRORUVROW_NEON
1931
+ ANY11M(MirrorUVRow_Any_NEON, MirrorUVRow_NEON, 2, 31)
1932
+ #endif
1933
+ #ifdef HAS_MIRRORUVROW_LSX
1934
+ ANY11M(MirrorUVRow_Any_LSX, MirrorUVRow_LSX, 2, 7)
1935
+ #endif
1936
+ #ifdef HAS_MIRRORUVROW_LASX
1937
+ ANY11M(MirrorUVRow_Any_LASX, MirrorUVRow_LASX, 2, 15)
1938
+ #endif
1939
+ #ifdef HAS_ARGBMIRRORROW_AVX2
1940
+ ANY11M(ARGBMirrorRow_Any_AVX2, ARGBMirrorRow_AVX2, 4, 7)
1941
+ #endif
1942
+ #ifdef HAS_ARGBMIRRORROW_SSE2
1943
+ ANY11M(ARGBMirrorRow_Any_SSE2, ARGBMirrorRow_SSE2, 4, 3)
1944
+ #endif
1945
+ #ifdef HAS_ARGBMIRRORROW_NEON
1946
+ ANY11M(ARGBMirrorRow_Any_NEON, ARGBMirrorRow_NEON, 4, 7)
1947
+ #endif
1948
+ #ifdef HAS_ARGBMIRRORROW_LSX
1949
+ ANY11M(ARGBMirrorRow_Any_LSX, ARGBMirrorRow_LSX, 4, 7)
1950
+ #endif
1951
+ #ifdef HAS_ARGBMIRRORROW_LASX
1952
+ ANY11M(ARGBMirrorRow_Any_LASX, ARGBMirrorRow_LASX, 4, 15)
1953
+ #endif
1954
+ #ifdef HAS_RGB24MIRRORROW_SSSE3
1955
+ ANY11M(RGB24MirrorRow_Any_SSSE3, RGB24MirrorRow_SSSE3, 3, 15)
1956
+ #endif
1957
+ #ifdef HAS_RGB24MIRRORROW_NEON
1958
+ ANY11M(RGB24MirrorRow_Any_NEON, RGB24MirrorRow_NEON, 3, 15)
1959
+ #endif
1960
+ #undef ANY11M
1961
+
1962
+ // Any 1 plane. (memset)
1963
+ #define ANY1(NAMEANY, ANY_SIMD, T, BPP, MASK) \
1964
+ void NAMEANY(uint8_t* dst_ptr, T v32, int width) { \
1965
+ SIMD_ALIGNED(uint8_t vout[64]); \
1966
+ int r = width & MASK; \
1967
+ int n = width & ~MASK; \
1968
+ if (n > 0) { \
1969
+ ANY_SIMD(dst_ptr, v32, n); \
1970
+ } \
1971
+ ptrdiff_t np = n; \
1972
+ ANY_SIMD(vout, v32, MASK + 1); \
1973
+ memcpy(dst_ptr + np * BPP, vout, r * BPP); \
1974
+ }
1975
+
1976
+ #ifdef HAS_SETROW_X86
1977
+ ANY1(SetRow_Any_X86, SetRow_X86, uint8_t, 1, 3)
1978
+ #endif
1979
+ #ifdef HAS_SETROW_NEON
1980
+ ANY1(SetRow_Any_NEON, SetRow_NEON, uint8_t, 1, 15)
1981
+ #endif
1982
+ #ifdef HAS_SETROW_LSX
1983
+ ANY1(SetRow_Any_LSX, SetRow_LSX, uint8_t, 1, 15)
1984
+ #endif
1985
+ #ifdef HAS_ARGBSETROW_NEON
1986
+ ANY1(ARGBSetRow_Any_NEON, ARGBSetRow_NEON, uint32_t, 4, 3)
1987
+ #endif
1988
+ #ifdef HAS_ARGBSETROW_LSX
1989
+ ANY1(ARGBSetRow_Any_LSX, ARGBSetRow_LSX, uint32_t, 4, 3)
1990
+ #endif
1991
+ #undef ANY1
1992
+
1993
+ // Any 1 to 2. Outputs UV planes.
1994
+ #define ANY12(NAMEANY, ANY_SIMD, UVSHIFT, BPP, DUVSHIFT, MASK) \
1995
+ void NAMEANY(const uint8_t* src_ptr, uint8_t* dst_u, uint8_t* dst_v, \
1996
+ int width) { \
1997
+ SIMD_ALIGNED(uint8_t vin[128]); \
1998
+ SIMD_ALIGNED(uint8_t vout[128 * 2]); \
1999
+ memset(vin, 0, sizeof(vin)); /* for msan */ \
2000
+ int r = width & MASK; \
2001
+ int n = width & ~MASK; \
2002
+ if (n > 0) { \
2003
+ ANY_SIMD(src_ptr, dst_u, dst_v, n); \
2004
+ } \
2005
+ ptrdiff_t np = n; \
2006
+ memcpy(vin, src_ptr + (np >> UVSHIFT) * BPP, SS(r, UVSHIFT) * BPP); \
2007
+ ANY_SIMD(vin, vout, vout + 128, MASK + 1); \
2008
+ memcpy(dst_u + (np >> DUVSHIFT), vout, SS(r, DUVSHIFT)); \
2009
+ memcpy(dst_v + (np >> DUVSHIFT), vout + 128, SS(r, DUVSHIFT)); \
2010
+ }
2011
+
2012
+ #ifdef HAS_SPLITUVROW_SSE2
2013
+ ANY12(SplitUVRow_Any_SSE2, SplitUVRow_SSE2, 0, 2, 0, 15)
2014
+ #endif
2015
+ #ifdef HAS_SPLITUVROW_AVX2
2016
+ ANY12(SplitUVRow_Any_AVX2, SplitUVRow_AVX2, 0, 2, 0, 31)
2017
+ #endif
2018
+ #ifdef HAS_SPLITUVROW_NEON
2019
+ ANY12(SplitUVRow_Any_NEON, SplitUVRow_NEON, 0, 2, 0, 15)
2020
+ #endif
2021
+ #ifdef HAS_SPLITUVROW_LSX
2022
+ ANY12(SplitUVRow_Any_LSX, SplitUVRow_LSX, 0, 2, 0, 31)
2023
+ #endif
2024
+ #ifdef HAS_ARGBTOUV444ROW_SSSE3
2025
+ ANY12(ARGBToUV444Row_Any_SSSE3, ARGBToUV444Row_SSSE3, 0, 4, 0, 15)
2026
+ #endif
2027
+ #ifdef HAS_ARGBTOUVJ444ROW_SSSE3
2028
+ ANY12(ARGBToUVJ444Row_Any_SSSE3, ARGBToUVJ444Row_SSSE3, 0, 4, 0, 15)
2029
+ #endif
2030
+ #ifdef HAS_ARGBTOUV444ROW_AVX2
2031
+ ANY12(ARGBToUV444Row_Any_AVX2, ARGBToUV444Row_AVX2, 0, 4, 0, 31)
2032
+ #endif
2033
+ #ifdef HAS_ARGBTOUVJ444ROW_AVX2
2034
+ ANY12(ARGBToUVJ444Row_Any_AVX2, ARGBToUVJ444Row_AVX2, 0, 4, 0, 31)
2035
+ #endif
2036
+ #ifdef HAS_YUY2TOUV422ROW_AVX2
2037
+ ANY12(YUY2ToUV422Row_Any_AVX2, YUY2ToUV422Row_AVX2, 1, 4, 1, 31)
2038
+ ANY12(UYVYToUV422Row_Any_AVX2, UYVYToUV422Row_AVX2, 1, 4, 1, 31)
2039
+ #endif
2040
+ #ifdef HAS_YUY2TOUV422ROW_SSE2
2041
+ ANY12(YUY2ToUV422Row_Any_SSE2, YUY2ToUV422Row_SSE2, 1, 4, 1, 15)
2042
+ ANY12(UYVYToUV422Row_Any_SSE2, UYVYToUV422Row_SSE2, 1, 4, 1, 15)
2043
+ #endif
2044
+ #ifdef HAS_YUY2TOUV422ROW_NEON
2045
+ ANY12(ARGBToUV444Row_Any_NEON, ARGBToUV444Row_NEON, 0, 4, 0, 7)
2046
+ ANY12(ARGBToUVJ444Row_Any_NEON, ARGBToUVJ444Row_NEON, 0, 4, 0, 7)
2047
+ ANY12(YUY2ToUV422Row_Any_NEON, YUY2ToUV422Row_NEON, 1, 4, 1, 15)
2048
+ ANY12(UYVYToUV422Row_Any_NEON, UYVYToUV422Row_NEON, 1, 4, 1, 15)
2049
+ #endif
2050
+ #ifdef HAS_ARGBTOUV444ROW_NEON_I8MM
2051
+ ANY12(ARGBToUV444Row_Any_NEON_I8MM, ARGBToUV444Row_NEON_I8MM, 0, 4, 0, 7)
2052
+ ANY12(ARGBToUVJ444Row_Any_NEON_I8MM, ARGBToUVJ444Row_NEON_I8MM, 0, 4, 0, 7)
2053
+ #endif
2054
+ #ifdef HAS_YUY2TOUV422ROW_LSX
2055
+ ANY12(ARGBToUV444Row_Any_LSX, ARGBToUV444Row_LSX, 0, 4, 0, 15)
2056
+ ANY12(YUY2ToUV422Row_Any_LSX, YUY2ToUV422Row_LSX, 1, 4, 1, 15)
2057
+ ANY12(UYVYToUV422Row_Any_LSX, UYVYToUV422Row_LSX, 1, 4, 1, 15)
2058
+ #endif
2059
+ #ifdef HAS_YUY2TOUV422ROW_LASX
2060
+ ANY12(ARGBToUV444Row_Any_LASX, ARGBToUV444Row_LASX, 0, 4, 0, 31)
2061
+ ANY12(YUY2ToUV422Row_Any_LASX, YUY2ToUV422Row_LASX, 1, 4, 1, 31)
2062
+ ANY12(UYVYToUV422Row_Any_LASX, UYVYToUV422Row_LASX, 1, 4, 1, 31)
2063
+ #endif
2064
+ #undef ANY12
2065
+
2066
+ // Any 2 16 bit planes with parameter to 1
2067
+ #define ANY12PT(NAMEANY, ANY_SIMD, T, BPP, MASK) \
2068
+ void NAMEANY(const T* src_uv, T* dst_u, T* dst_v, int depth, int width) { \
2069
+ SIMD_ALIGNED(T vin[16 * 2]); \
2070
+ SIMD_ALIGNED(T vout[16 * 2]); \
2071
+ memset(vin, 0, sizeof(vin)); /* for msan */ \
2072
+ int r = width & MASK; \
2073
+ int n = width & ~MASK; \
2074
+ if (n > 0) { \
2075
+ ANY_SIMD(src_uv, dst_u, dst_v, depth, n); \
2076
+ } \
2077
+ ptrdiff_t np = n; \
2078
+ memcpy(vin, src_uv + np * 2, r * BPP * 2); \
2079
+ ANY_SIMD(vin, vout, vout + 16, depth, MASK + 1); \
2080
+ memcpy(dst_u + np, vout, r * BPP); \
2081
+ memcpy(dst_v + np, vout + 16, r * BPP); \
2082
+ }
2083
+
2084
+ #ifdef HAS_SPLITUVROW_16_AVX2
2085
+ ANY12PT(SplitUVRow_16_Any_AVX2, SplitUVRow_16_AVX2, uint16_t, 2, 15)
2086
+ #endif
2087
+
2088
+ #ifdef HAS_SPLITUVROW_16_NEON
2089
+ ANY12PT(SplitUVRow_16_Any_NEON, SplitUVRow_16_NEON, uint16_t, 2, 7)
2090
+ #endif
2091
+
2092
+ #undef ANY21CT
2093
+
2094
+ // Any 1 to 3. Outputs RGB planes.
2095
+ #define ANY13(NAMEANY, ANY_SIMD, BPP, MASK) \
2096
+ void NAMEANY(const uint8_t* src_ptr, uint8_t* dst_r, uint8_t* dst_g, \
2097
+ uint8_t* dst_b, int width) { \
2098
+ SIMD_ALIGNED(uint8_t vin[16 * 3]); \
2099
+ SIMD_ALIGNED(uint8_t vout[16 * 3]); \
2100
+ memset(vin, 0, sizeof(vin)); /* for msan */ \
2101
+ int r = width & MASK; \
2102
+ int n = width & ~MASK; \
2103
+ if (n > 0) { \
2104
+ ANY_SIMD(src_ptr, dst_r, dst_g, dst_b, n); \
2105
+ } \
2106
+ ptrdiff_t np = n; \
2107
+ memcpy(vin, src_ptr + np * BPP, r * BPP); \
2108
+ ANY_SIMD(vin, vout, vout + 16, vout + 32, MASK + 1); \
2109
+ memcpy(dst_r + np, vout, r); \
2110
+ memcpy(dst_g + np, vout + 16, r); \
2111
+ memcpy(dst_b + np, vout + 32, r); \
2112
+ }
2113
+
2114
+ #ifdef HAS_SPLITRGBROW_SSSE3
2115
+ ANY13(SplitRGBRow_Any_SSSE3, SplitRGBRow_SSSE3, 3, 15)
2116
+ #endif
2117
+ #ifdef HAS_SPLITRGBROW_SSE41
2118
+ ANY13(SplitRGBRow_Any_SSE41, SplitRGBRow_SSE41, 3, 15)
2119
+ #endif
2120
+ #ifdef HAS_SPLITRGBROW_AVX2
2121
+ ANY13(SplitRGBRow_Any_AVX2, SplitRGBRow_AVX2, 3, 31)
2122
+ #endif
2123
+ #ifdef HAS_SPLITRGBROW_NEON
2124
+ ANY13(SplitRGBRow_Any_NEON, SplitRGBRow_NEON, 3, 15)
2125
+ #endif
2126
+ #ifdef HAS_SPLITXRGBROW_SSE2
2127
+ ANY13(SplitXRGBRow_Any_SSE2, SplitXRGBRow_SSE2, 4, 7)
2128
+ #endif
2129
+ #ifdef HAS_SPLITXRGBROW_SSSE3
2130
+ ANY13(SplitXRGBRow_Any_SSSE3, SplitXRGBRow_SSSE3, 4, 7)
2131
+ #endif
2132
+ #ifdef HAS_SPLITXRGBROW_AVX2
2133
+ ANY13(SplitXRGBRow_Any_AVX2, SplitXRGBRow_AVX2, 4, 15)
2134
+ #endif
2135
+ #ifdef HAS_SPLITXRGBROW_NEON
2136
+ ANY13(SplitXRGBRow_Any_NEON, SplitXRGBRow_NEON, 4, 15)
2137
+ #endif
2138
+
2139
+ // Any 1 to 4. Outputs ARGB planes.
2140
+ #define ANY14(NAMEANY, ANY_SIMD, BPP, MASK) \
2141
+ void NAMEANY(const uint8_t* src_ptr, uint8_t* dst_r, uint8_t* dst_g, \
2142
+ uint8_t* dst_b, uint8_t* dst_a, int width) { \
2143
+ SIMD_ALIGNED(uint8_t vin[16 * 4]); \
2144
+ SIMD_ALIGNED(uint8_t vout[16 * 4]); \
2145
+ memset(vin, 0, sizeof(vin)); /* for msan */ \
2146
+ int r = width & MASK; \
2147
+ int n = width & ~MASK; \
2148
+ if (n > 0) { \
2149
+ ANY_SIMD(src_ptr, dst_r, dst_g, dst_b, dst_a, n); \
2150
+ } \
2151
+ ptrdiff_t np = n; \
2152
+ memcpy(vin, src_ptr + np * BPP, r * BPP); \
2153
+ ANY_SIMD(vin, vout, vout + 16, vout + 32, vout + 48, MASK + 1); \
2154
+ memcpy(dst_r + np, vout, r); \
2155
+ memcpy(dst_g + np, vout + 16, r); \
2156
+ memcpy(dst_b + np, vout + 32, r); \
2157
+ memcpy(dst_a + np, vout + 48, r); \
2158
+ }
2159
+
2160
+ #ifdef HAS_SPLITARGBROW_SSE2
2161
+ ANY14(SplitARGBRow_Any_SSE2, SplitARGBRow_SSE2, 4, 7)
2162
+ #endif
2163
+ #ifdef HAS_SPLITARGBROW_SSSE3
2164
+ ANY14(SplitARGBRow_Any_SSSE3, SplitARGBRow_SSSE3, 4, 7)
2165
+ #endif
2166
+ #ifdef HAS_SPLITARGBROW_AVX2
2167
+ ANY14(SplitARGBRow_Any_AVX2, SplitARGBRow_AVX2, 4, 15)
2168
+ #endif
2169
+ #ifdef HAS_SPLITARGBROW_NEON
2170
+ ANY14(SplitARGBRow_Any_NEON, SplitARGBRow_NEON, 4, 15)
2171
+ #endif
2172
+
2173
+ // Any 1 to 2 with source stride (2 rows of source). Outputs UV planes.
2174
+ // 128 byte row allows for 32 avx ARGB pixels.
2175
+ #define ANY12S(NAMEANY, ANY_SIMD, UVSHIFT, BPP, MASK) \
2176
+ void NAMEANY(const uint8_t* src_ptr, int src_stride, uint8_t* dst_u, \
2177
+ uint8_t* dst_v, int width) { \
2178
+ SIMD_ALIGNED(uint8_t vin[128 * 2]); \
2179
+ SIMD_ALIGNED(uint8_t vout[128 * 2]); \
2180
+ memset(vin, 0, sizeof(vin)); /* for msan */ \
2181
+ int r = width & MASK; \
2182
+ int n = width & ~MASK; \
2183
+ if (n > 0) { \
2184
+ ANY_SIMD(src_ptr, src_stride, dst_u, dst_v, n); \
2185
+ } \
2186
+ ptrdiff_t np = n; \
2187
+ memcpy(vin, src_ptr + (np >> UVSHIFT) * BPP, SS(r, UVSHIFT) * BPP); \
2188
+ memcpy(vin + 128, src_ptr + src_stride + (np >> UVSHIFT) * BPP, \
2189
+ SS(r, UVSHIFT) * BPP); \
2190
+ if ((width & 1) && UVSHIFT == 0) { /* repeat last pixel for subsample */ \
2191
+ memcpy(vin + SS(r, UVSHIFT) * BPP, vin + SS(r, UVSHIFT) * BPP - BPP, \
2192
+ BPP); \
2193
+ memcpy(vin + 128 + SS(r, UVSHIFT) * BPP, \
2194
+ vin + 128 + SS(r, UVSHIFT) * BPP - BPP, BPP); \
2195
+ } \
2196
+ ANY_SIMD(vin, 128, vout, vout + 128, MASK + 1); \
2197
+ memcpy(dst_u + (np >> 1), vout, SS(r, 1)); \
2198
+ memcpy(dst_v + (np >> 1), vout + 128, SS(r, 1)); \
2199
+ }
2200
+
2201
+ #ifdef HAS_ARGBTOUVROW_AVX2
2202
+ ANY12S(ARGBToUVRow_Any_AVX2, ARGBToUVRow_AVX2, 0, 4, 31)
2203
+ #endif
2204
+ #ifdef HAS_ABGRTOUVROW_AVX2
2205
+ ANY12S(ABGRToUVRow_Any_AVX2, ABGRToUVRow_AVX2, 0, 4, 31)
2206
+ #endif
2207
+ #ifdef HAS_ARGBTOUVJROW_AVX2
2208
+ ANY12S(ARGBToUVJRow_Any_AVX2, ARGBToUVJRow_AVX2, 0, 4, 31)
2209
+ #endif
2210
+ #ifdef HAS_ABGRTOUVJROW_AVX2
2211
+ ANY12S(ABGRToUVJRow_Any_AVX2, ABGRToUVJRow_AVX2, 0, 4, 31)
2212
+ #endif
2213
+ #ifdef HAS_ARGBTOUVJROW_SSSE3
2214
+ ANY12S(ARGBToUVJRow_Any_SSSE3, ARGBToUVJRow_SSSE3, 0, 4, 15)
2215
+ #endif
2216
+ #ifdef HAS_ABGRTOUVJROW_SSSE3
2217
+ ANY12S(ABGRToUVJRow_Any_SSSE3, ABGRToUVJRow_SSSE3, 0, 4, 15)
2218
+ #endif
2219
+ #ifdef HAS_ARGBTOUVROW_SSSE3
2220
+ ANY12S(ARGBToUVRow_Any_SSSE3, ARGBToUVRow_SSSE3, 0, 4, 15)
2221
+ ANY12S(BGRAToUVRow_Any_SSSE3, BGRAToUVRow_SSSE3, 0, 4, 15)
2222
+ ANY12S(ABGRToUVRow_Any_SSSE3, ABGRToUVRow_SSSE3, 0, 4, 15)
2223
+ ANY12S(RGBAToUVRow_Any_SSSE3, RGBAToUVRow_SSSE3, 0, 4, 15)
2224
+ #endif
2225
+ #ifdef HAS_YUY2TOUVROW_AVX2
2226
+ ANY12S(YUY2ToUVRow_Any_AVX2, YUY2ToUVRow_AVX2, 1, 4, 31)
2227
+ ANY12S(UYVYToUVRow_Any_AVX2, UYVYToUVRow_AVX2, 1, 4, 31)
2228
+ #endif
2229
+ #ifdef HAS_YUY2TOUVROW_SSE2
2230
+ ANY12S(YUY2ToUVRow_Any_SSE2, YUY2ToUVRow_SSE2, 1, 4, 15)
2231
+ ANY12S(UYVYToUVRow_Any_SSE2, UYVYToUVRow_SSE2, 1, 4, 15)
2232
+ #endif
2233
+ #ifdef HAS_ARGBTOUVROW_NEON
2234
+ ANY12S(ARGBToUVRow_Any_NEON, ARGBToUVRow_NEON, 0, 4, 15)
2235
+ #endif
2236
+ #ifdef HAS_ARGBTOUVROW_NEON_I8MM
2237
+ ANY12S(ARGBToUVRow_Any_NEON_I8MM, ARGBToUVRow_NEON_I8MM, 0, 4, 15)
2238
+ #endif
2239
+ #ifdef HAS_ARGBTOUVROW_SVE2
2240
+ ANY12S(ARGBToUVRow_Any_SVE2, ARGBToUVRow_SVE2, 0, 4, 1)
2241
+ #endif
2242
+ #ifdef HAS_ARGBTOUVROW_SME
2243
+ ANY12S(ARGBToUVRow_Any_SME, ARGBToUVRow_SME, 0, 4, 1)
2244
+ #endif
2245
+ #ifdef HAS_ARGBTOUVROW_LSX
2246
+ ANY12S(ARGBToUVRow_Any_LSX, ARGBToUVRow_LSX, 0, 4, 15)
2247
+ #endif
2248
+ #ifdef HAS_ARGBTOUVROW_LASX
2249
+ ANY12S(ARGBToUVRow_Any_LASX, ARGBToUVRow_LASX, 0, 4, 31)
2250
+ #endif
2251
+ #ifdef HAS_ARGBTOUVJROW_NEON
2252
+ ANY12S(ARGBToUVJRow_Any_NEON, ARGBToUVJRow_NEON, 0, 4, 15)
2253
+ #endif
2254
+ #ifdef HAS_ARGBTOUVJROW_NEON_I8MM
2255
+ ANY12S(ARGBToUVJRow_Any_NEON_I8MM, ARGBToUVJRow_NEON_I8MM, 0, 4, 15)
2256
+ #endif
2257
+ #ifdef HAS_ARGBTOUVJROW_SVE2
2258
+ ANY12S(ARGBToUVJRow_Any_SVE2, ARGBToUVJRow_SVE2, 0, 4, 1)
2259
+ #endif
2260
+ #ifdef HAS_ARGBTOUVJROW_SME
2261
+ ANY12S(ARGBToUVJRow_Any_SME, ARGBToUVJRow_SME, 0, 4, 1)
2262
+ #endif
2263
+ #ifdef HAS_ABGRTOUVJROW_NEON
2264
+ ANY12S(ABGRToUVJRow_Any_NEON, ABGRToUVJRow_NEON, 0, 4, 15)
2265
+ #endif
2266
+ #ifdef HAS_ABGRTOUVJROW_NEON_I8MM
2267
+ ANY12S(ABGRToUVJRow_Any_NEON_I8MM, ABGRToUVJRow_NEON_I8MM, 0, 4, 15)
2268
+ #endif
2269
+ #ifdef HAS_ABGRTOUVJROW_SVE2
2270
+ ANY12S(ABGRToUVJRow_Any_SVE2, ABGRToUVJRow_SVE2, 0, 4, 1)
2271
+ #endif
2272
+ #ifdef HAS_ABGRTOUVJROW_SME
2273
+ ANY12S(ABGRToUVJRow_Any_SME, ABGRToUVJRow_SME, 0, 4, 1)
2274
+ #endif
2275
+ #ifdef HAS_ARGBTOUVJROW_LSX
2276
+ ANY12S(ARGBToUVJRow_Any_LSX, ARGBToUVJRow_LSX, 0, 4, 15)
2277
+ #endif
2278
+ #ifdef HAS_ARGBTOUVJROW_LASX
2279
+ ANY12S(ARGBToUVJRow_Any_LASX, ARGBToUVJRow_LASX, 0, 4, 31)
2280
+ #endif
2281
+ #ifdef HAS_BGRATOUVROW_NEON
2282
+ ANY12S(BGRAToUVRow_Any_NEON, BGRAToUVRow_NEON, 0, 4, 15)
2283
+ #endif
2284
+ #ifdef HAS_BGRATOUVROW_NEON_I8MM
2285
+ ANY12S(BGRAToUVRow_Any_NEON_I8MM, BGRAToUVRow_NEON_I8MM, 0, 4, 15)
2286
+ #endif
2287
+ #ifdef HAS_BGRATOUVROW_SVE2
2288
+ ANY12S(BGRAToUVRow_Any_SVE2, BGRAToUVRow_SVE2, 0, 4, 1)
2289
+ #endif
2290
+ #ifdef HAS_BGRATOUVROW_SME
2291
+ ANY12S(BGRAToUVRow_Any_SME, BGRAToUVRow_SME, 0, 4, 1)
2292
+ #endif
2293
+ #ifdef HAS_BGRATOUVROW_LSX
2294
+ ANY12S(BGRAToUVRow_Any_LSX, BGRAToUVRow_LSX, 0, 4, 15)
2295
+ #endif
2296
+ #ifdef HAS_ABGRTOUVROW_NEON
2297
+ ANY12S(ABGRToUVRow_Any_NEON, ABGRToUVRow_NEON, 0, 4, 15)
2298
+ #endif
2299
+ #ifdef HAS_ABGRTOUVROW_NEON_I8MM
2300
+ ANY12S(ABGRToUVRow_Any_NEON_I8MM, ABGRToUVRow_NEON_I8MM, 0, 4, 15)
2301
+ #endif
2302
+ #ifdef HAS_ABGRTOUVROW_SVE2
2303
+ ANY12S(ABGRToUVRow_Any_SVE2, ABGRToUVRow_SVE2, 0, 4, 1)
2304
+ #endif
2305
+ #ifdef HAS_ABGRTOUVROW_SME
2306
+ ANY12S(ABGRToUVRow_Any_SME, ABGRToUVRow_SME, 0, 4, 1)
2307
+ #endif
2308
+ #ifdef HAS_ABGRTOUVROW_LSX
2309
+ ANY12S(ABGRToUVRow_Any_LSX, ABGRToUVRow_LSX, 0, 4, 15)
2310
+ #endif
2311
+ #ifdef HAS_RGBATOUVROW_NEON
2312
+ ANY12S(RGBAToUVRow_Any_NEON, RGBAToUVRow_NEON, 0, 4, 15)
2313
+ #endif
2314
+ #ifdef HAS_RGBATOUVROW_NEON_I8MM
2315
+ ANY12S(RGBAToUVRow_Any_NEON_I8MM, RGBAToUVRow_NEON_I8MM, 0, 4, 15)
2316
+ #endif
2317
+ #ifdef HAS_RGBATOUVROW_SVE2
2318
+ ANY12S(RGBAToUVRow_Any_SVE2, RGBAToUVRow_SVE2, 0, 4, 1)
2319
+ #endif
2320
+ #ifdef HAS_RGBATOUVROW_SME
2321
+ ANY12S(RGBAToUVRow_Any_SME, RGBAToUVRow_SME, 0, 4, 1)
2322
+ #endif
2323
+ #ifdef HAS_RGBATOUVROW_LSX
2324
+ ANY12S(RGBAToUVRow_Any_LSX, RGBAToUVRow_LSX, 0, 4, 15)
2325
+ #endif
2326
+ #ifdef HAS_RGB24TOUVROW_NEON
2327
+ ANY12S(RGB24ToUVRow_Any_NEON, RGB24ToUVRow_NEON, 0, 3, 15)
2328
+ #endif
2329
+ #ifdef HAS_RGB24TOUVJROW_NEON
2330
+ ANY12S(RGB24ToUVJRow_Any_NEON, RGB24ToUVJRow_NEON, 0, 3, 15)
2331
+ #endif
2332
+ #ifdef HAS_RGB24TOUVROW_LSX
2333
+ ANY12S(RGB24ToUVRow_Any_LSX, RGB24ToUVRow_LSX, 0, 3, 15)
2334
+ #endif
2335
+ #ifdef HAS_RGB24TOUVROW_LASX
2336
+ ANY12S(RGB24ToUVRow_Any_LASX, RGB24ToUVRow_LASX, 0, 3, 31)
2337
+ #endif
2338
+ #ifdef HAS_RAWTOUVROW_NEON
2339
+ ANY12S(RAWToUVRow_Any_NEON, RAWToUVRow_NEON, 0, 3, 15)
2340
+ #endif
2341
+ #ifdef HAS_RAWTOUVJROW_NEON
2342
+ ANY12S(RAWToUVJRow_Any_NEON, RAWToUVJRow_NEON, 0, 3, 15)
2343
+ #endif
2344
+ #ifdef HAS_RAWTOUVROW_LSX
2345
+ ANY12S(RAWToUVRow_Any_LSX, RAWToUVRow_LSX, 0, 3, 15)
2346
+ #endif
2347
+ #ifdef HAS_RAWTOUVROW_LASX
2348
+ ANY12S(RAWToUVRow_Any_LASX, RAWToUVRow_LASX, 0, 3, 31)
2349
+ #endif
2350
+ #ifdef HAS_RGB565TOUVROW_NEON
2351
+ ANY12S(RGB565ToUVRow_Any_NEON, RGB565ToUVRow_NEON, 0, 2, 15)
2352
+ #endif
2353
+ #ifdef HAS_RGB565TOUVROW_LSX
2354
+ ANY12S(RGB565ToUVRow_Any_LSX, RGB565ToUVRow_LSX, 0, 2, 15)
2355
+ #endif
2356
+ #ifdef HAS_RGB565TOUVROW_LASX
2357
+ ANY12S(RGB565ToUVRow_Any_LASX, RGB565ToUVRow_LASX, 0, 2, 31)
2358
+ #endif
2359
+ #ifdef HAS_ARGB1555TOUVROW_NEON
2360
+ ANY12S(ARGB1555ToUVRow_Any_NEON, ARGB1555ToUVRow_NEON, 0, 2, 15)
2361
+ #endif
2362
+ #ifdef HAS_ARGB1555TOUVROW_LSX
2363
+ ANY12S(ARGB1555ToUVRow_Any_LSX, ARGB1555ToUVRow_LSX, 0, 2, 15)
2364
+ #endif
2365
+ #ifdef HAS_ARGB1555TOUVROW_LASX
2366
+ ANY12S(ARGB1555ToUVRow_Any_LASX, ARGB1555ToUVRow_LASX, 0, 2, 31)
2367
+ #endif
2368
+ #ifdef HAS_ARGB4444TOUVROW_NEON
2369
+ ANY12S(ARGB4444ToUVRow_Any_NEON, ARGB4444ToUVRow_NEON, 0, 2, 15)
2370
+ #endif
2371
+ #ifdef HAS_YUY2TOUVROW_NEON
2372
+ ANY12S(YUY2ToUVRow_Any_NEON, YUY2ToUVRow_NEON, 1, 4, 15)
2373
+ #endif
2374
+ #ifdef HAS_UYVYTOUVROW_NEON
2375
+ ANY12S(UYVYToUVRow_Any_NEON, UYVYToUVRow_NEON, 1, 4, 15)
2376
+ #endif
2377
+ #ifdef HAS_YUY2TOUVROW_LSX
2378
+ ANY12S(YUY2ToUVRow_Any_LSX, YUY2ToUVRow_LSX, 1, 4, 15)
2379
+ #endif
2380
+ #ifdef HAS_YUY2TOUVROW_LASX
2381
+ ANY12S(YUY2ToUVRow_Any_LASX, YUY2ToUVRow_LASX, 1, 4, 31)
2382
+ #endif
2383
+ #ifdef HAS_UYVYTOUVROW_LSX
2384
+ ANY12S(UYVYToUVRow_Any_LSX, UYVYToUVRow_LSX, 1, 4, 15)
2385
+ #endif
2386
+ #ifdef HAS_UYVYTOUVROW_LASX
2387
+ ANY12S(UYVYToUVRow_Any_LASX, UYVYToUVRow_LASX, 1, 4, 31)
2388
+ #endif
2389
+ #undef ANY12S
2390
+
2391
+ // Any 1 to 1 with source stride (2 rows of source). Outputs UV plane.
2392
+ // 128 byte row allows for 32 avx ARGB pixels.
2393
+ #define ANY11S(NAMEANY, ANY_SIMD, UVSHIFT, BPP, MASK) \
2394
+ void NAMEANY(const uint8_t* src_ptr, int src_stride, uint8_t* dst_vu, \
2395
+ int width) { \
2396
+ SIMD_ALIGNED(uint8_t vin[128 * 2]); \
2397
+ SIMD_ALIGNED(uint8_t vout[128]); \
2398
+ memset(vin, 0, sizeof(vin)); /* for msan */ \
2399
+ int r = width & MASK; \
2400
+ int n = width & ~MASK; \
2401
+ if (n > 0) { \
2402
+ ANY_SIMD(src_ptr, src_stride, dst_vu, n); \
2403
+ } \
2404
+ ptrdiff_t np = n; \
2405
+ memcpy(vin, src_ptr + (np >> UVSHIFT) * BPP, SS(r, UVSHIFT) * BPP); \
2406
+ memcpy(vin + 128, src_ptr + src_stride + (np >> UVSHIFT) * BPP, \
2407
+ SS(r, UVSHIFT) * BPP); \
2408
+ if ((width & 1) && UVSHIFT == 0) { /* repeat last pixel for subsample */ \
2409
+ memcpy(vin + SS(r, UVSHIFT) * BPP, vin + SS(r, UVSHIFT) * BPP - BPP, \
2410
+ BPP); \
2411
+ memcpy(vin + 128 + SS(r, UVSHIFT) * BPP, \
2412
+ vin + 128 + SS(r, UVSHIFT) * BPP - BPP, BPP); \
2413
+ } \
2414
+ ANY_SIMD(vin, 128, vout, MASK + 1); \
2415
+ memcpy(dst_vu + (np >> 1) * 2, vout, SS(r, 1) * 2); \
2416
+ }
2417
+
2418
+ #ifdef HAS_AYUVTOVUROW_NEON
2419
+ ANY11S(AYUVToUVRow_Any_NEON, AYUVToUVRow_NEON, 0, 4, 15)
2420
+ ANY11S(AYUVToVURow_Any_NEON, AYUVToVURow_NEON, 0, 4, 15)
2421
+ #endif
2422
+ #ifdef HAS_AYUVTOUVROW_SVE2
2423
+ ANY11S(AYUVToUVRow_Any_SVE2, AYUVToUVRow_SVE2, 0, 4, 1)
2424
+ #endif
2425
+ #ifdef HAS_AYUVTOVUROW_SVE2
2426
+ ANY11S(AYUVToVURow_Any_SVE2, AYUVToVURow_SVE2, 0, 4, 1)
2427
+ #endif
2428
+ #undef ANY11S
2429
+
2430
+ #define ANYDETILE(NAMEANY, ANY_SIMD, T, BPP, MASK) \
2431
+ void NAMEANY(const T* src, ptrdiff_t src_tile_stride, T* dst, int width) { \
2432
+ SIMD_ALIGNED(T vin[16]); \
2433
+ SIMD_ALIGNED(T vout[16]); \
2434
+ memset(vin, 0, sizeof(vin)); /* for msan */ \
2435
+ int r = width & MASK; \
2436
+ int n = width & ~MASK; \
2437
+ if (n > 0) { \
2438
+ ANY_SIMD(src, src_tile_stride, dst, n); \
2439
+ } \
2440
+ ptrdiff_t np = n; \
2441
+ memcpy(vin, src + (np / 16) * src_tile_stride, r * BPP); \
2442
+ ANY_SIMD(vin, src_tile_stride, vout, MASK + 1); \
2443
+ memcpy(dst + np, vout, r * BPP); \
2444
+ }
2445
+
2446
+ #ifdef HAS_DETILEROW_NEON
2447
+ ANYDETILE(DetileRow_Any_NEON, DetileRow_NEON, uint8_t, 1, 15)
2448
+ #endif
2449
+ #ifdef HAS_DETILEROW_SSE2
2450
+ ANYDETILE(DetileRow_Any_SSE2, DetileRow_SSE2, uint8_t, 1, 15)
2451
+ #endif
2452
+ #ifdef HAS_DETILEROW_16_NEON
2453
+ ANYDETILE(DetileRow_16_Any_NEON, DetileRow_16_NEON, uint16_t, 2, 15)
2454
+ #endif
2455
+ #ifdef HAS_DETILEROW_16_SSE2
2456
+ ANYDETILE(DetileRow_16_Any_SSE2, DetileRow_16_SSE2, uint16_t, 2, 15)
2457
+ #endif
2458
+ #ifdef HAS_DETILEROW_16_AVX
2459
+ ANYDETILE(DetileRow_16_Any_AVX, DetileRow_16_AVX, uint16_t, 2, 15)
2460
+ #endif
2461
+
2462
+ // DetileSplitUVRow width is in bytes
2463
+ #define ANYDETILESPLITUV(NAMEANY, ANY_SIMD, MASK) \
2464
+ void NAMEANY(const uint8_t* src_uv, ptrdiff_t src_tile_stride, \
2465
+ uint8_t* dst_u, uint8_t* dst_v, int width) { \
2466
+ SIMD_ALIGNED(uint8_t vin[16]); \
2467
+ SIMD_ALIGNED(uint8_t vout[8 * 2]); \
2468
+ memset(vin, 0, sizeof(vin)); /* for msan */ \
2469
+ int r = width & MASK; \
2470
+ int n = width & ~MASK; \
2471
+ if (n > 0) { \
2472
+ ANY_SIMD(src_uv, src_tile_stride, dst_u, dst_v, n); \
2473
+ } \
2474
+ ptrdiff_t np = n; \
2475
+ memcpy(vin, src_uv + (np / 16) * src_tile_stride, r); \
2476
+ ANY_SIMD(vin, src_tile_stride, vout, vout + 8, r); \
2477
+ memcpy(dst_u + np / 2, vout, (r + 1) / 2); \
2478
+ memcpy(dst_v + np / 2, vout + 8, (r + 1) / 2); \
2479
+ }
2480
+
2481
+ #ifdef HAS_DETILESPLITUVROW_NEON
2482
+ ANYDETILESPLITUV(DetileSplitUVRow_Any_NEON, DetileSplitUVRow_NEON, 15)
2483
+ #endif
2484
+ #ifdef HAS_DETILESPLITUVROW_SSSE3
2485
+ ANYDETILESPLITUV(DetileSplitUVRow_Any_SSSE3, DetileSplitUVRow_SSSE3, 15)
2486
+ #endif
2487
+
2488
+ #define ANYDETILEMERGE(NAMEANY, ANY_SIMD, MASK) \
2489
+ void NAMEANY(const uint8_t* src_y, ptrdiff_t src_y_tile_stride, \
2490
+ const uint8_t* src_uv, ptrdiff_t src_uv_tile_stride, \
2491
+ uint8_t* dst_yuy2, int width) { \
2492
+ SIMD_ALIGNED(uint8_t vin[16 * 2]); \
2493
+ SIMD_ALIGNED(uint8_t vout[16 * 2]); \
2494
+ memset(vin, 0, sizeof(vin)); /* for msan */ \
2495
+ int r = width & MASK; \
2496
+ int n = width & ~MASK; \
2497
+ if (n > 0) { \
2498
+ ANY_SIMD(src_y, src_y_tile_stride, src_uv, src_uv_tile_stride, dst_yuy2, \
2499
+ n); \
2500
+ } \
2501
+ ptrdiff_t np = n; \
2502
+ memcpy(vin, src_y + (np / 16) * src_y_tile_stride, r); \
2503
+ memcpy(vin + 16, src_uv + (np / 16) * src_uv_tile_stride, r); \
2504
+ ANY_SIMD(vin, src_y_tile_stride, vin + 16, src_uv_tile_stride, vout, r); \
2505
+ memcpy(dst_yuy2 + 2 * np, vout, 2 * r); \
2506
+ }
2507
+
2508
+ #ifdef HAS_DETILETOYUY2_NEON
2509
+ ANYDETILEMERGE(DetileToYUY2_Any_NEON, DetileToYUY2_NEON, 15)
2510
+ #endif
2511
+
2512
+ #ifdef HAS_DETILETOYUY2_SSE2
2513
+ ANYDETILEMERGE(DetileToYUY2_Any_SSE2, DetileToYUY2_SSE2, 15)
2514
+ #endif
2515
+
2516
+ #ifdef __cplusplus
2517
+ } // extern "C"
2518
+ } // namespace libyuv
2519
+ #endif