react-native-vision-camera-spoof-detector 1.0.9 → 1.0.11

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 (379) hide show
  1. package/android/.cxx/Debug/2a1it684/arm64-v8a/.cmake/api/v1/reply/{codemodel-v2-83ca4b3bde3a78057c1f.json → codemodel-v2-390962e2784a6a84fa3e.json} +2 -2
  2. package/android/.cxx/Debug/2a1it684/arm64-v8a/.cmake/api/v1/reply/{index-2025-11-27T05-30-44-0002.json → index-2025-11-28T11-07-00-0336.json} +2 -2
  3. package/android/.cxx/Debug/2a1it684/arm64-v8a/.cmake/api/v1/reply/{target-yuv-Debug-a4349d98b162d7b162c2.json → target-yuv-Debug-1e27b8a2bdcddd47b87d.json} +2 -2
  4. package/android/.cxx/Debug/2a1it684/arm64-v8a/.cmake/api/v1/reply/{target-yuv_shared-Debug-f13b6c904c5f79494e23.json → target-yuv_shared-Debug-ac9194487d1fc1268a87.json} +2 -2
  5. package/android/.cxx/Debug/2a1it684/arm64-v8a/.ninja_deps +0 -0
  6. package/android/.cxx/Debug/2a1it684/arm64-v8a/.ninja_log +63 -125
  7. package/android/.cxx/Debug/2a1it684/arm64-v8a/CMakeFiles/CMakeOutput.log +22 -22
  8. package/android/.cxx/Debug/2a1it684/arm64-v8a/CMakeFiles/fastyuv.dir/fast_yuv.cpp.o +0 -0
  9. package/android/.cxx/Debug/2a1it684/arm64-v8a/configure_fingerprint.bin +15 -15
  10. package/android/.cxx/Debug/2a1it684/armeabi-v7a/.ninja_deps +0 -0
  11. package/android/.cxx/Debug/2a1it684/armeabi-v7a/.ninja_log +118 -119
  12. package/android/.cxx/Debug/2a1it684/armeabi-v7a/CMakeFiles/CMakeOutput.log +20 -20
  13. package/android/.cxx/Debug/2a1it684/armeabi-v7a/CMakeFiles/fastyuv.dir/fast_yuv.cpp.o +0 -0
  14. package/android/.cxx/Debug/2a1it684/armeabi-v7a/configure_fingerprint.bin +15 -15
  15. package/android/.cxx/Debug/2a1it684/x86/.ninja_deps +0 -0
  16. package/android/.cxx/Debug/2a1it684/x86/.ninja_log +110 -111
  17. package/android/.cxx/Debug/2a1it684/x86/CMakeFiles/CMakeOutput.log +20 -20
  18. package/android/.cxx/Debug/2a1it684/x86/CMakeFiles/fastyuv.dir/fast_yuv.cpp.o +0 -0
  19. package/android/.cxx/Debug/2a1it684/x86/configure_fingerprint.bin +15 -15
  20. package/android/.cxx/Debug/2a1it684/x86_64/.ninja_deps +0 -0
  21. package/android/.cxx/Debug/2a1it684/x86_64/.ninja_log +55 -109
  22. package/android/.cxx/Debug/2a1it684/x86_64/CMakeFiles/CMakeOutput.log +20 -20
  23. package/android/.cxx/Debug/2a1it684/x86_64/CMakeFiles/fastyuv.dir/fast_yuv.cpp.o +0 -0
  24. package/android/.cxx/Debug/2a1it684/x86_64/configure_fingerprint.bin +15 -15
  25. package/android/.cxx/RelWithDebInfo/4j18496e/arm64-v8a/.cmake/api/v1/query/client-agp/cache-v2 +0 -0
  26. package/android/.cxx/RelWithDebInfo/4j18496e/arm64-v8a/.cmake/api/v1/query/client-agp/cmakeFiles-v1 +0 -0
  27. package/android/.cxx/RelWithDebInfo/4j18496e/arm64-v8a/.cmake/api/v1/query/client-agp/codemodel-v2 +0 -0
  28. package/android/.cxx/RelWithDebInfo/4j18496e/arm64-v8a/.cmake/api/v1/reply/cache-v2-713bdb62a69e904e7a40.json +1567 -0
  29. package/android/.cxx/RelWithDebInfo/4j18496e/arm64-v8a/.cmake/api/v1/reply/cmakeFiles-v1-cd34d86bd6491de94aff.json +242 -0
  30. package/android/.cxx/RelWithDebInfo/4j18496e/arm64-v8a/.cmake/api/v1/reply/codemodel-v2-6b7e0f67c2a0347cab13.json +185 -0
  31. package/android/.cxx/RelWithDebInfo/4j18496e/arm64-v8a/.cmake/api/v1/reply/directory-.-RelWithDebInfo-d0094a50bb2071803777.json +14 -0
  32. package/android/.cxx/RelWithDebInfo/4j18496e/arm64-v8a/.cmake/api/v1/reply/directory-libyuv-RelWithDebInfo-3b69a4481e450c4c2e62.json +100 -0
  33. package/android/.cxx/RelWithDebInfo/4j18496e/arm64-v8a/.cmake/api/v1/reply/index-2025-11-28T10-31-16-0807.json +92 -0
  34. package/android/.cxx/RelWithDebInfo/4j18496e/arm64-v8a/.cmake/api/v1/reply/target-cpuid-RelWithDebInfo-f777a892340e61678778.json +136 -0
  35. package/android/.cxx/RelWithDebInfo/4j18496e/arm64-v8a/.cmake/api/v1/reply/target-faceantispoof-RelWithDebInfo-4fb8c998d8f77e33a12d.json +181 -0
  36. package/android/.cxx/RelWithDebInfo/4j18496e/arm64-v8a/.cmake/api/v1/reply/target-fastyuv-RelWithDebInfo-7ad5bac6c34ff1d8f6bf.json +182 -0
  37. package/android/.cxx/RelWithDebInfo/4j18496e/arm64-v8a/.cmake/api/v1/reply/target-yuv-RelWithDebInfo-298d259c30e060de8f40.json +433 -0
  38. package/android/.cxx/RelWithDebInfo/4j18496e/arm64-v8a/.cmake/api/v1/reply/target-yuv_common_objects-RelWithDebInfo-2f4a12965004c2de4e70.json +522 -0
  39. package/android/.cxx/RelWithDebInfo/4j18496e/arm64-v8a/.cmake/api/v1/reply/target-yuv_neon64-RelWithDebInfo-54e823b3b8ca04a6c5db.json +137 -0
  40. package/android/.cxx/RelWithDebInfo/4j18496e/arm64-v8a/.cmake/api/v1/reply/target-yuv_shared-RelWithDebInfo-3270b416576458946c36.json +455 -0
  41. package/android/.cxx/RelWithDebInfo/4j18496e/arm64-v8a/.cmake/api/v1/reply/target-yuv_sme-RelWithDebInfo-e9f185e1349071c8064b.json +126 -0
  42. package/android/.cxx/RelWithDebInfo/4j18496e/arm64-v8a/.cmake/api/v1/reply/target-yuv_sve-RelWithDebInfo-38edcec765b140ad4e2e.json +104 -0
  43. package/android/.cxx/RelWithDebInfo/4j18496e/arm64-v8a/.cmake/api/v1/reply/target-yuvconstants-RelWithDebInfo-665cbae21750846dec64.json +136 -0
  44. package/android/.cxx/RelWithDebInfo/4j18496e/arm64-v8a/.cmake/api/v1/reply/target-yuvconvert-RelWithDebInfo-e79c8b075362b6ed79c2.json +157 -0
  45. package/android/.cxx/RelWithDebInfo/4j18496e/arm64-v8a/.ninja_deps +0 -0
  46. package/android/.cxx/RelWithDebInfo/4j18496e/arm64-v8a/.ninja_log +69 -0
  47. package/android/.cxx/RelWithDebInfo/4j18496e/arm64-v8a/CMakeCache.txt +465 -0
  48. package/android/.cxx/RelWithDebInfo/4j18496e/arm64-v8a/CMakeFiles/3.22.1-g37088a8-dirty/CMakeCCompiler.cmake +72 -0
  49. package/android/.cxx/RelWithDebInfo/4j18496e/arm64-v8a/CMakeFiles/3.22.1-g37088a8-dirty/CMakeCXXCompiler.cmake +83 -0
  50. package/android/.cxx/RelWithDebInfo/4j18496e/arm64-v8a/CMakeFiles/3.22.1-g37088a8-dirty/CMakeDetermineCompilerABI_C.bin +0 -0
  51. package/android/.cxx/RelWithDebInfo/4j18496e/arm64-v8a/CMakeFiles/3.22.1-g37088a8-dirty/CMakeDetermineCompilerABI_CXX.bin +0 -0
  52. package/android/.cxx/RelWithDebInfo/4j18496e/arm64-v8a/CMakeFiles/3.22.1-g37088a8-dirty/CMakeSystem.cmake +15 -0
  53. package/android/.cxx/RelWithDebInfo/4j18496e/arm64-v8a/CMakeFiles/3.22.1-g37088a8-dirty/CompilerIdC/CMakeCCompilerId.c +803 -0
  54. package/android/.cxx/RelWithDebInfo/4j18496e/arm64-v8a/CMakeFiles/3.22.1-g37088a8-dirty/CompilerIdC/CMakeCCompilerId.o +0 -0
  55. package/android/.cxx/RelWithDebInfo/4j18496e/arm64-v8a/CMakeFiles/3.22.1-g37088a8-dirty/CompilerIdCXX/CMakeCXXCompilerId.cpp +791 -0
  56. package/android/.cxx/RelWithDebInfo/4j18496e/arm64-v8a/CMakeFiles/3.22.1-g37088a8-dirty/CompilerIdCXX/CMakeCXXCompilerId.o +0 -0
  57. package/android/.cxx/RelWithDebInfo/4j18496e/arm64-v8a/CMakeFiles/CMakeOutput.log +276 -0
  58. package/android/.cxx/RelWithDebInfo/4j18496e/arm64-v8a/CMakeFiles/TargetDirectories.txt +27 -0
  59. package/android/.cxx/RelWithDebInfo/4j18496e/arm64-v8a/CMakeFiles/cmake.check_cache +1 -0
  60. package/android/.cxx/RelWithDebInfo/4j18496e/arm64-v8a/CMakeFiles/rules.ninja +198 -0
  61. package/android/.cxx/RelWithDebInfo/4j18496e/arm64-v8a/CPackConfig.cmake +71 -0
  62. package/android/.cxx/RelWithDebInfo/4j18496e/arm64-v8a/CPackSourceConfig.cmake +79 -0
  63. package/android/.cxx/RelWithDebInfo/4j18496e/arm64-v8a/additional_project_files.txt +48 -0
  64. package/android/.cxx/RelWithDebInfo/4j18496e/arm64-v8a/android_gradle_build.json +106 -0
  65. package/android/.cxx/RelWithDebInfo/4j18496e/arm64-v8a/android_gradle_build_mini.json +87 -0
  66. package/android/.cxx/RelWithDebInfo/4j18496e/arm64-v8a/build.ninja +954 -0
  67. package/android/.cxx/RelWithDebInfo/4j18496e/arm64-v8a/build_file_index.txt +3 -0
  68. package/android/.cxx/RelWithDebInfo/4j18496e/arm64-v8a/cmake_install.cmake +59 -0
  69. package/android/.cxx/RelWithDebInfo/4j18496e/arm64-v8a/compile_commands.json +277 -0
  70. package/android/.cxx/RelWithDebInfo/4j18496e/arm64-v8a/compile_commands.json.bin +0 -0
  71. package/android/.cxx/RelWithDebInfo/4j18496e/arm64-v8a/configure_fingerprint.bin +33 -0
  72. package/android/.cxx/RelWithDebInfo/4j18496e/arm64-v8a/libyuv/cmake_install.cmake +87 -0
  73. package/android/.cxx/RelWithDebInfo/4j18496e/arm64-v8a/metadata_generation_command.txt +19 -0
  74. package/android/.cxx/RelWithDebInfo/4j18496e/arm64-v8a/prefab_config.json +4 -0
  75. package/android/.cxx/RelWithDebInfo/4j18496e/arm64-v8a/symbol_folder_index.txt +1 -0
  76. package/android/.cxx/RelWithDebInfo/4j18496e/armeabi-v7a/.cmake/api/v1/query/client-agp/cache-v2 +0 -0
  77. package/android/.cxx/RelWithDebInfo/4j18496e/armeabi-v7a/.cmake/api/v1/query/client-agp/cmakeFiles-v1 +0 -0
  78. package/android/.cxx/RelWithDebInfo/4j18496e/armeabi-v7a/.cmake/api/v1/query/client-agp/codemodel-v2 +0 -0
  79. package/android/.cxx/RelWithDebInfo/4j18496e/armeabi-v7a/.cmake/api/v1/reply/cache-v2-2d1ffe11487c93774ec8.json +1555 -0
  80. package/android/.cxx/RelWithDebInfo/4j18496e/armeabi-v7a/.cmake/api/v1/reply/cmakeFiles-v1-add1fe675e54139ba31d.json +242 -0
  81. package/android/.cxx/RelWithDebInfo/4j18496e/armeabi-v7a/.cmake/api/v1/reply/codemodel-v2-6f5df8c3a6b6a068f23b.json +167 -0
  82. package/android/.cxx/RelWithDebInfo/4j18496e/armeabi-v7a/.cmake/api/v1/reply/directory-.-RelWithDebInfo-d0094a50bb2071803777.json +14 -0
  83. package/android/.cxx/RelWithDebInfo/4j18496e/armeabi-v7a/.cmake/api/v1/reply/directory-libyuv-RelWithDebInfo-d90ccc1dc3ec9de91c2a.json +100 -0
  84. package/android/.cxx/RelWithDebInfo/4j18496e/armeabi-v7a/.cmake/api/v1/reply/index-2025-11-28T10-31-15-0830.json +92 -0
  85. package/android/.cxx/RelWithDebInfo/4j18496e/armeabi-v7a/.cmake/api/v1/reply/target-cpuid-RelWithDebInfo-2afe24ac22ece0474b5d.json +150 -0
  86. package/android/.cxx/RelWithDebInfo/4j18496e/armeabi-v7a/.cmake/api/v1/reply/target-faceantispoof-RelWithDebInfo-1e3a47629762dc371297.json +181 -0
  87. package/android/.cxx/RelWithDebInfo/4j18496e/armeabi-v7a/.cmake/api/v1/reply/target-fastyuv-RelWithDebInfo-399f40c0d7f52201b0df.json +190 -0
  88. package/android/.cxx/RelWithDebInfo/4j18496e/armeabi-v7a/.cmake/api/v1/reply/target-yuv-RelWithDebInfo-d63c69ad741549aa90d2.json +406 -0
  89. package/android/.cxx/RelWithDebInfo/4j18496e/armeabi-v7a/.cmake/api/v1/reply/target-yuv_common_objects-RelWithDebInfo-873ec2eea5dd4896d057.json +536 -0
  90. package/android/.cxx/RelWithDebInfo/4j18496e/armeabi-v7a/.cmake/api/v1/reply/target-yuv_neon-RelWithDebInfo-8f3b5b8996b46568c5bc.json +151 -0
  91. package/android/.cxx/RelWithDebInfo/4j18496e/armeabi-v7a/.cmake/api/v1/reply/target-yuv_shared-RelWithDebInfo-19bab1e79d76ef386a06.json +428 -0
  92. package/android/.cxx/RelWithDebInfo/4j18496e/armeabi-v7a/.cmake/api/v1/reply/target-yuvconstants-RelWithDebInfo-bc2a27cc3182d0e59087.json +150 -0
  93. package/android/.cxx/RelWithDebInfo/4j18496e/armeabi-v7a/.cmake/api/v1/reply/target-yuvconvert-RelWithDebInfo-8ac10adb877d77790cba.json +171 -0
  94. package/android/.cxx/RelWithDebInfo/4j18496e/armeabi-v7a/.ninja_deps +0 -0
  95. package/android/.cxx/RelWithDebInfo/4j18496e/armeabi-v7a/.ninja_log +65 -0
  96. package/android/.cxx/RelWithDebInfo/4j18496e/armeabi-v7a/CMakeCache.txt +463 -0
  97. package/android/.cxx/RelWithDebInfo/4j18496e/armeabi-v7a/CMakeFiles/3.22.1-g37088a8-dirty/CMakeCCompiler.cmake +72 -0
  98. package/android/.cxx/RelWithDebInfo/4j18496e/armeabi-v7a/CMakeFiles/3.22.1-g37088a8-dirty/CMakeCXXCompiler.cmake +83 -0
  99. package/android/.cxx/RelWithDebInfo/4j18496e/armeabi-v7a/CMakeFiles/3.22.1-g37088a8-dirty/CMakeDetermineCompilerABI_C.bin +0 -0
  100. package/android/.cxx/RelWithDebInfo/4j18496e/armeabi-v7a/CMakeFiles/3.22.1-g37088a8-dirty/CMakeDetermineCompilerABI_CXX.bin +0 -0
  101. package/android/.cxx/RelWithDebInfo/4j18496e/armeabi-v7a/CMakeFiles/3.22.1-g37088a8-dirty/CMakeSystem.cmake +15 -0
  102. package/android/.cxx/RelWithDebInfo/4j18496e/armeabi-v7a/CMakeFiles/3.22.1-g37088a8-dirty/CompilerIdC/CMakeCCompilerId.c +803 -0
  103. package/android/.cxx/RelWithDebInfo/4j18496e/armeabi-v7a/CMakeFiles/3.22.1-g37088a8-dirty/CompilerIdC/CMakeCCompilerId.o +0 -0
  104. package/android/.cxx/RelWithDebInfo/4j18496e/armeabi-v7a/CMakeFiles/3.22.1-g37088a8-dirty/CompilerIdCXX/CMakeCXXCompilerId.cpp +791 -0
  105. package/android/.cxx/RelWithDebInfo/4j18496e/armeabi-v7a/CMakeFiles/3.22.1-g37088a8-dirty/CompilerIdCXX/CMakeCXXCompilerId.o +0 -0
  106. package/android/.cxx/RelWithDebInfo/4j18496e/armeabi-v7a/CMakeFiles/CMakeOutput.log +268 -0
  107. package/android/.cxx/RelWithDebInfo/4j18496e/armeabi-v7a/CMakeFiles/TargetDirectories.txt +25 -0
  108. package/android/.cxx/RelWithDebInfo/4j18496e/armeabi-v7a/CMakeFiles/cmake.check_cache +1 -0
  109. package/android/.cxx/RelWithDebInfo/4j18496e/armeabi-v7a/CMakeFiles/rules.ninja +178 -0
  110. package/android/.cxx/RelWithDebInfo/4j18496e/armeabi-v7a/CPackConfig.cmake +71 -0
  111. package/android/.cxx/RelWithDebInfo/4j18496e/armeabi-v7a/CPackSourceConfig.cmake +79 -0
  112. package/android/.cxx/RelWithDebInfo/4j18496e/armeabi-v7a/additional_project_files.txt +44 -0
  113. package/android/.cxx/RelWithDebInfo/4j18496e/armeabi-v7a/android_gradle_build.json +96 -0
  114. package/android/.cxx/RelWithDebInfo/4j18496e/armeabi-v7a/android_gradle_build_mini.json +77 -0
  115. package/android/.cxx/RelWithDebInfo/4j18496e/armeabi-v7a/build.ninja +937 -0
  116. package/android/.cxx/RelWithDebInfo/4j18496e/armeabi-v7a/build_file_index.txt +3 -0
  117. package/android/.cxx/RelWithDebInfo/4j18496e/armeabi-v7a/cmake_install.cmake +59 -0
  118. package/android/.cxx/RelWithDebInfo/4j18496e/armeabi-v7a/compile_commands.json +257 -0
  119. package/android/.cxx/RelWithDebInfo/4j18496e/armeabi-v7a/compile_commands.json.bin +0 -0
  120. package/android/.cxx/RelWithDebInfo/4j18496e/armeabi-v7a/configure_fingerprint.bin +33 -0
  121. package/android/.cxx/RelWithDebInfo/4j18496e/armeabi-v7a/libyuv/cmake_install.cmake +87 -0
  122. package/android/.cxx/RelWithDebInfo/4j18496e/armeabi-v7a/metadata_generation_command.txt +19 -0
  123. package/android/.cxx/RelWithDebInfo/4j18496e/armeabi-v7a/prefab_config.json +4 -0
  124. package/android/.cxx/RelWithDebInfo/4j18496e/armeabi-v7a/symbol_folder_index.txt +1 -0
  125. package/android/.cxx/RelWithDebInfo/4j18496e/hash_key.txt +26 -0
  126. package/android/.cxx/RelWithDebInfo/4j18496e/x86/.cmake/api/v1/query/client-agp/cache-v2 +0 -0
  127. package/android/.cxx/RelWithDebInfo/4j18496e/x86/.cmake/api/v1/query/client-agp/cmakeFiles-v1 +0 -0
  128. package/android/.cxx/RelWithDebInfo/4j18496e/x86/.cmake/api/v1/query/client-agp/codemodel-v2 +0 -0
  129. package/android/.cxx/RelWithDebInfo/4j18496e/x86/.cmake/api/v1/reply/cache-v2-0d273fdde7ef8023cff3.json +1555 -0
  130. package/android/.cxx/RelWithDebInfo/4j18496e/x86/.cmake/api/v1/reply/cmakeFiles-v1-b5eb1b67ae71b7871ac6.json +242 -0
  131. package/android/.cxx/RelWithDebInfo/4j18496e/x86/.cmake/api/v1/reply/codemodel-v2-3aff40e717685bf9381e.json +158 -0
  132. package/android/.cxx/RelWithDebInfo/4j18496e/x86/.cmake/api/v1/reply/directory-.-RelWithDebInfo-d0094a50bb2071803777.json +14 -0
  133. package/android/.cxx/RelWithDebInfo/4j18496e/x86/.cmake/api/v1/reply/directory-libyuv-RelWithDebInfo-8ffc2a041aae2ce33cc6.json +100 -0
  134. package/android/.cxx/RelWithDebInfo/4j18496e/x86/.cmake/api/v1/reply/index-2025-11-28T10-31-17-0373.json +92 -0
  135. package/android/.cxx/RelWithDebInfo/4j18496e/x86/.cmake/api/v1/reply/target-cpuid-RelWithDebInfo-6ae80ea7f26ff6790278.json +136 -0
  136. package/android/.cxx/RelWithDebInfo/4j18496e/x86/.cmake/api/v1/reply/target-faceantispoof-RelWithDebInfo-6edf524952a2089a233a.json +181 -0
  137. package/android/.cxx/RelWithDebInfo/4j18496e/x86/.cmake/api/v1/reply/target-fastyuv-RelWithDebInfo-8884cf96d359d9f0ca44.json +157 -0
  138. package/android/.cxx/RelWithDebInfo/4j18496e/x86/.cmake/api/v1/reply/target-yuv-RelWithDebInfo-f975dc321e6aea5db346.json +368 -0
  139. package/android/.cxx/RelWithDebInfo/4j18496e/x86/.cmake/api/v1/reply/target-yuv_common_objects-RelWithDebInfo-2f4a12965004c2de4e70.json +522 -0
  140. package/android/.cxx/RelWithDebInfo/4j18496e/x86/.cmake/api/v1/reply/target-yuv_shared-RelWithDebInfo-e345bd47425b6cacb14b.json +390 -0
  141. package/android/.cxx/RelWithDebInfo/4j18496e/x86/.cmake/api/v1/reply/target-yuvconstants-RelWithDebInfo-b99502b5984c20153a0c.json +136 -0
  142. package/android/.cxx/RelWithDebInfo/4j18496e/x86/.cmake/api/v1/reply/target-yuvconvert-RelWithDebInfo-4e298834e996ad01af71.json +157 -0
  143. package/android/.cxx/RelWithDebInfo/4j18496e/x86/.ninja_deps +0 -0
  144. package/android/.cxx/RelWithDebInfo/4j18496e/x86/.ninja_log +61 -0
  145. package/android/.cxx/RelWithDebInfo/4j18496e/x86/CMakeCache.txt +463 -0
  146. package/android/.cxx/RelWithDebInfo/4j18496e/x86/CMakeFiles/3.22.1-g37088a8-dirty/CMakeCCompiler.cmake +72 -0
  147. package/android/.cxx/RelWithDebInfo/4j18496e/x86/CMakeFiles/3.22.1-g37088a8-dirty/CMakeCXXCompiler.cmake +83 -0
  148. package/android/.cxx/RelWithDebInfo/4j18496e/x86/CMakeFiles/3.22.1-g37088a8-dirty/CMakeDetermineCompilerABI_C.bin +0 -0
  149. package/android/.cxx/RelWithDebInfo/4j18496e/x86/CMakeFiles/3.22.1-g37088a8-dirty/CMakeDetermineCompilerABI_CXX.bin +0 -0
  150. package/android/.cxx/RelWithDebInfo/4j18496e/x86/CMakeFiles/3.22.1-g37088a8-dirty/CMakeSystem.cmake +15 -0
  151. package/android/.cxx/RelWithDebInfo/4j18496e/x86/CMakeFiles/3.22.1-g37088a8-dirty/CompilerIdC/CMakeCCompilerId.c +803 -0
  152. package/android/.cxx/RelWithDebInfo/4j18496e/x86/CMakeFiles/3.22.1-g37088a8-dirty/CompilerIdC/CMakeCCompilerId.o +0 -0
  153. package/android/.cxx/RelWithDebInfo/4j18496e/x86/CMakeFiles/3.22.1-g37088a8-dirty/CompilerIdCXX/CMakeCXXCompilerId.cpp +791 -0
  154. package/android/.cxx/RelWithDebInfo/4j18496e/x86/CMakeFiles/3.22.1-g37088a8-dirty/CompilerIdCXX/CMakeCXXCompilerId.o +0 -0
  155. package/android/.cxx/RelWithDebInfo/4j18496e/x86/CMakeFiles/CMakeOutput.log +258 -0
  156. package/android/.cxx/RelWithDebInfo/4j18496e/x86/CMakeFiles/TargetDirectories.txt +24 -0
  157. package/android/.cxx/RelWithDebInfo/4j18496e/x86/CMakeFiles/cmake.check_cache +1 -0
  158. package/android/.cxx/RelWithDebInfo/4j18496e/x86/CMakeFiles/rules.ninja +168 -0
  159. package/android/.cxx/RelWithDebInfo/4j18496e/x86/CPackConfig.cmake +71 -0
  160. package/android/.cxx/RelWithDebInfo/4j18496e/x86/CPackSourceConfig.cmake +79 -0
  161. package/android/.cxx/RelWithDebInfo/4j18496e/x86/additional_project_files.txt +40 -0
  162. package/android/.cxx/RelWithDebInfo/4j18496e/x86/android_gradle_build.json +91 -0
  163. package/android/.cxx/RelWithDebInfo/4j18496e/x86/android_gradle_build_mini.json +72 -0
  164. package/android/.cxx/RelWithDebInfo/4j18496e/x86/build.ninja +844 -0
  165. package/android/.cxx/RelWithDebInfo/4j18496e/x86/build_file_index.txt +3 -0
  166. package/android/.cxx/RelWithDebInfo/4j18496e/x86/cmake_install.cmake +59 -0
  167. package/android/.cxx/RelWithDebInfo/4j18496e/x86/compile_commands.json +237 -0
  168. package/android/.cxx/RelWithDebInfo/4j18496e/x86/compile_commands.json.bin +0 -0
  169. package/android/.cxx/RelWithDebInfo/4j18496e/x86/configure_fingerprint.bin +33 -0
  170. package/android/.cxx/RelWithDebInfo/4j18496e/x86/libyuv/cmake_install.cmake +87 -0
  171. package/android/.cxx/RelWithDebInfo/4j18496e/x86/metadata_generation_command.txt +19 -0
  172. package/android/.cxx/RelWithDebInfo/4j18496e/x86/prefab_config.json +4 -0
  173. package/android/.cxx/RelWithDebInfo/4j18496e/x86/symbol_folder_index.txt +1 -0
  174. package/android/.cxx/RelWithDebInfo/4j18496e/x86_64/.cmake/api/v1/query/client-agp/cache-v2 +0 -0
  175. package/android/.cxx/RelWithDebInfo/4j18496e/x86_64/.cmake/api/v1/query/client-agp/cmakeFiles-v1 +0 -0
  176. package/android/.cxx/RelWithDebInfo/4j18496e/x86_64/.cmake/api/v1/query/client-agp/codemodel-v2 +0 -0
  177. package/android/.cxx/RelWithDebInfo/4j18496e/x86_64/.cmake/api/v1/reply/cache-v2-dc05d184ae0d43117f44.json +1555 -0
  178. package/android/.cxx/RelWithDebInfo/4j18496e/x86_64/.cmake/api/v1/reply/cmakeFiles-v1-30b2c98f8b47b6cd442b.json +242 -0
  179. package/android/.cxx/RelWithDebInfo/4j18496e/x86_64/.cmake/api/v1/reply/codemodel-v2-3c7b39b9eebd0ee8b8ac.json +158 -0
  180. package/android/.cxx/RelWithDebInfo/4j18496e/x86_64/.cmake/api/v1/reply/directory-.-RelWithDebInfo-d0094a50bb2071803777.json +14 -0
  181. package/android/.cxx/RelWithDebInfo/4j18496e/x86_64/.cmake/api/v1/reply/directory-libyuv-RelWithDebInfo-bf3551b76e6b80c04175.json +100 -0
  182. package/android/.cxx/RelWithDebInfo/4j18496e/x86_64/.cmake/api/v1/reply/index-2025-11-28T10-31-17-0962.json +92 -0
  183. package/android/.cxx/RelWithDebInfo/4j18496e/x86_64/.cmake/api/v1/reply/target-cpuid-RelWithDebInfo-18ad619be4c65a6867f1.json +136 -0
  184. package/android/.cxx/RelWithDebInfo/4j18496e/x86_64/.cmake/api/v1/reply/target-faceantispoof-RelWithDebInfo-5e42ed443d91c90a4528.json +181 -0
  185. package/android/.cxx/RelWithDebInfo/4j18496e/x86_64/.cmake/api/v1/reply/target-fastyuv-RelWithDebInfo-bce1d813646a721cd018.json +157 -0
  186. package/android/.cxx/RelWithDebInfo/4j18496e/x86_64/.cmake/api/v1/reply/target-yuv-RelWithDebInfo-9c0ffc48e253ea51b2b0.json +368 -0
  187. package/android/.cxx/RelWithDebInfo/4j18496e/x86_64/.cmake/api/v1/reply/target-yuv_common_objects-RelWithDebInfo-2f4a12965004c2de4e70.json +522 -0
  188. package/android/.cxx/RelWithDebInfo/4j18496e/x86_64/.cmake/api/v1/reply/target-yuv_shared-RelWithDebInfo-e00c3ff4f11fdc3ada16.json +390 -0
  189. package/android/.cxx/RelWithDebInfo/4j18496e/x86_64/.cmake/api/v1/reply/target-yuvconstants-RelWithDebInfo-3c9aff03082eae586c2e.json +136 -0
  190. package/android/.cxx/RelWithDebInfo/4j18496e/x86_64/.cmake/api/v1/reply/target-yuvconvert-RelWithDebInfo-241d3dca03388438c8a7.json +157 -0
  191. package/android/.cxx/RelWithDebInfo/4j18496e/x86_64/.ninja_deps +0 -0
  192. package/android/.cxx/RelWithDebInfo/4j18496e/x86_64/.ninja_log +61 -0
  193. package/android/.cxx/RelWithDebInfo/4j18496e/x86_64/CMakeCache.txt +463 -0
  194. package/android/.cxx/RelWithDebInfo/4j18496e/x86_64/CMakeFiles/3.22.1-g37088a8-dirty/CMakeCCompiler.cmake +72 -0
  195. package/android/.cxx/RelWithDebInfo/4j18496e/x86_64/CMakeFiles/3.22.1-g37088a8-dirty/CMakeCXXCompiler.cmake +83 -0
  196. package/android/.cxx/RelWithDebInfo/4j18496e/x86_64/CMakeFiles/3.22.1-g37088a8-dirty/CMakeDetermineCompilerABI_C.bin +0 -0
  197. package/android/.cxx/RelWithDebInfo/4j18496e/x86_64/CMakeFiles/3.22.1-g37088a8-dirty/CMakeDetermineCompilerABI_CXX.bin +0 -0
  198. package/android/.cxx/RelWithDebInfo/4j18496e/x86_64/CMakeFiles/3.22.1-g37088a8-dirty/CMakeSystem.cmake +15 -0
  199. package/android/.cxx/RelWithDebInfo/4j18496e/x86_64/CMakeFiles/3.22.1-g37088a8-dirty/CompilerIdC/CMakeCCompilerId.c +803 -0
  200. package/android/.cxx/RelWithDebInfo/4j18496e/x86_64/CMakeFiles/3.22.1-g37088a8-dirty/CompilerIdC/CMakeCCompilerId.o +0 -0
  201. package/android/.cxx/RelWithDebInfo/4j18496e/x86_64/CMakeFiles/3.22.1-g37088a8-dirty/CompilerIdCXX/CMakeCXXCompilerId.cpp +791 -0
  202. package/android/.cxx/RelWithDebInfo/4j18496e/x86_64/CMakeFiles/3.22.1-g37088a8-dirty/CompilerIdCXX/CMakeCXXCompilerId.o +0 -0
  203. package/android/.cxx/RelWithDebInfo/4j18496e/x86_64/CMakeFiles/CMakeOutput.log +258 -0
  204. package/android/.cxx/RelWithDebInfo/4j18496e/x86_64/CMakeFiles/TargetDirectories.txt +24 -0
  205. package/android/.cxx/RelWithDebInfo/4j18496e/x86_64/CMakeFiles/cmake.check_cache +1 -0
  206. package/android/.cxx/RelWithDebInfo/4j18496e/x86_64/CMakeFiles/rules.ninja +168 -0
  207. package/android/.cxx/RelWithDebInfo/4j18496e/x86_64/CPackConfig.cmake +71 -0
  208. package/android/.cxx/RelWithDebInfo/4j18496e/x86_64/CPackSourceConfig.cmake +79 -0
  209. package/android/.cxx/RelWithDebInfo/4j18496e/x86_64/additional_project_files.txt +40 -0
  210. package/android/.cxx/RelWithDebInfo/4j18496e/x86_64/android_gradle_build.json +91 -0
  211. package/android/.cxx/RelWithDebInfo/4j18496e/x86_64/android_gradle_build_mini.json +72 -0
  212. package/android/.cxx/RelWithDebInfo/4j18496e/x86_64/build.ninja +844 -0
  213. package/android/.cxx/RelWithDebInfo/4j18496e/x86_64/build_file_index.txt +3 -0
  214. package/android/.cxx/RelWithDebInfo/4j18496e/x86_64/cmake_install.cmake +59 -0
  215. package/android/.cxx/RelWithDebInfo/4j18496e/x86_64/compile_commands.json +237 -0
  216. package/android/.cxx/RelWithDebInfo/4j18496e/x86_64/compile_commands.json.bin +0 -0
  217. package/android/.cxx/RelWithDebInfo/4j18496e/x86_64/configure_fingerprint.bin +33 -0
  218. package/android/.cxx/RelWithDebInfo/4j18496e/x86_64/libyuv/cmake_install.cmake +87 -0
  219. package/android/.cxx/RelWithDebInfo/4j18496e/x86_64/metadata_generation_command.txt +19 -0
  220. package/android/.cxx/RelWithDebInfo/4j18496e/x86_64/prefab_config.json +4 -0
  221. package/android/.cxx/RelWithDebInfo/4j18496e/x86_64/symbol_folder_index.txt +1 -0
  222. package/android/.cxx/tools/release/arm64-v8a/compile_commands.json +277 -0
  223. package/android/.cxx/tools/release/armeabi-v7a/compile_commands.json +257 -0
  224. package/android/.cxx/tools/release/x86/compile_commands.json +237 -0
  225. package/android/.cxx/tools/release/x86_64/compile_commands.json +237 -0
  226. package/android/build/.transforms/4ebf3dd0dca4f83fe1776360e21ded81/transformed/classes/classes_dex/classes.dex +0 -0
  227. package/android/build/.transforms/c0a07cd9442d741ad3cef3760159211f/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/faceantispoof/AntiSpoofingResult.dex +0 -0
  228. package/android/build/.transforms/c0a07cd9442d741ad3cef3760159211f/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/faceantispoof/FaceAntiSpoofFrameProcessor.dex +0 -0
  229. package/android/build/.transforms/c0a07cd9442d741ad3cef3760159211f/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/faceantispoof/FaceAntiSpoofingAdvanced$Companion.dex +0 -0
  230. package/android/build/.transforms/c0a07cd9442d741ad3cef3760159211f/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/faceantispoof/FaceAntiSpoofingAdvanced$SpoofDetectionResult.dex +0 -0
  231. package/android/build/.transforms/c0a07cd9442d741ad3cef3760159211f/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/faceantispoof/FaceAntiSpoofingAdvanced.dex +0 -0
  232. package/android/build/.transforms/c0a07cd9442d741ad3cef3760159211f/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/faceantispoof/YuvToFloatArrayConverter$Companion.dex +0 -0
  233. package/android/build/.transforms/c0a07cd9442d741ad3cef3760159211f/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/faceantispoof/YuvToFloatArrayConverter.dex +0 -0
  234. package/android/build/intermediates/compile_library_classes_jar/debug/bundleLibCompileToJarDebug/classes.jar +0 -0
  235. package/android/build/intermediates/cxx/Debug/2a1it684/logs/arm64-v8a/build_stdout_targets.txt +1 -62
  236. package/android/build/intermediates/cxx/Debug/2a1it684/logs/arm64-v8a/generate_cxx_metadata_1929_timing.txt +11 -0
  237. package/android/build/intermediates/cxx/Debug/2a1it684/logs/arm64-v8a/generate_cxx_metadata_2140_timing.txt +9 -0
  238. package/android/build/intermediates/cxx/Debug/2a1it684/logs/armeabi-v7a/build_stdout_targets.txt +1 -58
  239. package/android/build/intermediates/cxx/Debug/2a1it684/logs/armeabi-v7a/{generate_cxx_metadata_944_timing.txt → generate_cxx_metadata_1929_timing.txt} +1 -1
  240. package/android/build/intermediates/cxx/Debug/2a1it684/logs/{x86/generate_cxx_metadata_944_timing.txt → armeabi-v7a/generate_cxx_metadata_2140_timing.txt} +1 -1
  241. package/android/build/intermediates/cxx/Debug/2a1it684/logs/x86/build_stdout_targets.txt +1 -54
  242. package/android/build/intermediates/cxx/Debug/2a1it684/logs/x86/generate_cxx_metadata_1929_timing.txt +3 -0
  243. package/android/build/intermediates/cxx/Debug/2a1it684/logs/x86/generate_cxx_metadata_2140_timing.txt +3 -0
  244. package/android/build/intermediates/cxx/Debug/2a1it684/logs/x86_64/build_stdout_targets.txt +1 -54
  245. package/android/build/intermediates/cxx/Debug/2a1it684/logs/x86_64/generate_cxx_metadata_1929_timing.txt +9 -0
  246. package/android/build/intermediates/cxx/Debug/2a1it684/logs/x86_64/generate_cxx_metadata_2140_timing.txt +9 -0
  247. package/android/build/intermediates/cxx/Debug/2a1it684/obj/arm64-v8a/libfastyuv.so +0 -0
  248. package/android/build/intermediates/cxx/Debug/2a1it684/obj/armeabi-v7a/libfastyuv.so +0 -0
  249. package/android/build/intermediates/cxx/Debug/2a1it684/obj/x86/libfastyuv.so +0 -0
  250. package/android/build/intermediates/cxx/Debug/2a1it684/obj/x86_64/libfastyuv.so +0 -0
  251. package/android/build/intermediates/incremental/debug/packageDebugResources/compile-file-map.properties +1 -1
  252. package/android/build/intermediates/library_jni/debug/copyDebugJniLibsProjectOnly/jni/arm64-v8a/libfastyuv.so +0 -0
  253. package/android/build/intermediates/library_jni/debug/copyDebugJniLibsProjectOnly/jni/armeabi-v7a/libfastyuv.so +0 -0
  254. package/android/build/intermediates/library_jni/debug/copyDebugJniLibsProjectOnly/jni/x86/libfastyuv.so +0 -0
  255. package/android/build/intermediates/library_jni/debug/copyDebugJniLibsProjectOnly/jni/x86_64/libfastyuv.so +0 -0
  256. package/android/build/intermediates/merged_native_libs/debug/mergeDebugNativeLibs/out/lib/arm64-v8a/libfastyuv.so +0 -0
  257. package/android/build/intermediates/merged_native_libs/debug/mergeDebugNativeLibs/out/lib/armeabi-v7a/libfastyuv.so +0 -0
  258. package/android/build/intermediates/merged_native_libs/debug/mergeDebugNativeLibs/out/lib/x86/libfastyuv.so +0 -0
  259. package/android/build/intermediates/merged_native_libs/debug/mergeDebugNativeLibs/out/lib/x86_64/libfastyuv.so +0 -0
  260. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/faceantispoof/AntiSpoofingResult.class +0 -0
  261. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/faceantispoof/FaceAntiSpoofFrameProcessor.class +0 -0
  262. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/faceantispoof/FaceAntiSpoofingAdvanced$Companion.class +0 -0
  263. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/faceantispoof/FaceAntiSpoofingAdvanced$SpoofDetectionResult.class +0 -0
  264. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/faceantispoof/FaceAntiSpoofingAdvanced.class +0 -0
  265. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/faceantispoof/YuvToFloatArrayConverter$Companion.class +0 -0
  266. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/faceantispoof/YuvToFloatArrayConverter.class +0 -0
  267. package/android/build/intermediates/runtime_library_classes_jar/debug/bundleLibRuntimeToJarDebug/classes.jar +0 -0
  268. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab +0 -0
  269. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.keystream +0 -0
  270. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.keystream.len +0 -0
  271. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.len +0 -0
  272. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.values.at +0 -0
  273. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab_i +0 -0
  274. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab +0 -0
  275. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.keystream +0 -0
  276. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.keystream.len +0 -0
  277. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.len +0 -0
  278. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.values.at +0 -0
  279. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab_i +0 -0
  280. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab +0 -0
  281. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.keystream +0 -0
  282. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.keystream.len +0 -0
  283. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.len +0 -0
  284. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.values.at +0 -0
  285. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab_i +0 -0
  286. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab +0 -0
  287. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab.values.at +0 -0
  288. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab +0 -0
  289. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.keystream +0 -0
  290. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.keystream.len +0 -0
  291. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.len +0 -0
  292. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.values.at +0 -0
  293. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab_i +0 -0
  294. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab +0 -0
  295. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.keystream +0 -0
  296. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.keystream.len +0 -0
  297. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.len +0 -0
  298. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.values.at +0 -0
  299. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab_i +0 -0
  300. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab +0 -0
  301. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.keystream +0 -0
  302. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.keystream.len +0 -0
  303. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.len +0 -0
  304. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.values.at +0 -0
  305. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab_i +0 -0
  306. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab +0 -0
  307. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.keystream +0 -0
  308. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.keystream.len +0 -0
  309. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.len +0 -0
  310. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.values.at +0 -0
  311. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab_i +0 -0
  312. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab +0 -0
  313. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.keystream +0 -0
  314. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.keystream.len +0 -0
  315. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.len +0 -0
  316. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.values.at +0 -0
  317. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab_i +0 -0
  318. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/counters.tab +1 -1
  319. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab +0 -0
  320. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.keystream +0 -0
  321. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.keystream.len +0 -0
  322. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.len +0 -0
  323. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.values.at +0 -0
  324. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab_i +0 -0
  325. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab +0 -0
  326. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.keystream +0 -0
  327. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.keystream.len +0 -0
  328. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.len +0 -0
  329. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.values.at +0 -0
  330. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab_i +0 -0
  331. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab +0 -0
  332. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.keystream +0 -0
  333. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.keystream.len +0 -0
  334. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.len +0 -0
  335. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.values.at +0 -0
  336. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab_i +0 -0
  337. package/android/build/kotlin/compileDebugKotlin/cacheable/last-build.bin +0 -0
  338. package/android/build/kotlin/compileDebugKotlin/classpath-snapshot/shrunk-classpath-snapshot.bin +0 -0
  339. package/android/build/kotlin/compileDebugKotlin/local-state/build-history.bin +0 -0
  340. package/android/build/tmp/compileDebugJavaWithJavac/previous-compilation-data.bin +0 -0
  341. package/android/build/tmp/kotlin-classes/debug/com/faceantispoof/AntiSpoofingResult.class +0 -0
  342. package/android/build/tmp/kotlin-classes/debug/com/faceantispoof/FaceAntiSpoofFrameProcessor.class +0 -0
  343. package/android/build/tmp/kotlin-classes/debug/com/faceantispoof/FaceAntiSpoofingAdvanced$Companion.class +0 -0
  344. package/android/build/tmp/kotlin-classes/debug/com/faceantispoof/FaceAntiSpoofingAdvanced$SpoofDetectionResult.class +0 -0
  345. package/android/build/tmp/kotlin-classes/debug/com/faceantispoof/FaceAntiSpoofingAdvanced.class +0 -0
  346. package/android/build/tmp/kotlin-classes/debug/com/faceantispoof/YuvToFloatArrayConverter$Companion.class +0 -0
  347. package/android/build/tmp/kotlin-classes/debug/com/faceantispoof/YuvToFloatArrayConverter.class +0 -0
  348. package/android/build.gradle +3 -0
  349. package/android/src/main/cpp/fast_yuv.cpp +17 -7
  350. package/android/src/main/java/com/faceantispoof/FaceAntiSpoofFrameProcessor.kt +1 -7
  351. package/android/src/main/java/com/faceantispoof/FaceAntiSpoofingAdvanced.kt +19 -280
  352. package/android/src/main/java/com/faceantispoof/YuvToFloatArrayConverter.kt +34 -2
  353. package/index.js +34 -5
  354. package/package.json +1 -1
  355. package/android/build/.transforms/c0a07cd9442d741ad3cef3760159211f/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/faceantispoof/FaceAntiSpoofingAdvanced$EnvironmentAssessment.dex +0 -0
  356. package/android/build/.transforms/c0a07cd9442d741ad3cef3760159211f/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/faceantispoof/ImageFormatEncoder$ImageFormat.dex +0 -0
  357. package/android/build/.transforms/c0a07cd9442d741ad3cef3760159211f/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/faceantispoof/ImageFormatEncoder$WhenMappings.dex +0 -0
  358. package/android/build/.transforms/c0a07cd9442d741ad3cef3760159211f/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/faceantispoof/ImageFormatEncoder.dex +0 -0
  359. package/android/build/.transforms/c0a07cd9442d741ad3cef3760159211f/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/faceantispoof/JpegEncoder$Companion.dex +0 -0
  360. package/android/build/.transforms/c0a07cd9442d741ad3cef3760159211f/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/faceantispoof/JpegEncoder.dex +0 -0
  361. package/android/build/intermediates/cxx/Debug/2a1it684/logs/arm64-v8a/generate_cxx_metadata_947_timing.txt +0 -9
  362. package/android/build/intermediates/cxx/Debug/2a1it684/logs/x86_64/generate_cxx_metadata_944_timing.txt +0 -9
  363. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/faceantispoof/FaceAntiSpoofingAdvanced$EnvironmentAssessment.class +0 -0
  364. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/faceantispoof/ImageFormatEncoder$ImageFormat.class +0 -0
  365. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/faceantispoof/ImageFormatEncoder$WhenMappings.class +0 -0
  366. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/faceantispoof/ImageFormatEncoder.class +0 -0
  367. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/faceantispoof/JpegEncoder$Companion.class +0 -0
  368. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/faceantispoof/JpegEncoder.class +0 -0
  369. package/android/build/tmp/kotlin-classes/debug/com/faceantispoof/FaceAntiSpoofingAdvanced$EnvironmentAssessment.class +0 -0
  370. package/android/build/tmp/kotlin-classes/debug/com/faceantispoof/ImageFormatEncoder$ImageFormat.class +0 -0
  371. package/android/build/tmp/kotlin-classes/debug/com/faceantispoof/ImageFormatEncoder$WhenMappings.class +0 -0
  372. package/android/build/tmp/kotlin-classes/debug/com/faceantispoof/ImageFormatEncoder.class +0 -0
  373. package/android/build/tmp/kotlin-classes/debug/com/faceantispoof/JpegEncoder$Companion.class +0 -0
  374. package/android/build/tmp/kotlin-classes/debug/com/faceantispoof/JpegEncoder.class +0 -0
  375. package/android/src/main/java/com/faceantispoof/ImageFormatEncoder.kt +0 -516
  376. package/android/src/main/java/com/faceantispoof/JpegEncoder.kt +0 -204
  377. /package/android/.cxx/Debug/2a1it684/armeabi-v7a/.cmake/api/v1/reply/{index-2025-11-27T04-19-25-0344.json → index-2025-11-28T10-11-49-0251.json} +0 -0
  378. /package/android/.cxx/Debug/2a1it684/x86/.cmake/api/v1/reply/{index-2025-11-27T04-19-33-0139.json → index-2025-11-28T10-11-55-0886.json} +0 -0
  379. /package/android/.cxx/Debug/2a1it684/x86_64/.cmake/api/v1/reply/{index-2025-11-27T05-31-26-0486.json → index-2025-11-28T11-07-01-0193.json} +0 -0
