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

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 (298) 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-28T07-46-12-0329.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 +125 -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/.cmake/api/v1/reply/{codemodel-v2-52ac1d8b40b69596389b.json → codemodel-v2-053850119b681f93cecc.json} +2 -2
  11. package/android/.cxx/Debug/2a1it684/armeabi-v7a/.cmake/api/v1/reply/{index-2025-11-27T04-19-25-0344.json → index-2025-11-28T05-47-43-0297.json} +2 -2
  12. package/android/.cxx/Debug/2a1it684/armeabi-v7a/.cmake/api/v1/reply/{target-yuv-Debug-97f9e822dbd84a186d44.json → target-yuv-Debug-a12ad49ff79080871bce.json} +2 -2
  13. package/android/.cxx/Debug/2a1it684/armeabi-v7a/.cmake/api/v1/reply/{target-yuv_shared-Debug-3730d20e27c3481c06b2.json → target-yuv_shared-Debug-2b00e64621a56b8dd632.json} +2 -2
  14. package/android/.cxx/Debug/2a1it684/armeabi-v7a/.ninja_deps +0 -0
  15. package/android/.cxx/Debug/2a1it684/armeabi-v7a/.ninja_log +118 -119
  16. package/android/.cxx/Debug/2a1it684/armeabi-v7a/CMakeFiles/CMakeOutput.log +20 -20
  17. package/android/.cxx/Debug/2a1it684/armeabi-v7a/CMakeFiles/fastyuv.dir/fast_yuv.cpp.o +0 -0
  18. package/android/.cxx/Debug/2a1it684/armeabi-v7a/configure_fingerprint.bin +15 -15
  19. package/android/.cxx/Debug/2a1it684/x86/.ninja_deps +0 -0
  20. package/android/.cxx/Debug/2a1it684/x86/.ninja_log +110 -111
  21. package/android/.cxx/Debug/2a1it684/x86/CMakeFiles/CMakeOutput.log +20 -20
  22. package/android/.cxx/Debug/2a1it684/x86/CMakeFiles/fastyuv.dir/fast_yuv.cpp.o +0 -0
  23. package/android/.cxx/Debug/2a1it684/x86/configure_fingerprint.bin +15 -15
  24. package/android/.cxx/Debug/2a1it684/x86_64/.ninja_deps +0 -0
  25. package/android/.cxx/Debug/2a1it684/x86_64/.ninja_log +109 -109
  26. package/android/.cxx/Debug/2a1it684/x86_64/CMakeFiles/CMakeOutput.log +20 -20
  27. package/android/.cxx/Debug/2a1it684/x86_64/CMakeFiles/fastyuv.dir/fast_yuv.cpp.o +0 -0
  28. package/android/.cxx/Debug/2a1it684/x86_64/configure_fingerprint.bin +15 -15
  29. package/android/.cxx/RelWithDebInfo/4j18496e/arm64-v8a/.cmake/api/v1/query/client-agp/cache-v2 +0 -0
  30. package/android/.cxx/RelWithDebInfo/4j18496e/arm64-v8a/.cmake/api/v1/query/client-agp/cmakeFiles-v1 +0 -0
  31. package/android/.cxx/RelWithDebInfo/4j18496e/arm64-v8a/.cmake/api/v1/query/client-agp/codemodel-v2 +0 -0
  32. package/android/.cxx/RelWithDebInfo/4j18496e/arm64-v8a/.cmake/api/v1/reply/cache-v2-6623bfcc99de2cc494ef.json +1599 -0
  33. package/android/.cxx/RelWithDebInfo/4j18496e/arm64-v8a/.cmake/api/v1/reply/cmakeFiles-v1-55b275e149a5fd56941d.json +857 -0
  34. package/android/.cxx/RelWithDebInfo/4j18496e/arm64-v8a/.cmake/api/v1/reply/codemodel-v2-6b7e0f67c2a0347cab13.json +185 -0
  35. package/android/.cxx/RelWithDebInfo/4j18496e/arm64-v8a/.cmake/api/v1/reply/directory-.-RelWithDebInfo-d0094a50bb2071803777.json +14 -0
  36. package/android/.cxx/RelWithDebInfo/4j18496e/arm64-v8a/.cmake/api/v1/reply/directory-libyuv-RelWithDebInfo-3b69a4481e450c4c2e62.json +100 -0
  37. package/android/.cxx/RelWithDebInfo/4j18496e/arm64-v8a/.cmake/api/v1/reply/index-2025-11-28T06-24-02-0919.json +92 -0
  38. package/android/.cxx/RelWithDebInfo/4j18496e/arm64-v8a/.cmake/api/v1/reply/target-cpuid-RelWithDebInfo-f777a892340e61678778.json +136 -0
  39. package/android/.cxx/RelWithDebInfo/4j18496e/arm64-v8a/.cmake/api/v1/reply/target-faceantispoof-RelWithDebInfo-4fb8c998d8f77e33a12d.json +181 -0
  40. package/android/.cxx/RelWithDebInfo/4j18496e/arm64-v8a/.cmake/api/v1/reply/target-fastyuv-RelWithDebInfo-7ad5bac6c34ff1d8f6bf.json +182 -0
  41. package/android/.cxx/RelWithDebInfo/4j18496e/arm64-v8a/.cmake/api/v1/reply/target-yuv-RelWithDebInfo-298d259c30e060de8f40.json +433 -0
  42. package/android/.cxx/RelWithDebInfo/4j18496e/arm64-v8a/.cmake/api/v1/reply/target-yuv_common_objects-RelWithDebInfo-2f4a12965004c2de4e70.json +522 -0
  43. package/android/.cxx/RelWithDebInfo/4j18496e/arm64-v8a/.cmake/api/v1/reply/target-yuv_neon64-RelWithDebInfo-54e823b3b8ca04a6c5db.json +137 -0
  44. package/android/.cxx/RelWithDebInfo/4j18496e/arm64-v8a/.cmake/api/v1/reply/target-yuv_shared-RelWithDebInfo-3270b416576458946c36.json +455 -0
  45. package/android/.cxx/RelWithDebInfo/4j18496e/arm64-v8a/.cmake/api/v1/reply/target-yuv_sme-RelWithDebInfo-e9f185e1349071c8064b.json +126 -0
  46. package/android/.cxx/RelWithDebInfo/4j18496e/arm64-v8a/.cmake/api/v1/reply/target-yuv_sve-RelWithDebInfo-38edcec765b140ad4e2e.json +104 -0
  47. package/android/.cxx/RelWithDebInfo/4j18496e/arm64-v8a/.cmake/api/v1/reply/target-yuvconstants-RelWithDebInfo-665cbae21750846dec64.json +136 -0
  48. package/android/.cxx/RelWithDebInfo/4j18496e/arm64-v8a/.cmake/api/v1/reply/target-yuvconvert-RelWithDebInfo-e79c8b075362b6ed79c2.json +157 -0
  49. package/android/.cxx/RelWithDebInfo/4j18496e/arm64-v8a/.ninja_deps +0 -0
  50. package/android/.cxx/RelWithDebInfo/4j18496e/arm64-v8a/.ninja_log +65 -0
  51. package/android/.cxx/RelWithDebInfo/4j18496e/arm64-v8a/CMakeCache.txt +465 -0
  52. package/android/.cxx/RelWithDebInfo/4j18496e/arm64-v8a/CMakeFiles/3.22.1-g37088a8-dirty/CMakeCCompiler.cmake +72 -0
  53. package/android/.cxx/RelWithDebInfo/4j18496e/arm64-v8a/CMakeFiles/3.22.1-g37088a8-dirty/CMakeCXXCompiler.cmake +83 -0
  54. package/android/.cxx/RelWithDebInfo/4j18496e/arm64-v8a/CMakeFiles/3.22.1-g37088a8-dirty/CMakeDetermineCompilerABI_C.bin +0 -0
  55. package/android/.cxx/RelWithDebInfo/4j18496e/arm64-v8a/CMakeFiles/3.22.1-g37088a8-dirty/CMakeDetermineCompilerABI_CXX.bin +0 -0
  56. package/android/.cxx/RelWithDebInfo/4j18496e/arm64-v8a/CMakeFiles/3.22.1-g37088a8-dirty/CMakeSystem.cmake +15 -0
  57. package/android/.cxx/RelWithDebInfo/4j18496e/arm64-v8a/CMakeFiles/3.22.1-g37088a8-dirty/CompilerIdC/CMakeCCompilerId.c +803 -0
  58. package/android/.cxx/RelWithDebInfo/4j18496e/arm64-v8a/CMakeFiles/3.22.1-g37088a8-dirty/CompilerIdC/CMakeCCompilerId.o +0 -0
  59. package/android/.cxx/RelWithDebInfo/4j18496e/arm64-v8a/CMakeFiles/3.22.1-g37088a8-dirty/CompilerIdCXX/CMakeCXXCompilerId.cpp +791 -0
  60. package/android/.cxx/RelWithDebInfo/4j18496e/arm64-v8a/CMakeFiles/3.22.1-g37088a8-dirty/CompilerIdCXX/CMakeCXXCompilerId.o +0 -0
  61. package/android/.cxx/RelWithDebInfo/4j18496e/arm64-v8a/CMakeFiles/CMakeOutput.log +276 -0
  62. package/android/.cxx/RelWithDebInfo/4j18496e/arm64-v8a/CMakeFiles/TargetDirectories.txt +27 -0
  63. package/android/.cxx/RelWithDebInfo/4j18496e/arm64-v8a/CMakeFiles/cmake.check_cache +1 -0
  64. package/android/.cxx/RelWithDebInfo/4j18496e/arm64-v8a/CMakeFiles/rules.ninja +198 -0
  65. package/android/.cxx/RelWithDebInfo/4j18496e/arm64-v8a/CPackConfig.cmake +71 -0
  66. package/android/.cxx/RelWithDebInfo/4j18496e/arm64-v8a/CPackSourceConfig.cmake +79 -0
  67. package/android/.cxx/RelWithDebInfo/4j18496e/arm64-v8a/additional_project_files.txt +48 -0
  68. package/android/.cxx/RelWithDebInfo/4j18496e/arm64-v8a/android_gradle_build.json +106 -0
  69. package/android/.cxx/RelWithDebInfo/4j18496e/arm64-v8a/android_gradle_build_mini.json +87 -0
  70. package/android/.cxx/RelWithDebInfo/4j18496e/arm64-v8a/build.ninja +1071 -0
  71. package/android/.cxx/RelWithDebInfo/4j18496e/arm64-v8a/build_file_index.txt +3 -0
  72. package/android/.cxx/RelWithDebInfo/4j18496e/arm64-v8a/cmake_install.cmake +59 -0
  73. package/android/.cxx/RelWithDebInfo/4j18496e/arm64-v8a/compile_commands.json +277 -0
  74. package/android/.cxx/RelWithDebInfo/4j18496e/arm64-v8a/compile_commands.json.bin +0 -0
  75. package/android/.cxx/RelWithDebInfo/4j18496e/arm64-v8a/configure_fingerprint.bin +33 -0
  76. package/android/.cxx/RelWithDebInfo/4j18496e/arm64-v8a/libyuv/cmake_install.cmake +87 -0
  77. package/android/.cxx/RelWithDebInfo/4j18496e/arm64-v8a/metadata_generation_command.txt +19 -0
  78. package/android/.cxx/RelWithDebInfo/4j18496e/arm64-v8a/prefab_config.json +4 -0
  79. package/android/.cxx/RelWithDebInfo/4j18496e/arm64-v8a/symbol_folder_index.txt +1 -0
  80. package/android/.cxx/RelWithDebInfo/4j18496e/armeabi-v7a/.cmake/api/v1/query/client-agp/cache-v2 +0 -0
  81. package/android/.cxx/RelWithDebInfo/4j18496e/armeabi-v7a/.cmake/api/v1/query/client-agp/cmakeFiles-v1 +0 -0
  82. package/android/.cxx/RelWithDebInfo/4j18496e/armeabi-v7a/.cmake/api/v1/query/client-agp/codemodel-v2 +0 -0
  83. package/android/.cxx/RelWithDebInfo/4j18496e/armeabi-v7a/.cmake/api/v1/reply/cache-v2-8dbd652239f8f876061c.json +1587 -0
  84. package/android/.cxx/RelWithDebInfo/4j18496e/armeabi-v7a/.cmake/api/v1/reply/cmakeFiles-v1-1807188101b481e0cb6e.json +857 -0
  85. package/android/.cxx/RelWithDebInfo/4j18496e/armeabi-v7a/.cmake/api/v1/reply/codemodel-v2-6f5df8c3a6b6a068f23b.json +167 -0
  86. package/android/.cxx/RelWithDebInfo/4j18496e/armeabi-v7a/.cmake/api/v1/reply/directory-.-RelWithDebInfo-d0094a50bb2071803777.json +14 -0
  87. package/android/.cxx/RelWithDebInfo/4j18496e/armeabi-v7a/.cmake/api/v1/reply/directory-libyuv-RelWithDebInfo-d90ccc1dc3ec9de91c2a.json +100 -0
  88. package/android/.cxx/RelWithDebInfo/4j18496e/armeabi-v7a/.cmake/api/v1/reply/index-2025-11-28T06-24-04-0739.json +92 -0
  89. package/android/.cxx/RelWithDebInfo/4j18496e/armeabi-v7a/.cmake/api/v1/reply/target-cpuid-RelWithDebInfo-2afe24ac22ece0474b5d.json +150 -0
  90. package/android/.cxx/RelWithDebInfo/4j18496e/armeabi-v7a/.cmake/api/v1/reply/target-faceantispoof-RelWithDebInfo-1e3a47629762dc371297.json +181 -0
  91. package/android/.cxx/RelWithDebInfo/4j18496e/armeabi-v7a/.cmake/api/v1/reply/target-fastyuv-RelWithDebInfo-399f40c0d7f52201b0df.json +190 -0
  92. package/android/.cxx/RelWithDebInfo/4j18496e/armeabi-v7a/.cmake/api/v1/reply/target-yuv-RelWithDebInfo-d63c69ad741549aa90d2.json +406 -0
  93. package/android/.cxx/RelWithDebInfo/4j18496e/armeabi-v7a/.cmake/api/v1/reply/target-yuv_common_objects-RelWithDebInfo-873ec2eea5dd4896d057.json +536 -0
  94. package/android/.cxx/RelWithDebInfo/4j18496e/armeabi-v7a/.cmake/api/v1/reply/target-yuv_neon-RelWithDebInfo-8f3b5b8996b46568c5bc.json +151 -0
  95. package/android/.cxx/RelWithDebInfo/4j18496e/armeabi-v7a/.cmake/api/v1/reply/target-yuv_shared-RelWithDebInfo-19bab1e79d76ef386a06.json +428 -0
  96. package/android/.cxx/RelWithDebInfo/4j18496e/armeabi-v7a/.cmake/api/v1/reply/target-yuvconstants-RelWithDebInfo-bc2a27cc3182d0e59087.json +150 -0
  97. package/android/.cxx/RelWithDebInfo/4j18496e/armeabi-v7a/.cmake/api/v1/reply/target-yuvconvert-RelWithDebInfo-8ac10adb877d77790cba.json +171 -0
  98. package/android/.cxx/RelWithDebInfo/4j18496e/armeabi-v7a/.ninja_deps +0 -0
  99. package/android/.cxx/RelWithDebInfo/4j18496e/armeabi-v7a/.ninja_log +61 -0
  100. package/android/.cxx/RelWithDebInfo/4j18496e/armeabi-v7a/CMakeCache.txt +463 -0
  101. package/android/.cxx/RelWithDebInfo/4j18496e/armeabi-v7a/CMakeFiles/3.22.1-g37088a8-dirty/CMakeCCompiler.cmake +72 -0
  102. package/android/.cxx/RelWithDebInfo/4j18496e/armeabi-v7a/CMakeFiles/3.22.1-g37088a8-dirty/CMakeCXXCompiler.cmake +83 -0
  103. package/android/.cxx/RelWithDebInfo/4j18496e/armeabi-v7a/CMakeFiles/3.22.1-g37088a8-dirty/CMakeDetermineCompilerABI_C.bin +0 -0
  104. package/android/.cxx/RelWithDebInfo/4j18496e/armeabi-v7a/CMakeFiles/3.22.1-g37088a8-dirty/CMakeDetermineCompilerABI_CXX.bin +0 -0
  105. package/android/.cxx/RelWithDebInfo/4j18496e/armeabi-v7a/CMakeFiles/3.22.1-g37088a8-dirty/CMakeSystem.cmake +15 -0
  106. package/android/.cxx/RelWithDebInfo/4j18496e/armeabi-v7a/CMakeFiles/3.22.1-g37088a8-dirty/CompilerIdC/CMakeCCompilerId.c +803 -0
  107. package/android/.cxx/RelWithDebInfo/4j18496e/armeabi-v7a/CMakeFiles/3.22.1-g37088a8-dirty/CompilerIdC/CMakeCCompilerId.o +0 -0
  108. package/android/.cxx/RelWithDebInfo/4j18496e/armeabi-v7a/CMakeFiles/3.22.1-g37088a8-dirty/CompilerIdCXX/CMakeCXXCompilerId.cpp +791 -0
  109. package/android/.cxx/RelWithDebInfo/4j18496e/armeabi-v7a/CMakeFiles/3.22.1-g37088a8-dirty/CompilerIdCXX/CMakeCXXCompilerId.o +0 -0
  110. package/android/.cxx/RelWithDebInfo/4j18496e/armeabi-v7a/CMakeFiles/CMakeOutput.log +268 -0
  111. package/android/.cxx/RelWithDebInfo/4j18496e/armeabi-v7a/CMakeFiles/TargetDirectories.txt +25 -0
  112. package/android/.cxx/RelWithDebInfo/4j18496e/armeabi-v7a/CMakeFiles/cmake.check_cache +1 -0
  113. package/android/.cxx/RelWithDebInfo/4j18496e/armeabi-v7a/CMakeFiles/rules.ninja +178 -0
  114. package/android/.cxx/RelWithDebInfo/4j18496e/armeabi-v7a/CPackConfig.cmake +71 -0
  115. package/android/.cxx/RelWithDebInfo/4j18496e/armeabi-v7a/CPackSourceConfig.cmake +79 -0
  116. package/android/.cxx/RelWithDebInfo/4j18496e/armeabi-v7a/additional_project_files.txt +44 -0
  117. package/android/.cxx/RelWithDebInfo/4j18496e/armeabi-v7a/android_gradle_build.json +96 -0
  118. package/android/.cxx/RelWithDebInfo/4j18496e/armeabi-v7a/android_gradle_build_mini.json +77 -0
  119. package/android/.cxx/RelWithDebInfo/4j18496e/armeabi-v7a/build.ninja +1046 -0
  120. package/android/.cxx/RelWithDebInfo/4j18496e/armeabi-v7a/build_file_index.txt +3 -0
  121. package/android/.cxx/RelWithDebInfo/4j18496e/armeabi-v7a/cmake_install.cmake +59 -0
  122. package/android/.cxx/RelWithDebInfo/4j18496e/armeabi-v7a/compile_commands.json +257 -0
  123. package/android/.cxx/RelWithDebInfo/4j18496e/armeabi-v7a/compile_commands.json.bin +0 -0
  124. package/android/.cxx/RelWithDebInfo/4j18496e/armeabi-v7a/configure_fingerprint.bin +33 -0
  125. package/android/.cxx/RelWithDebInfo/4j18496e/armeabi-v7a/libyuv/cmake_install.cmake +87 -0
  126. package/android/.cxx/RelWithDebInfo/4j18496e/armeabi-v7a/metadata_generation_command.txt +19 -0
  127. package/android/.cxx/RelWithDebInfo/4j18496e/armeabi-v7a/prefab_config.json +4 -0
  128. package/android/.cxx/RelWithDebInfo/4j18496e/armeabi-v7a/symbol_folder_index.txt +1 -0
  129. package/android/.cxx/RelWithDebInfo/4j18496e/hash_key.txt +26 -0
  130. package/android/.cxx/RelWithDebInfo/4j18496e/x86/.cmake/api/v1/query/client-agp/cache-v2 +0 -0
  131. package/android/.cxx/RelWithDebInfo/4j18496e/x86/.cmake/api/v1/query/client-agp/cmakeFiles-v1 +0 -0
  132. package/android/.cxx/RelWithDebInfo/4j18496e/x86/.cmake/api/v1/query/client-agp/codemodel-v2 +0 -0
  133. package/android/.cxx/RelWithDebInfo/4j18496e/x86/.cmake/api/v1/reply/cache-v2-a231ab394224ff7786ac.json +1587 -0
  134. package/android/.cxx/RelWithDebInfo/4j18496e/x86/.cmake/api/v1/reply/cmakeFiles-v1-c1b964e67354b2182b02.json +857 -0
  135. package/android/.cxx/RelWithDebInfo/4j18496e/x86/.cmake/api/v1/reply/codemodel-v2-3aff40e717685bf9381e.json +158 -0
  136. package/android/.cxx/RelWithDebInfo/4j18496e/x86/.cmake/api/v1/reply/directory-.-RelWithDebInfo-d0094a50bb2071803777.json +14 -0
  137. package/android/.cxx/RelWithDebInfo/4j18496e/x86/.cmake/api/v1/reply/directory-libyuv-RelWithDebInfo-8ffc2a041aae2ce33cc6.json +100 -0
  138. package/android/.cxx/RelWithDebInfo/4j18496e/x86/.cmake/api/v1/reply/index-2025-11-28T06-24-25-0724.json +92 -0
  139. package/android/.cxx/RelWithDebInfo/4j18496e/x86/.cmake/api/v1/reply/target-cpuid-RelWithDebInfo-6ae80ea7f26ff6790278.json +136 -0
  140. package/android/.cxx/RelWithDebInfo/4j18496e/x86/.cmake/api/v1/reply/target-faceantispoof-RelWithDebInfo-6edf524952a2089a233a.json +181 -0
  141. package/android/.cxx/RelWithDebInfo/4j18496e/x86/.cmake/api/v1/reply/target-fastyuv-RelWithDebInfo-8884cf96d359d9f0ca44.json +157 -0
  142. package/android/.cxx/RelWithDebInfo/4j18496e/x86/.cmake/api/v1/reply/target-yuv-RelWithDebInfo-f975dc321e6aea5db346.json +368 -0
  143. package/android/.cxx/RelWithDebInfo/4j18496e/x86/.cmake/api/v1/reply/target-yuv_common_objects-RelWithDebInfo-2f4a12965004c2de4e70.json +522 -0
  144. package/android/.cxx/RelWithDebInfo/4j18496e/x86/.cmake/api/v1/reply/target-yuv_shared-RelWithDebInfo-e345bd47425b6cacb14b.json +390 -0
  145. package/android/.cxx/RelWithDebInfo/4j18496e/x86/.cmake/api/v1/reply/target-yuvconstants-RelWithDebInfo-b99502b5984c20153a0c.json +136 -0
  146. package/android/.cxx/RelWithDebInfo/4j18496e/x86/.cmake/api/v1/reply/target-yuvconvert-RelWithDebInfo-4e298834e996ad01af71.json +157 -0
  147. package/android/.cxx/RelWithDebInfo/4j18496e/x86/.ninja_deps +0 -0
  148. package/android/.cxx/RelWithDebInfo/4j18496e/x86/.ninja_log +57 -0
  149. package/android/.cxx/RelWithDebInfo/4j18496e/x86/CMakeCache.txt +463 -0
  150. package/android/.cxx/RelWithDebInfo/4j18496e/x86/CMakeFiles/3.22.1-g37088a8-dirty/CMakeCCompiler.cmake +72 -0
  151. package/android/.cxx/RelWithDebInfo/4j18496e/x86/CMakeFiles/3.22.1-g37088a8-dirty/CMakeCXXCompiler.cmake +83 -0
  152. package/android/.cxx/RelWithDebInfo/4j18496e/x86/CMakeFiles/3.22.1-g37088a8-dirty/CMakeDetermineCompilerABI_C.bin +0 -0
  153. package/android/.cxx/RelWithDebInfo/4j18496e/x86/CMakeFiles/3.22.1-g37088a8-dirty/CMakeDetermineCompilerABI_CXX.bin +0 -0
  154. package/android/.cxx/RelWithDebInfo/4j18496e/x86/CMakeFiles/3.22.1-g37088a8-dirty/CMakeSystem.cmake +15 -0
  155. package/android/.cxx/RelWithDebInfo/4j18496e/x86/CMakeFiles/3.22.1-g37088a8-dirty/CompilerIdC/CMakeCCompilerId.c +803 -0
  156. package/android/.cxx/RelWithDebInfo/4j18496e/x86/CMakeFiles/3.22.1-g37088a8-dirty/CompilerIdC/CMakeCCompilerId.o +0 -0
  157. package/android/.cxx/RelWithDebInfo/4j18496e/x86/CMakeFiles/3.22.1-g37088a8-dirty/CompilerIdCXX/CMakeCXXCompilerId.cpp +791 -0
  158. package/android/.cxx/RelWithDebInfo/4j18496e/x86/CMakeFiles/3.22.1-g37088a8-dirty/CompilerIdCXX/CMakeCXXCompilerId.o +0 -0
  159. package/android/.cxx/RelWithDebInfo/4j18496e/x86/CMakeFiles/CMakeOutput.log +258 -0
  160. package/android/.cxx/RelWithDebInfo/4j18496e/x86/CMakeFiles/TargetDirectories.txt +24 -0
  161. package/android/.cxx/RelWithDebInfo/4j18496e/x86/CMakeFiles/cmake.check_cache +1 -0
  162. package/android/.cxx/RelWithDebInfo/4j18496e/x86/CMakeFiles/rules.ninja +168 -0
  163. package/android/.cxx/RelWithDebInfo/4j18496e/x86/CPackConfig.cmake +71 -0
  164. package/android/.cxx/RelWithDebInfo/4j18496e/x86/CPackSourceConfig.cmake +79 -0
  165. package/android/.cxx/RelWithDebInfo/4j18496e/x86/additional_project_files.txt +40 -0
  166. package/android/.cxx/RelWithDebInfo/4j18496e/x86/android_gradle_build.json +91 -0
  167. package/android/.cxx/RelWithDebInfo/4j18496e/x86/android_gradle_build_mini.json +72 -0
  168. package/android/.cxx/RelWithDebInfo/4j18496e/x86/build.ninja +945 -0
  169. package/android/.cxx/RelWithDebInfo/4j18496e/x86/build_file_index.txt +3 -0
  170. package/android/.cxx/RelWithDebInfo/4j18496e/x86/cmake_install.cmake +59 -0
  171. package/android/.cxx/RelWithDebInfo/4j18496e/x86/compile_commands.json +237 -0
  172. package/android/.cxx/RelWithDebInfo/4j18496e/x86/compile_commands.json.bin +0 -0
  173. package/android/.cxx/RelWithDebInfo/4j18496e/x86/configure_fingerprint.bin +33 -0
  174. package/android/.cxx/RelWithDebInfo/4j18496e/x86/libyuv/cmake_install.cmake +87 -0
  175. package/android/.cxx/RelWithDebInfo/4j18496e/x86/metadata_generation_command.txt +19 -0
  176. package/android/.cxx/RelWithDebInfo/4j18496e/x86/prefab_config.json +4 -0
  177. package/android/.cxx/RelWithDebInfo/4j18496e/x86/symbol_folder_index.txt +1 -0
  178. package/android/.cxx/RelWithDebInfo/4j18496e/x86_64/.cmake/api/v1/query/client-agp/cache-v2 +0 -0
  179. package/android/.cxx/RelWithDebInfo/4j18496e/x86_64/.cmake/api/v1/query/client-agp/cmakeFiles-v1 +0 -0
  180. package/android/.cxx/RelWithDebInfo/4j18496e/x86_64/.cmake/api/v1/query/client-agp/codemodel-v2 +0 -0
  181. package/android/.cxx/RelWithDebInfo/4j18496e/x86_64/.cmake/api/v1/reply/cache-v2-9ee538105c735fb117da.json +1587 -0
  182. package/android/.cxx/RelWithDebInfo/4j18496e/x86_64/.cmake/api/v1/reply/cmakeFiles-v1-e1bbc53ef79693fbefba.json +857 -0
  183. package/android/.cxx/RelWithDebInfo/4j18496e/x86_64/.cmake/api/v1/reply/codemodel-v2-3c7b39b9eebd0ee8b8ac.json +158 -0
  184. package/android/.cxx/RelWithDebInfo/4j18496e/x86_64/.cmake/api/v1/reply/directory-.-RelWithDebInfo-d0094a50bb2071803777.json +14 -0
  185. package/android/.cxx/RelWithDebInfo/4j18496e/x86_64/.cmake/api/v1/reply/directory-libyuv-RelWithDebInfo-bf3551b76e6b80c04175.json +100 -0
  186. package/android/.cxx/RelWithDebInfo/4j18496e/x86_64/.cmake/api/v1/reply/index-2025-11-28T06-24-36-0773.json +92 -0
  187. package/android/.cxx/RelWithDebInfo/4j18496e/x86_64/.cmake/api/v1/reply/target-cpuid-RelWithDebInfo-18ad619be4c65a6867f1.json +136 -0
  188. package/android/.cxx/RelWithDebInfo/4j18496e/x86_64/.cmake/api/v1/reply/target-faceantispoof-RelWithDebInfo-5e42ed443d91c90a4528.json +181 -0
  189. package/android/.cxx/RelWithDebInfo/4j18496e/x86_64/.cmake/api/v1/reply/target-fastyuv-RelWithDebInfo-bce1d813646a721cd018.json +157 -0
  190. package/android/.cxx/RelWithDebInfo/4j18496e/x86_64/.cmake/api/v1/reply/target-yuv-RelWithDebInfo-9c0ffc48e253ea51b2b0.json +368 -0
  191. package/android/.cxx/RelWithDebInfo/4j18496e/x86_64/.cmake/api/v1/reply/target-yuv_common_objects-RelWithDebInfo-2f4a12965004c2de4e70.json +522 -0
  192. package/android/.cxx/RelWithDebInfo/4j18496e/x86_64/.cmake/api/v1/reply/target-yuv_shared-RelWithDebInfo-e00c3ff4f11fdc3ada16.json +390 -0
  193. package/android/.cxx/RelWithDebInfo/4j18496e/x86_64/.cmake/api/v1/reply/target-yuvconstants-RelWithDebInfo-3c9aff03082eae586c2e.json +136 -0
  194. package/android/.cxx/RelWithDebInfo/4j18496e/x86_64/.cmake/api/v1/reply/target-yuvconvert-RelWithDebInfo-241d3dca03388438c8a7.json +157 -0
  195. package/android/.cxx/RelWithDebInfo/4j18496e/x86_64/.ninja_deps +0 -0
  196. package/android/.cxx/RelWithDebInfo/4j18496e/x86_64/.ninja_log +57 -0
  197. package/android/.cxx/RelWithDebInfo/4j18496e/x86_64/CMakeCache.txt +463 -0
  198. package/android/.cxx/RelWithDebInfo/4j18496e/x86_64/CMakeFiles/3.22.1-g37088a8-dirty/CMakeCCompiler.cmake +72 -0
  199. package/android/.cxx/RelWithDebInfo/4j18496e/x86_64/CMakeFiles/3.22.1-g37088a8-dirty/CMakeCXXCompiler.cmake +83 -0
  200. package/android/.cxx/RelWithDebInfo/4j18496e/x86_64/CMakeFiles/3.22.1-g37088a8-dirty/CMakeDetermineCompilerABI_C.bin +0 -0
  201. package/android/.cxx/RelWithDebInfo/4j18496e/x86_64/CMakeFiles/3.22.1-g37088a8-dirty/CMakeDetermineCompilerABI_CXX.bin +0 -0
  202. package/android/.cxx/RelWithDebInfo/4j18496e/x86_64/CMakeFiles/3.22.1-g37088a8-dirty/CMakeSystem.cmake +15 -0
  203. package/android/.cxx/RelWithDebInfo/4j18496e/x86_64/CMakeFiles/3.22.1-g37088a8-dirty/CompilerIdC/CMakeCCompilerId.c +803 -0
  204. package/android/.cxx/RelWithDebInfo/4j18496e/x86_64/CMakeFiles/3.22.1-g37088a8-dirty/CompilerIdC/CMakeCCompilerId.o +0 -0
  205. package/android/.cxx/RelWithDebInfo/4j18496e/x86_64/CMakeFiles/3.22.1-g37088a8-dirty/CompilerIdCXX/CMakeCXXCompilerId.cpp +791 -0
  206. package/android/.cxx/RelWithDebInfo/4j18496e/x86_64/CMakeFiles/3.22.1-g37088a8-dirty/CompilerIdCXX/CMakeCXXCompilerId.o +0 -0
  207. package/android/.cxx/RelWithDebInfo/4j18496e/x86_64/CMakeFiles/CMakeOutput.log +258 -0
  208. package/android/.cxx/RelWithDebInfo/4j18496e/x86_64/CMakeFiles/TargetDirectories.txt +24 -0
  209. package/android/.cxx/RelWithDebInfo/4j18496e/x86_64/CMakeFiles/cmake.check_cache +1 -0
  210. package/android/.cxx/RelWithDebInfo/4j18496e/x86_64/CMakeFiles/rules.ninja +168 -0
  211. package/android/.cxx/RelWithDebInfo/4j18496e/x86_64/CPackConfig.cmake +71 -0
  212. package/android/.cxx/RelWithDebInfo/4j18496e/x86_64/CPackSourceConfig.cmake +79 -0
  213. package/android/.cxx/RelWithDebInfo/4j18496e/x86_64/additional_project_files.txt +40 -0
  214. package/android/.cxx/RelWithDebInfo/4j18496e/x86_64/android_gradle_build.json +91 -0
  215. package/android/.cxx/RelWithDebInfo/4j18496e/x86_64/android_gradle_build_mini.json +72 -0
  216. package/android/.cxx/RelWithDebInfo/4j18496e/x86_64/build.ninja +945 -0
  217. package/android/.cxx/RelWithDebInfo/4j18496e/x86_64/build_file_index.txt +3 -0
  218. package/android/.cxx/RelWithDebInfo/4j18496e/x86_64/cmake_install.cmake +59 -0
  219. package/android/.cxx/RelWithDebInfo/4j18496e/x86_64/compile_commands.json +237 -0
  220. package/android/.cxx/RelWithDebInfo/4j18496e/x86_64/compile_commands.json.bin +0 -0
  221. package/android/.cxx/RelWithDebInfo/4j18496e/x86_64/configure_fingerprint.bin +33 -0
  222. package/android/.cxx/RelWithDebInfo/4j18496e/x86_64/libyuv/cmake_install.cmake +87 -0
  223. package/android/.cxx/RelWithDebInfo/4j18496e/x86_64/metadata_generation_command.txt +19 -0
  224. package/android/.cxx/RelWithDebInfo/4j18496e/x86_64/prefab_config.json +4 -0
  225. package/android/.cxx/RelWithDebInfo/4j18496e/x86_64/symbol_folder_index.txt +1 -0
  226. package/android/.cxx/tools/release/arm64-v8a/compile_commands.json +277 -0
  227. package/android/.cxx/tools/release/armeabi-v7a/compile_commands.json +257 -0
  228. package/android/.cxx/tools/release/x86/compile_commands.json +237 -0
  229. package/android/.cxx/tools/release/x86_64/compile_commands.json +237 -0
  230. package/android/build/.transforms/4ebf3dd0dca4f83fe1776360e21ded81/transformed/classes/classes_dex/classes.dex +0 -0
  231. package/android/build/.transforms/c0a07cd9442d741ad3cef3760159211f/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/faceantispoof/AntiSpoofingResult.dex +0 -0
  232. package/android/build/.transforms/c0a07cd9442d741ad3cef3760159211f/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/faceantispoof/FaceAntiSpoofingAdvanced.dex +0 -0
  233. package/android/build/.transforms/c0a07cd9442d741ad3cef3760159211f/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/faceantispoof/ImageFormatEncoder.dex +0 -0
  234. package/android/build/.transforms/c0a07cd9442d741ad3cef3760159211f/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/faceantispoof/JpegEncoder$Companion.dex +0 -0
  235. package/android/build/.transforms/c0a07cd9442d741ad3cef3760159211f/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/faceantispoof/JpegEncoder.dex +0 -0
  236. package/android/build/.transforms/c0a07cd9442d741ad3cef3760159211f/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/faceantispoof/YuvToFloatArrayConverter$Companion.dex +0 -0
  237. package/android/build/.transforms/c0a07cd9442d741ad3cef3760159211f/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/faceantispoof/YuvToFloatArrayConverter.dex +0 -0
  238. package/android/build/intermediates/compile_library_classes_jar/debug/bundleLibCompileToJarDebug/classes.jar +0 -0
  239. package/android/build/intermediates/cxx/Debug/2a1it684/logs/arm64-v8a/build_stdout_targets.txt +48 -48
  240. package/android/build/intermediates/cxx/Debug/2a1it684/logs/arm64-v8a/generate_cxx_metadata_709_timing.txt +9 -0
  241. package/android/build/intermediates/cxx/Debug/2a1it684/logs/armeabi-v7a/build_stdout_targets.txt +44 -44
  242. package/android/build/intermediates/cxx/Debug/2a1it684/logs/armeabi-v7a/{generate_cxx_metadata_944_timing.txt → generate_cxx_metadata_709_timing.txt} +1 -1
  243. package/android/build/intermediates/cxx/Debug/2a1it684/logs/x86/build_stdout_targets.txt +40 -40
  244. package/android/build/intermediates/cxx/Debug/2a1it684/logs/x86/{generate_cxx_metadata_944_timing.txt → generate_cxx_metadata_709_timing.txt} +1 -1
  245. package/android/build/intermediates/cxx/Debug/2a1it684/logs/x86_64/build_stdout_targets.txt +42 -42
  246. package/android/build/intermediates/cxx/Debug/2a1it684/logs/x86_64/generate_cxx_metadata_709_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/FaceAntiSpoofingAdvanced.class +0 -0
  262. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/faceantispoof/ImageFormatEncoder.class +0 -0
  263. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/faceantispoof/JpegEncoder$Companion.class +0 -0
  264. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/faceantispoof/JpegEncoder.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/jvm/kotlin/constants.tab.values.at +0 -0
  269. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab +0 -0
  270. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.values.at +0 -0
  271. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab +0 -0
  272. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.keystream +0 -0
  273. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.keystream.len +0 -0
  274. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.len +0 -0
  275. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.values.at +0 -0
  276. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab_i +0 -0
  277. package/android/build/kotlin/compileDebugKotlin/cacheable/last-build.bin +0 -0
  278. package/android/build/kotlin/compileDebugKotlin/classpath-snapshot/shrunk-classpath-snapshot.bin +0 -0
  279. package/android/build/kotlin/compileDebugKotlin/local-state/build-history.bin +0 -0
  280. package/android/build/tmp/compileDebugJavaWithJavac/previous-compilation-data.bin +0 -0
  281. package/android/build/tmp/kotlin-classes/debug/com/faceantispoof/AntiSpoofingResult.class +0 -0
  282. package/android/build/tmp/kotlin-classes/debug/com/faceantispoof/FaceAntiSpoofingAdvanced.class +0 -0
  283. package/android/build/tmp/kotlin-classes/debug/com/faceantispoof/ImageFormatEncoder.class +0 -0
  284. package/android/build/tmp/kotlin-classes/debug/com/faceantispoof/JpegEncoder$Companion.class +0 -0
  285. package/android/build/tmp/kotlin-classes/debug/com/faceantispoof/JpegEncoder.class +0 -0
  286. package/android/build/tmp/kotlin-classes/debug/com/faceantispoof/YuvToFloatArrayConverter$Companion.class +0 -0
  287. package/android/build/tmp/kotlin-classes/debug/com/faceantispoof/YuvToFloatArrayConverter.class +0 -0
  288. package/android/build.gradle +3 -0
  289. package/android/src/main/cpp/fast_yuv.cpp +17 -7
  290. package/android/src/main/java/com/faceantispoof/FaceAntiSpoofingAdvanced.kt +7 -6
  291. package/android/src/main/java/com/faceantispoof/ImageFormatEncoder.kt +18 -15
  292. package/android/src/main/java/com/faceantispoof/JpegEncoder.kt +50 -9
  293. package/android/src/main/java/com/faceantispoof/YuvToFloatArrayConverter.kt +34 -2
  294. package/package.json +1 -1
  295. package/android/build/intermediates/cxx/Debug/2a1it684/logs/arm64-v8a/generate_cxx_metadata_947_timing.txt +0 -9
  296. package/android/build/intermediates/cxx/Debug/2a1it684/logs/x86_64/generate_cxx_metadata_944_timing.txt +0 -9
  297. /package/android/.cxx/Debug/2a1it684/x86/.cmake/api/v1/reply/{index-2025-11-27T04-19-33-0139.json → index-2025-11-28T05-47-50-0796.json} +0 -0
  298. /package/android/.cxx/Debug/2a1it684/x86_64/.cmake/api/v1/reply/{index-2025-11-27T05-31-26-0486.json → index-2025-11-28T07-46-59-0151.json} +0 -0