@@ -14,15 +14,11 @@ import java.nio.ByteOrder
14
14
  import java.util.*
15
15
  import android.util.Log
16
16
  import kotlin.collections.ArrayList
17
- import android.util.Base64
18
- import com.faceantispoof.ImageFormatEncoder
19
- import com.faceantispoof.ImageFormatEncoder.ImageFormat
20
-
21
17
  class FaceAntiSpoofingAdvanced(private val assetManager: AssetManager) {
22
18
 
23
19
  companion object {
24
20
  const val INPUT_IMAGE_SIZE = 256
25
- const val BASE_THRESHOLD = 0.2f
21
+ const val BASE_THRESHOLD = 0.35f // Reduced from 0.2f to be more lenient with real faces
26
22
  const val ROUTE_INDEX = 6
27
23
  const val LAPLACE_THRESHOLD = 50
28
24
  const val LAPLACIAN_THRESHOLD = 1000
@@ -34,26 +30,16 @@ class FaceAntiSpoofingAdvanced(private val assetManager: AssetManager) {
34
30
  const val ACCELERATOR_GPU = "GPU"
35
31
  const val ACCELERATOR_NNAPI = "NNAPI"
36
32
 
37
- // ENHANCED IMAGE FORMAT CONFIGURATION FOR FACE RECOGNITION
38
- // Optimized for maximum quality for face detection APIs
39
- const val DEFAULT_IMAGE_FORMAT = "JPEG" // Options: "JPEG", "PNG", "BMP"
40
- const val DEFAULT_JPEG_QUALITY = 92 // Increased from 85 to 92 for better quality
41
- const val DEFAULT_OUTPUT_RESOLUTION = 640 // 640×640 for face recognition
42
-
43
33
  // Advanced spoof detection constants
44
34
  private const val HISTORY_SIZE = 10
45
- private const val TEMPORAL_CONSISTENCY_THRESHOLD = 0.08f
46
- private const val SCORE_VARIANCE_THRESHOLD = 0.02f
35
+ private const val TEMPORAL_CONSISTENCY_THRESHOLD = 0.12f // More lenient for slightly moving faces
36
+ private const val SCORE_VARIANCE_THRESHOLD = 0.04f // Allow more score variance for real faces
47
37
  private const val MIN_FRAMES_FOR_ANALYSIS = 5
48
38
  private const val DYNAMIC_THRESHOLD_MULTIPLIER = 1.3f
49
39
  private const val TEXTURE_COMPLEXITY_THRESHOLD = 800
50
40
  private const val COLOR_SATURATION_THRESHOLD = 0.4f
51
41
  private const val DEPTH_VARIATION_THRESHOLD = 0.1f
52
42
 
53
- // STABILITY ENHANCEMENT CONSTANTS
54
- private const val BLUR_DETECTION_THRESHOLD = 100 // Laplacian score threshold
55
- private const val MIN_STABLE_FRAMES = 3 // Require stable frames before generating base64
56
- private const val MOTION_THRESHOLD = 0.1f // Limit motion/instability
57
43
  }
58
44
 
59
45
  private var interpreter: Interpreter? = null
@@ -61,11 +47,6 @@ class FaceAntiSpoofingAdvanced(private val assetManager: AssetManager) {
61
47
  private var gpuDelegate: GpuDelegate? = null
62
48
  private var currentAccelerator: String = ACCELERATOR_CPU
63
49
 
64
- // Image format configuration for face recognition
65
- private var outputImageFormat: String = DEFAULT_IMAGE_FORMAT
66
- private var outputImageQuality: Int = DEFAULT_JPEG_QUALITY
67
- private var outputImageResolution: Int = DEFAULT_OUTPUT_RESOLUTION
68
-
69
50
  // Reusable buffers to avoid per-frame allocations
70
51
  private val inputImageSize = INPUT_IMAGE_SIZE
71
52
  private val inputBuffer: ByteBuffer = ByteBuffer.allocateDirect(4 * inputImageSize * inputImageSize * 3).order(ByteOrder.nativeOrder())
@@ -83,21 +64,6 @@ class FaceAntiSpoofingAdvanced(private val assetManager: AssetManager) {
83
64
  private val laplacianHistory = LinkedList<Int>()
84
65
  private var frameCount = 0
85
66
  private var adaptiveThreshold = BASE_THRESHOLD
86
- private var environmentAssessment = EnvironmentAssessment()
87
-
88
- // STABILITY AND QUALITY TRACKING
89
- private var consecutiveQualityFrames = 0 // Track consecutive high-quality frames
90
- private var lastStableFrameTime = System.currentTimeMillis()
91
- private var lastProcessedBlurScore = 0
92
- private var frameStabilityScore = 0f
93
-
94
- data class EnvironmentAssessment(
95
- var avgBrightness: Float = 0f,
96
- var brightnessVariance: Float = 0f,
97
- var estimatedDistance: Float = 0f,
98
- var lightingConsistency: Float = 0f,
99
- var lastAssessmentTime: Long = 0
100
- )
101
67
 
102
68
  init {
103
69
  initializeInterpreter()
@@ -114,7 +80,7 @@ class FaceAntiSpoofingAdvanced(private val assetManager: AssetManager) {
114
80
  options.setNumThreads(optimalThreads)
115
81
 
116
82
  currentAccelerator = ACCELERATOR_CPU
117
- Log.i(TAG, "FORCED CPU-ONLY MODE - Bypassing GPU/NNAPI")
83
+ Log.i(TAG, "FORCED CPU-ONLY MODE - Bypassing GPU/NNAPI")
118
84
  Log.i(TAG, "Using $optimalThreads threads for CPU inference")
119
85
 
120
86
  interpreter = Interpreter(modelBuffer, options)
@@ -130,9 +96,9 @@ class FaceAntiSpoofingAdvanced(private val assetManager: AssetManager) {
130
96
  outputs[outputIndex0] = clssPred
131
97
  outputs[outputIndex1] = leafNodeMask
132
98
  isInitialized = true
133
- Log.i(TAG, "Face Anti-Spoof initialized | CPU-ONLY MODE | Threads: $optimalThreads")
99
+ Log.i(TAG, "Face Anti-Spoof initialized | CPU-ONLY MODE | Threads: $optimalThreads")
134
100
  } catch (e: Exception) {
135
- Log.e(TAG, " Failed to load TFLite model: ${e.message}", e)
101
+ Log.e(TAG, "FAILED to load TFLite model: ${e.message}", e)
136
102
  isInitialized = false
137
103
  currentAccelerator = ACCELERATOR_CPU
138
104
  }
@@ -177,57 +143,6 @@ class FaceAntiSpoofingAdvanced(private val assetManager: AssetManager) {
177
143
 
178
144
  fun getAccelerator(): String = currentAccelerator
179
145
 
180
- /**
181
- * Configure output image format for face recognition system.
182
- * Supports JPEG (compressed), PNG (lossless), or BMP (uncompressed).
183
- *
184
- * @param format Image format: "JPEG" (default), "PNG", or "BMP"
185
- * @param quality JPEG quality 0-100 (only applies to JPEG, ignored for PNG/BMP)
186
- * @param resolution Output resolution in pixels (640 for 640×640, etc.)
187
- */
188
- fun setImageFormatConfig(
189
- format: String = "JPEG",
190
- quality: Int = 85,
191
- resolution: Int = 640
192
- ) {
193
- val uppercaseFormat = format.uppercase()
194
- outputImageFormat = if (uppercaseFormat in listOf("JPEG", "PNG", "BMP")) {
195
- uppercaseFormat
196
- } else {
197
- "JPEG"
198
- }
199
- outputImageQuality = quality.coerceIn(1, 100)
200
- outputImageResolution = resolution.coerceIn(64, 2048)
201
- Log.d(TAG, "Image format config: $outputImageFormat quality=$outputImageQuality resolution=${outputImageResolution}×${outputImageResolution}")
202
- }
203
-
204
- /**
205
- * Get current image format configuration.
206
- * @return Map containing format, quality, and resolution
207
- */
208
- fun getImageFormatConfig(): Map<String, Any> {
209
- return mapOf(
210
- "format" to outputImageFormat,
211
- "quality" to outputImageQuality,
212
- "resolution" to outputImageResolution,
213
- "estimatedSize" to estimateImageSize()
214
- )
215
- }
216
-
217
- /**
218
- * Estimate output image size for current format configuration.
219
- * Useful for memory and network planning.
220
- */
221
- private fun estimateImageSize(): Long {
222
- val pixelCount = outputImageResolution.toLong() * outputImageResolution
223
- return when (outputImageFormat) {
224
- "JPEG" -> (pixelCount * (100 - outputImageQuality) * 0.0012).toLong() // Quality-based estimation
225
- "PNG" -> (pixelCount * 0.5).toLong() // PNG typically 2-4x larger than JPEG
226
- "BMP" -> pixelCount * 3 // Uncompressed RGB
227
- else -> (pixelCount * 0.12).toLong()
228
- }
229
- }
230
-
231
146
  fun advancedAntiSpoofing(nv21: ByteArray, width: Int, height: Int): AntiSpoofingResult {
232
147
  if (!isInitialized) {
233
148
  return AntiSpoofingResult(
@@ -240,23 +155,20 @@ class FaceAntiSpoofingAdvanced(private val assetManager: AssetManager) {
240
155
  isLive = false,
241
156
  confidence = 0f,
242
157
  label = "Not Initialized",
243
- spoofType = "UNKNOWN",
244
- imageFormat = outputImageFormat,
245
- imageResolution = outputImageResolution,
246
- imageQuality = outputImageQuality
158
+ spoofType = "UNKNOWN"
247
159
  )
248
160
  }
249
161
 
250
162
  // Enhanced input validation
251
- if (nv21.isEmpty()) {
252
- return AntiSpoofingResult(0f, 0, 0, 0f, 0f, 0f, false, 0f, "Error: Invalid NV21 buffer", "INVALID_INPUT",
253
- imageFormat = outputImageFormat, imageResolution = outputImageResolution, imageQuality = outputImageQuality)
163
+ if (nv21.isEmpty() || width <= 0 || height <= 0) {
164
+ Log.w(TAG, "Invalid input: nv21 empty=${nv21.isEmpty()}, width=$width, height=$height")
165
+ return AntiSpoofingResult(0f, 0, 0, 0f, 0f, 0f, false, 0f, "Invalid input parameters", "INVALID_INPUT")
254
166
  }
255
167
 
256
168
  val expectedSize = width * height + (width * height) / 2
257
169
  if (nv21.size < expectedSize) {
258
- return AntiSpoofingResult(0f, 0, 0, 0f, 0f, 0f, false, 0f, "Error: Buffer size mismatch", "INVALID_INPUT",
259
- imageFormat = outputImageFormat, imageResolution = outputImageResolution, imageQuality = outputImageQuality)
170
+ Log.w(TAG, "Buffer size mismatch: expected $expectedSize, got ${nv21.size}")
171
+ return AntiSpoofingResult(0f, 0, 0, 0f, 0f, 0f, false, 0f, "Buffer size mismatch", "INVALID_INPUT")
260
172
  }
261
173
 
262
174
  return try {
@@ -267,9 +179,6 @@ class FaceAntiSpoofingAdvanced(private val assetManager: AssetManager) {
267
179
  val colorSat = calculateColorSaturation(nv21, width, height)
268
180
  val temporalConsistency = calculateTemporalConsistency(nnScore)
269
181
 
270
- // Update adaptive threshold based on environment
271
- updateAdaptiveThreshold(nv21, width, height)
272
-
273
182
  // Multi-factor spoof detection
274
183
  val spoofDetection = detectSpoofType(
275
184
  nnScore,
@@ -292,53 +201,6 @@ class FaceAntiSpoofingAdvanced(private val assetManager: AssetManager) {
292
201
  spoofDetection
293
202
  )
294
203
 
295
- // Generate recognition image (JPEG/PNG/BMP) Base64 when face is live
296
- var recognitionImageBase64: String? = null
297
- val DEBUG_FORCE_BASE64 = false // Set to true to force Base64 generation for testing
298
-
299
- // STABILITY CHECK: Only generate base64 for high-quality, stable frames
300
- val isQualityFrame = laplacianScore > BLUR_DETECTION_THRESHOLD &&
301
- temporalConsistency < MOTION_THRESHOLD &&
302
- textureScore > TEXTURE_COMPLEXITY_THRESHOLD / 2
303
-
304
- if (isQualityFrame) {
305
- consecutiveQualityFrames++
306
- frameStabilityScore = (laplacianScore.toFloat() / 1000f).coerceIn(0f, 1f)
307
- } else {
308
- consecutiveQualityFrames = 0
309
- frameStabilityScore = 0f
310
- }
311
-
312
- // Only generate base64 after collecting stable frames
313
- val shouldGenerateBase64 = (isLive && (consecutiveQualityFrames >= MIN_STABLE_FRAMES || DEBUG_FORCE_BASE64)) ||
314
- DEBUG_FORCE_BASE64
315
-
316
- if (shouldGenerateBase64) {
317
- Log.d(TAG, "🔍 Quality Frame Detected - Stability Score: $frameStabilityScore (${consecutiveQualityFrames}/$MIN_STABLE_FRAMES frames)")
318
- Log.d(TAG, " Blur Score: $laplacianScore (threshold: $BLUR_DETECTION_THRESHOLD)")
319
- Log.d(TAG, " Motion: $temporalConsistency (threshold: $MOTION_THRESHOLD)")
320
- Log.d(TAG, " Texture: $textureScore (min: ${TEXTURE_COMPLEXITY_THRESHOLD / 2})")
321
-
322
- try {
323
- recognitionImageBase64 = generateRecognitionImageBase64(nv21, width, height)
324
- if (recognitionImageBase64 != null) {
325
- Log.d(TAG, "✅ Generated 640x640 JPEG Base64 for recognition API (size: ${recognitionImageBase64.length} bytes)")
326
- } else {
327
- Log.w(TAG, "⚠️ generateRecognitionImageBase64 returned null")
328
- }
329
- } catch (e: Exception) {
330
- Log.w(TAG, "❌ Failed to generate Base64: ${e.message}", e)
331
- // Continue without the image - it's not critical
332
- }
333
- } else {
334
- if (!isLive) {
335
- Log.d(TAG, "🚫 Not generating Base64 - Spoof detected (${spoofDetection.type})")
336
- } else {
337
- Log.d(TAG, "🚫 Waiting for stable frames... (${consecutiveQualityFrames}/$MIN_STABLE_FRAMES)")
338
- Log.d(TAG, " Quality Score: $frameStabilityScore | Blur: $laplacianScore | Motion: $temporalConsistency")
339
- }
340
- }
341
-
342
204
  AntiSpoofingResult(
343
205
  neuralNetworkScore = nnScore,
344
206
  laplacianScore = laplacianScore,
@@ -349,16 +211,11 @@ class FaceAntiSpoofingAdvanced(private val assetManager: AssetManager) {
349
211
  isLive = isLive,
350
212
  confidence = confidence,
351
213
  label = if (isLive) "Live Face" else "Spoof Face: ${spoofDetection.type}",
352
- spoofType = spoofDetection.type,
353
- recognitionImageBase64 = recognitionImageBase64,
354
- imageFormat = outputImageFormat,
355
- imageResolution = outputImageResolution,
356
- imageQuality = outputImageQuality
214
+ spoofType = spoofDetection.type
357
215
  )
358
216
  } catch (e: Exception) {
359
217
  Log.e(TAG, "Error in advancedAntiSpoofing", e)
360
- AntiSpoofingResult(0f, 0, 0, 0f, 0f, 0f, false, 0f, "Error: ${e.message}", "PROCESSING_ERROR",
361
- imageFormat = outputImageFormat, imageResolution = outputImageResolution, imageQuality = outputImageQuality)
218
+ AntiSpoofingResult(0f, 0, 0, 0f, 0f, 0f, false, 0f, "Error: ${e.message}", "PROCESSING_ERROR")
362
219
  }
363
220
  }
364
221
 
@@ -449,91 +306,6 @@ class FaceAntiSpoofingAdvanced(private val assetManager: AssetManager) {
449
306
  * @param height Original frame height
450
307
  * @return Base64 encoded image string, or null if generation fails
451
308
  */
452
- private fun generateRecognitionImageBase64(nv21: ByteArray, width: Int, height: Int): String? {
453
- return try {
454
- Log.d(TAG, "Starting HIGH-QUALITY ${outputImageResolution}×${outputImageResolution} $outputImageFormat generation...")
455
- Log.d(TAG, "Input: ${width}x${height}, JPEG Quality: $outputImageQuality (optimized for face detection)")
456
-
457
- // Convert NV21 to RGB byte array using HIGH-QUALITY BILINEAR interpolation
458
- val rgbBytes = ByteArray(outputImageResolution * outputImageResolution * 3)
459
- Log.d(TAG, "Allocated RGB buffer: ${rgbBytes.size} bytes")
460
-
461
- val startConvert = System.currentTimeMillis()
462
- val convertedRgb = yuvConverter.nv21ToRgbByteArray(
463
- nv21, width, height,
464
- outputImageResolution, outputImageResolution,
465
- rgbBytes
466
- )
467
- val convertTime = System.currentTimeMillis() - startConvert
468
- Log.d(TAG, "✓ YUV→RGB conversion (bilinear): ${convertTime}ms | ${convertedRgb.size} bytes")
469
-
470
- // Encode RGB to target format with sharpening
471
- // NOTE: ImageFormatEncoder.rgbToBase64() automatically:
472
- // - Applies unsharp masking for edge enhancement
473
- // - Converts RGB→BGR for OpenCV compatibility
474
- // - Uses optimized JPEG quality
475
- val startEncode = System.currentTimeMillis()
476
- val format = when (outputImageFormat) {
477
- "PNG" -> ImageFormatEncoder.ImageFormat.PNG
478
- "BMP" -> ImageFormatEncoder.ImageFormat.BMP
479
- else -> ImageFormatEncoder.ImageFormat.JPEG
480
- }
481
-
482
- val base64Result = ImageFormatEncoder.rgbToBase64(
483
- convertedRgb,
484
- outputImageResolution,
485
- outputImageResolution,
486
- format,
487
- outputImageQuality // Using quality 92 for better face detection
488
- )
489
- val encodeTime = System.currentTimeMillis() - startEncode
490
-
491
- if (base64Result != null) {
492
- Log.d(TAG, "✓ $outputImageFormat encoding (with sharpening): ${encodeTime}ms")
493
- Log.d(TAG, "✅ HIGH-QUALITY Base64 Generated:")
494
- Log.d(TAG, " Resolution: ${outputImageResolution}×${outputImageResolution}")
495
- Log.d(TAG, " Format: $outputImageFormat (BGR for OpenCV)")
496
- Log.d(TAG, " Quality: $outputImageQuality (enhanced for face recognition)")
497
- Log.d(TAG, " Size: ${base64Result.length} chars (est. ${base64Result.length * 0.75 / 1024}KB)")
498
- Log.d(TAG, " Total Time: ${convertTime + encodeTime}ms")
499
- val estSize = estimateImageSize()
500
- Log.d(TAG, " Estimated: ${estSize / 1024}KB")
501
- } else {
502
- Log.w(TAG, "⚠️ ImageFormatEncoder returned null")
503
- }
504
-
505
- base64Result
506
- } catch (e: Exception) {
507
- Log.e(TAG, "❌ Error generating ${outputImageResolution}×${outputImageResolution} $outputImageFormat Base64 (BGR format): ${e.message}", e)
508
- e.printStackTrace()
509
- null
510
- }
511
- }
512
-
513
- /**
514
- * Legacy method: Generate 640×640 JPEG image as Base64 string.
515
- * Kept for backward compatibility. Use generateRecognitionImageBase64() for new code.
516
- */
517
- @Deprecated("Use generateRecognitionImageBase64() instead", ReplaceWith("generateRecognitionImageBase64(nv21, width, height)"))
518
- private fun generate640x640JpegBase64(nv21: ByteArray, width: Int, height: Int): String? {
519
- // Temporarily set format to JPEG for backward compatibility
520
- val savedFormat = outputImageFormat
521
- outputImageFormat = "JPEG"
522
- val savedQuality = outputImageQuality
523
- outputImageQuality = 85
524
- val savedResolution = outputImageResolution
525
- outputImageResolution = 640
526
-
527
- val result = generateRecognitionImageBase64(nv21, width, height)
528
-
529
- // Restore original config
530
- outputImageFormat = savedFormat
531
- outputImageQuality = savedQuality
532
- outputImageResolution = savedResolution
533
-
534
- return result
535
- }
536
-
537
309
  private fun leafScore1(clssPred: Array<FloatArray>, leafNodeMask: Array<FloatArray>): Float {
538
310
  if (clssPred.isEmpty() || clssPred[0].isEmpty()) {
539
311
  Log.e(TAG, "clssPred array is empty or null")
@@ -678,35 +450,6 @@ class FaceAntiSpoofingAdvanced(private val assetManager: AssetManager) {
678
450
  return max(0f, 1.0f - (variance / SCORE_VARIANCE_THRESHOLD))
679
451
  }
680
452
 
681
- private fun updateAdaptiveThreshold(nv21: ByteArray, width: Int, height: Int) {
682
- // Adjust threshold based on environmental factors
683
- val brightness = calculateBrightness(nv21, width, height)
684
- val currentTime = System.currentTimeMillis()
685
-
686
- if (currentTime - environmentAssessment.lastAssessmentTime > 1000) { // Assess every second
687
- environmentAssessment.avgBrightness = brightness
688
- environmentAssessment.lastAssessmentTime = currentTime
689
-
690
- // Make threshold more strict in good lighting conditions
691
- adaptiveThreshold = if (brightness > 0.6f) {
692
- BASE_THRESHOLD * 0.8f // Stricter in good light
693
- } else if (brightness < 0.3f) {
694
- BASE_THRESHOLD * 1.2f // Slightly more lenient in poor light
695
- } else {
696
- BASE_THRESHOLD
697
- }
698
- }
699
- }
700
-
701
- private fun calculateBrightness(nv21: ByteArray, width: Int, height: Int): Float {
702
- // Calculate average brightness from Y channel
703
- var totalLuma = 0f
704
- for (i in 0 until width * height) {
705
- totalLuma += (nv21[i].toInt() and 0xFF) / 255.0f
706
- }
707
- return totalLuma / (width * height)
708
- }
709
-
710
453
  data class SpoofDetectionResult(
711
454
  val type: String,
712
455
  val confidence: Float
@@ -787,14 +530,15 @@ class FaceAntiSpoofingAdvanced(private val assetManager: AssetManager) {
787
530
  val layer1 = nnScore < adaptiveThreshold
788
531
  val layer2 = laplacianScore > LAPLACIAN_THRESHOLD
789
532
  val layer3 = textureScore > TEXTURE_COMPLEXITY_THRESHOLD
790
- val layer4 = temporalConsistency > 0.7f
533
+ val layer4 = temporalConsistency < 0.5f // Low temporal consistency (stable) = real face
791
534
  val layer5 = colorSat < COLOR_SATURATION_THRESHOLD * 1.5f
792
535
 
793
536
  // Require majority of layers to pass, with neural network score being most important
794
537
  val passedLayers = listOf(layer1, layer2, layer3, layer4, layer5).count { it }
795
538
 
796
- // Stricter requirement: must pass at least 4 out of 5 layers, including neural network
797
- return passedLayers >= 4 && layer1
539
+ // More lenient: must pass at least 3 out of 5 layers, with neural network being primary indicator
540
+ // Layer1 (nnScore) is most reliable, so prioritize it heavily
541
+ return (passedLayers >= 3 && layer1) || (passedLayers >= 4)
798
542
  }
799
543
 
800
544
  @Throws(IOException::class)
@@ -930,10 +674,5 @@ data class AntiSpoofingResult(
930
674
  val isLive: Boolean,
931
675
  val confidence: Float,
932
676
  val label: String,
933
- val spoofType: String,
934
- val recognitionImageBase64: String? = null,
935
- // Image format metadata
936
- val imageFormat: String = "JPEG", // Format: JPEG, PNG, BMP
937
- val imageResolution: Int = 640, // 640×640, 1280×720, etc.
938
- val imageQuality: Int = 85 // Quality for JPEG (0-100)
677
+ val spoofType: String
939
678
  )
@@ -2,6 +2,7 @@ package com.faceantispoof
2
2
 
3
3
  import java.nio.ByteBuffer
4
4
  import kotlin.math.abs
5
+ import kotlin.math.pow
5
6
 
6
7
  /**
7
8
  * Converts YUV NV21 data directly to normalized RGB float arrays without creating Bitmaps.
@@ -221,7 +222,8 @@ class YuvToFloatArrayConverter {
221
222
  }
222
223
 
223
224
  /**
224
- * Convert a single YUV pixel to RGB.
225
+ * Convert a single YUV pixel to RGB with optional gamma correction.
226
+ * Applies sRGB gamma curve to match hardware ISP output.
225
227
  */
226
228
  private fun yuvToRgb(
227
229
  nv21: ByteArray,
@@ -246,7 +248,17 @@ class YuvToFloatArrayConverter {
246
248
  val g = (yf - 0.34414f * uf - 0.71414f * vf).coerceIn(0f, 255f)
247
249
  val b = (yf + 1.772f * uf).coerceIn(0f, 255f)
248
250
 
249
- return Triple(r, g, b)
251
+ // FIXED: Apply sRGB gamma correction to match hardware ISP
252
+ // This ensures that colors match hardware-captured JPEGs
253
+ val rLinear = r / 255f
254
+ val gLinear = g / 255f
255
+ val bLinear = b / 255f
256
+
257
+ val rCorrected = applyGammaCorrection(rLinear)
258
+ val gCorrected = applyGammaCorrection(gLinear)
259
+ val bCorrected = applyGammaCorrection(bLinear)
260
+
261
+ return Triple(rCorrected * 255f, gCorrected * 255f, bCorrected * 255f)
250
262
  }
251
263
 
252
264
  /**
@@ -549,4 +561,24 @@ class YuvToFloatArrayConverter {
549
561
 
550
562
  return output
551
563
  }
564
+
565
+ /**
566
+ * Apply sRGB gamma correction to match hardware camera ISP output.
567
+ * This is CRITICAL for face recognition: hardware cameras apply gamma correction,
568
+ * but raw YUV conversion doesn't. This function brings the frame processor output
569
+ * in line with native camera JPEGs.
570
+ *
571
+ * @param linear Linear RGB value in range [0, 1]
572
+ * @return Gamma-corrected RGB value in range [0, 1]
573
+ */
574
+ private fun applyGammaCorrection(linear: Float): Float {
575
+ return if (linear <= 0.0031308f) {
576
+ // Linear segment for very dark values
577
+ linear * 12.92f
578
+ } else {
579
+ // Power law segment for normal values
580
+ // sRGB formula: value^(1/2.4)
581
+ 1.055f * Math.pow(linear.toDouble(), 1.0 / 2.4).toFloat() - 0.055f
582
+ }
583
+ }
552
584
  }
package/index.js CHANGED
@@ -9,12 +9,31 @@ const _faceAntiSpoofPlugin = VisionCameraProxy.initFrameProcessorPlugin('faceAnt
9
9
  export const faceAntiSpoofFrameProcessor = function (frame) {
10
10
  'worklet';
11
11
  try {
12
- if (_faceAntiSpoofPlugin && typeof _faceAntiSpoofPlugin.call === 'function') {
13
- return _faceAntiSpoofPlugin.call(frame);
12
+ if (!_faceAntiSpoofPlugin) {
13
+ console.warn('[FaceAntiSpoof] Plugin not initialized');
14
+ return null;
14
15
  }
16
+
17
+ if (typeof _faceAntiSpoofPlugin.call !== 'function') {
18
+ console.warn('[FaceAntiSpoof] Plugin call method not available');
19
+ return null;
20
+ }
21
+
22
+ if (!frame) {
23
+ console.warn('[FaceAntiSpoof] Frame is null or undefined');
24
+ return null;
25
+ }
26
+
27
+ const result = _faceAntiSpoofPlugin.call(frame);
28
+
29
+ // Validate result structure
30
+ if (result && typeof result === 'object') {
31
+ return result;
32
+ }
33
+
15
34
  return null;
16
35
  } catch (err) {
17
- console.error('[FaceAntiSpoof] Error in frame processor call:', err);
36
+ console.error('[FaceAntiSpoof] Error in frame processor:', err);
18
37
  return null;
19
38
  }
20
39
  };
@@ -28,18 +47,28 @@ export const isFaceAntiSpoofAvailable = () => {
28
47
 
29
48
  export const initializeFaceAntiSpoof = async () => {
30
49
  try {
50
+ if (!FaceAntiSpoof) {
51
+ throw new Error('FaceAntiSpoof module not available on this platform');
52
+ }
53
+
31
54
  const result = await FaceAntiSpoof.initialize();
32
55
  const status = await FaceAntiSpoof.checkModelStatus();
33
56
 
57
+ if (!result || !status) {
58
+ throw new Error('Initialization returned empty result');
59
+ }
60
+
34
61
  try {
35
62
  if (typeof FaceAntiSpoof.install === 'function') {
36
63
  await FaceAntiSpoof.install();
37
64
  }
38
65
  } catch (e) {
39
- console.error('[FaceAntiSpoof] install() failed:', e);
66
+ console.warn('[FaceAntiSpoof] install() failed:', e);
40
67
  }
41
68
 
42
- return result && status.pluginAvailable;
69
+ const isSuccess = result && status.pluginAvailable;
70
+ console.log('[FaceAntiSpoof] Initialization result:', isSuccess);
71
+ return isSuccess;
43
72
  } catch (error) {
44
73
  console.error('[FaceAntiSpoof] Initialization failed:', error);
45
74
  throw error;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-native-vision-camera-spoof-detector",
3
- "version": "1.0.9",
3
+ "version": "1.0.11",
4
4
  "description": "High-performance face anti-spoofing and liveness detection module for React Native Vision Camera. Uses TensorFlow Lite with GPU acceleration and optimized YUV processing.",
5
5
  "homepage": "https://github.com/jescon-tech/react-native-vision-camera-spoof-detector",
6
6
  "repository": {
@@ -1,9 +0,0 @@
1
- # C/C++ build system timings
2
- generate_cxx_metadata
3
- execute-generate-process
4
- exec-configure 744ms
5
- [gap of 21ms]
6
- execute-generate-process completed in 766ms
7
- [gap of 16ms]
8
- generate_cxx_metadata completed in 788ms
9
-
@@ -1,9 +0,0 @@
1
- # C/C++ build system timings
2
- generate_cxx_metadata
3
- execute-generate-process
4
- exec-configure 474ms
5
- [gap of 22ms]
6
- execute-generate-process completed in 497ms
7
- [gap of 14ms]
8
- generate_cxx_metadata completed in 518ms
9
-