@@ -302,31 +302,34 @@ object ImageFormatEncoder {
302
302
  /**
303
303
  * Convert RGB byte array to BGR for OpenCV compatibility.
304
304
  * CRITICAL: OpenCV expects BGR format, not RGB.
305
+ * FIXED: Now uses correct channel ordering without assumptions about image dimensions.
305
306
  * Includes optional sharpening for improved face detection.
306
307
  *
307
308
  * @param rgbData RGB data in format RGBRGBRGB...
308
309
  * @return BGR data in format BGRBGRBGR...
309
310
  */
310
311
  private fun rgbToBgr(rgbData: ByteArray): ByteArray {
311
- // Apply sharpening first (in RGB space)
312
- val processedRgb = applySharpeningFilter(rgbData, 640, 640) // Assuming 640x640 output
312
+ // NOTE: Sharpening is applied before color channel swap
313
+ // to avoid applying it to swapped values
314
+ val bgrData = ByteArray(rgbData.size)
313
315
 
314
- val bgrData = ByteArray(processedRgb.size)
315
- var rgbIdx = 0
316
- var bgrIdx = 0
317
-
318
- while (rgbIdx < processedRgb.size && rgbIdx + 2 < processedRgb.size) {
319
- val r = processedRgb[rgbIdx++]
320
- val g = processedRgb[rgbIdx++]
321
- val b = processedRgb[rgbIdx++]
316
+ // Direct RGB -> BGR channel swap (no assumptions about dimensions)
317
+ // This ensures correct color conversion regardless of image size
318
+ var idx = 0
319
+ while (idx < rgbData.size && idx + 2 < rgbData.size) {
320
+ val r = rgbData[idx] // R at idx
321
+ val g = rgbData[idx + 1] // G at idx+1
322
+ val b = rgbData[idx + 2] // B at idx+2
323
+
324
+ // FIXED: Correct BGR channel order for OpenCV cv2.imdecode
325
+ bgrData[idx] = b // B goes to idx (first in BGR)
326
+ bgrData[idx + 1] = g // G stays at idx+1 (middle in BGR)
327
+ bgrData[idx + 2] = r // R goes to idx+2 (last in BGR)
322
328
 
323
- // Swap: BGR order
324
- bgrData[bgrIdx++] = b
325
- bgrData[bgrIdx++] = g
326
- bgrData[bgrIdx++] = r
329
+ idx += 3
327
330
  }
328
331
 
329
- Log.d(TAG, "Converted RGB to BGR with sharpening: ${processedRgb.size} bytes")
332
+ Log.d(TAG, "Converted RGB to BGR: ${rgbData.size} bytes (${rgbData.size / 3} pixels)")
330
333
  return bgrData
331
334
  }
332
335
 
@@ -4,36 +4,41 @@ import android.graphics.Bitmap
4
4
  import android.graphics.Bitmap.CompressFormat
5
5
  import android.util.Base64
6
6
  import android.util.Log
7
+ import androidx.exifinterface.media.ExifInterface
7
8
  import java.io.ByteArrayOutputStream
8
9
 
9
10
  /**
10
11
  * High-performance JPEG encoder for RGB data.
11
12
  * Converts RGB data to JPEG and encodes as Base64 for network transmission.
13
+ * FIXED: Now includes proper EXIF orientation metadata to match hardware camera output.
12
14
  */
13
15
  class JpegEncoder {
14
16
 
15
17
  companion object {
16
18
  private const val TAG = "JpegEncoder"
17
- private const val DEFAULT_JPEG_QUALITY = 85
19
+ private const val DEFAULT_JPEG_QUALITY = 92 // Increased from 85 for better face detection
18
20
 
19
21
  /**
20
22
  * Convert RGB byte array to JPEG and return as Base64 string.
21
23
  * Optimized for high-speed encoding without intermediate Bitmap copies.
24
+ * FIXED: Now includes EXIF orientation (portrait, landscape, etc.)
22
25
  *
23
26
  * @param rgbData RGB data as byte array (format: RGBRGBRGB...)
24
27
  * @param width Image width
25
28
  * @param height Image height
26
- * @param quality JPEG quality (0-100), default 85
29
+ * @param quality JPEG quality (0-100), default 92
30
+ * @param orientation EXIF orientation (1=normal, 6=90°CW, 8=90°CCW, 3=180°)
27
31
  * @return Base64 encoded JPEG string, or null if encoding fails
28
32
  */
29
33
  fun rgbToJpegBase64(
30
34
  rgbData: ByteArray,
31
35
  width: Int,
32
36
  height: Int,
33
- quality: Int = DEFAULT_JPEG_QUALITY
37
+ quality: Int = DEFAULT_JPEG_QUALITY,
38
+ orientation: Int = ExifInterface.ORIENTATION_NORMAL
34
39
  ): String? {
35
40
  return try {
36
- val jpegBytes = rgbToJpeg(rgbData, width, height, quality) ?: return null
41
+ val jpegBytes = rgbToJpeg(rgbData, width, height, quality, orientation) ?: return null
37
42
  Base64.encodeToString(jpegBytes, Base64.NO_WRAP)
38
43
  } catch (e: Exception) {
39
44
  Log.e(TAG, "Failed to encode RGB to JPEG Base64", e)
@@ -48,19 +53,21 @@ class JpegEncoder {
48
53
  * @param rgbFloats RGB data as float array (normalized to 0-1)
49
54
  * @param width Image width
50
55
  * @param height Image height
51
- * @param quality JPEG quality (0-100), default 85
56
+ * @param quality JPEG quality (0-100), default 92
57
+ * @param orientation EXIF orientation (1=normal, 6=90°CW, 8=90°CCW, 3=180°)
52
58
  * @return Base64 encoded JPEG string, or null if encoding fails
53
59
  */
54
60
  fun rgbFloatToJpegBase64(
55
61
  rgbFloats: FloatArray,
56
62
  width: Int,
57
63
  height: Int,
58
- quality: Int = DEFAULT_JPEG_QUALITY
64
+ quality: Int = DEFAULT_JPEG_QUALITY,
65
+ orientation: Int = ExifInterface.ORIENTATION_NORMAL
59
66
  ): String? {
60
67
  return try {
61
68
  // Convert float array to byte array
62
69
  val rgbBytes = convertFloatArrayToRgbBytes(rgbFloats, width, height)
63
- rgbToJpegBase64(rgbBytes, width, height, quality)
70
+ rgbToJpegBase64(rgbBytes, width, height, quality, orientation)
64
71
  } catch (e: Exception) {
65
72
  Log.e(TAG, "Failed to encode RGB float array to JPEG Base64", e)
66
73
  null
@@ -69,25 +76,34 @@ class JpegEncoder {
69
76
 
70
77
  /**
71
78
  * Convert RGB byte array to JPEG bytes.
79
+ * FIXED: Now includes proper EXIF orientation metadata.
72
80
  *
73
81
  * @param rgbData RGB data as byte array
74
82
  * @param width Image width
75
83
  * @param height Image height
76
84
  * @param quality JPEG quality (0-100)
85
+ * @param orientation EXIF orientation (1=normal, 6=90°CW, 8=90°CCW, 3=180°)
77
86
  * @return JPEG encoded byte array, or null if encoding fails
78
87
  */
79
88
  fun rgbToJpeg(
80
89
  rgbData: ByteArray,
81
90
  width: Int,
82
91
  height: Int,
83
- quality: Int = DEFAULT_JPEG_QUALITY
92
+ quality: Int = DEFAULT_JPEG_QUALITY,
93
+ orientation: Int = ExifInterface.ORIENTATION_NORMAL
84
94
  ): ByteArray? {
85
95
  return try {
86
96
  // Create bitmap from RGB data
87
97
  val bitmap = createBitmapFromRgb(rgbData, width, height)
88
98
  val jpegBytes = compressBitmapToJpeg(bitmap, quality)
89
99
  bitmap.recycle()
90
- jpegBytes
100
+
101
+ // FIXED: Add EXIF orientation metadata if needed
102
+ return if (orientation != ExifInterface.ORIENTATION_NORMAL) {
103
+ addExifOrientationToJpeg(jpegBytes, orientation)
104
+ } else {
105
+ jpegBytes
106
+ }
91
107
  } catch (e: Exception) {
92
108
  Log.e(TAG, "Failed to encode RGB to JPEG", e)
93
109
  null
@@ -121,6 +137,28 @@ class JpegEncoder {
121
137
  return Bitmap.createBitmap(pixels, width, height, Bitmap.Config.ARGB_8888)
122
138
  }
123
139
 
140
+ /**
141
+ * Add EXIF orientation metadata to JPEG bytes.
142
+ * CRITICAL: Face recognition systems may fail without proper orientation!
143
+ */
144
+ private fun addExifOrientationToJpeg(jpegBytes: ByteArray, orientation: Int): ByteArray {
145
+ return try {
146
+ val tempFile = java.io.File.createTempFile("jpeg", ".jpg")
147
+ tempFile.writeBytes(jpegBytes)
148
+
149
+ val exif = ExifInterface(tempFile.absolutePath)
150
+ exif.setAttribute(ExifInterface.TAG_ORIENTATION, orientation.toString())
151
+ exif.saveAttributes()
152
+
153
+ val resultBytes = tempFile.readBytes()
154
+ tempFile.delete()
155
+ resultBytes
156
+ } catch (e: Exception) {
157
+ Log.w(TAG, "Failed to add EXIF orientation, returning original JPEG: ${e.message}")
158
+ jpegBytes // Fallback to original if EXIF writing fails
159
+ }
160
+ }
161
+
124
162
  /**
125
163
  * Convert float array (normalized 0-1) to RGB byte array (0-255).
126
164
  */
@@ -163,6 +201,7 @@ class JpegEncoder {
163
201
 
164
202
  /**
165
203
  * Direct NV21 to RGB conversion (minimal overhead).
204
+ * FIXED: Now uses corrected YUV to RGB conversion formula.
166
205
  */
167
206
  private fun nv21ToRgbDirect(nv21: ByteArray, width: Int, height: Int, rgbOut: ByteArray) {
168
207
  val ySize = width * height
@@ -180,6 +219,8 @@ class JpegEncoder {
180
219
  val uf = uVal - 128f
181
220
  val vf = vVal - 128f
182
221
 
222
+ // FIXED: Corrected YUV to RGB conversion formula
223
+ // Using ITU-R BT.601 standard coefficients
183
224
  val r = (yf + 1.402f * vf).coerceIn(0f, 255f).toInt().toByte()
184
225
  val g = (yf - 0.34414f * uf - 0.71414f * vf).coerceIn(0f, 255f).toInt().toByte()
185
226
  val b = (yf + 1.772f * uf).coerceIn(0f, 255f).toInt().toByte()
@@ -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/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.10",
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
-