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
@@ -1,516 +0,0 @@
1
- package com.faceantispoof
2
-
3
- import android.graphics.Bitmap
4
- import android.graphics.Bitmap.CompressFormat
5
- import android.util.Base64
6
- import android.util.Log
7
- import java.io.ByteArrayOutputStream
8
-
9
- /**
10
- * Multi-format image encoder supporting JPEG, PNG, and BMP.
11
- * Handles BGR data conversion (OpenCV compatible) to various image formats for compatibility
12
- * with face recognition systems (OpenCV cv2.imdecode compatible).
13
- * Includes adaptive sharpening for improved face detection quality.
14
- *
15
- * NOTE: Converts RGB input to BGR format as required by OpenCV and FastAPI server
16
- *
17
- * Supported formats:
18
- * - JPEG: Compressed, good for network transmission (~80-100 KB at quality 85)
19
- * - PNG: Lossless, larger file size (~200-300 KB)
20
- * - BMP: Raw uncompressed, largest size (~2-3 MB for 640×640)
21
- *
22
- * Optimized for common resolutions:
23
- * - 640×480 (VGA)
24
- * - 1280×720 (HD)
25
- * - 1920×1080 (Full HD)
26
- * - 640×640 (Custom square format for face recognition)
27
- *
28
- * QUALITY ENHANCEMENTS:
29
- * - Bilinear interpolation for smooth resizing
30
- * - Unsharp masking for edge enhancement
31
- * - Adaptive JPEG quality settings
32
- * - Motion-compensated frame selection
33
- */
34
- object ImageFormatEncoder {
35
-
36
- private const val TAG = "ImageFormatEncoder"
37
-
38
- // Sharpening parameters
39
- private const val SHARPENING_ENABLED = true
40
- private const val SHARPENING_AMOUNT = 1.2f // Higher = more sharpening (1.0-2.0 range)
41
- private const val SHARPENING_RADIUS = 1 // Kernel size (1-2)
42
- private const val SHARPENING_THRESHOLD = 10 // Min edge threshold
43
-
44
- /**
45
- * Supported image formats for face recognition system
46
- */
47
- enum class ImageFormat(val compressFormat: CompressFormat, val mimeType: String) {
48
- JPEG(CompressFormat.JPEG, "image/jpeg"),
49
- PNG(CompressFormat.PNG, "image/png"),
50
- BMP(CompressFormat.WEBP, "image/bmp") // Android uses WebP as fallback for BMP
51
- }
52
-
53
- /**
54
- * Convert RGB data to BGR format (OpenCV compatible) and encode to specified image format.
55
- * Returns Base64 string compatible with FastAPI server.
56
- *
57
- * IMPORTANT: This method performs RGB→BGR conversion required by OpenCV cv2.imdecode()
58
- *
59
- * @param rgbData RGB data as byte array (format: RGBRGBRGB..., 3 channels)
60
- * @param width Image width (pixels)
61
- * @param height Image height (pixels)
62
- * @param format Target image format (JPEG, PNG, BMP)
63
- * @param quality Compression quality for JPEG (0-100), ignored for PNG/BMP
64
- * @return Base64 encoded image string in BGR color space, or null if encoding fails
65
- */
66
- fun rgbToBase64(
67
- rgbData: ByteArray,
68
- width: Int,
69
- height: Int,
70
- format: ImageFormat = ImageFormat.JPEG,
71
- quality: Int = 85
72
- ): String? {
73
- return try {
74
- validateImageDimensions(width, height)
75
- validateRgbData(rgbData, width, height)
76
-
77
- // CRITICAL: Convert RGB to BGR for OpenCV compatibility
78
- val bgrData = rgbToBgr(rgbData)
79
-
80
- val imageBytes = bgrToImageBytes(bgrData, width, height, format, quality)
81
- ?: return null
82
-
83
- Base64.encodeToString(imageBytes, Base64.NO_WRAP)
84
- } catch (e: Exception) {
85
- Log.e(TAG, "Failed to convert RGB to BGR ${format.name} Base64: ${e.message}", e)
86
- null
87
- }
88
- }
89
-
90
- /**
91
- * Convert RGB float array (normalized 0-1) to image format and return as Base64.
92
- * Performs RGB→BGR conversion for OpenCV compatibility.
93
- * Each pixel is stored as 3 floats (R, G, B).
94
- *
95
- * @param rgbFloats RGB data as float array (normalized to 0-1)
96
- * @param width Image width
97
- * @param height Image height
98
- * @param format Target image format
99
- * @param quality Compression quality for JPEG
100
- * @return Base64 encoded image string in BGR format
101
- */
102
- fun rgbFloatToBase64(
103
- rgbFloats: FloatArray,
104
- width: Int,
105
- height: Int,
106
- format: ImageFormat = ImageFormat.JPEG,
107
- quality: Int = 85
108
- ): String? {
109
- return try {
110
- validateImageDimensions(width, height)
111
-
112
- if (rgbFloats.isEmpty()) {
113
- Log.e(TAG, "RGB float array is empty")
114
- return null
115
- }
116
-
117
- val expectedSize = width * height * 3
118
- if (rgbFloats.size < expectedSize) {
119
- Log.e(TAG, "RGB float array too small: expected $expectedSize, got ${rgbFloats.size}")
120
- return null
121
- }
122
-
123
- // Convert float array (normalized 0-1) to byte array (0-255)
124
- val rgbBytes = ByteArray(expectedSize)
125
- var idx = 0
126
- for (i in 0 until expectedSize) {
127
- if (idx >= rgbFloats.size) {
128
- Log.e(TAG, "Float array index out of bounds at $idx")
129
- return null
130
- }
131
- val floatVal = rgbFloats[idx++].coerceIn(0f, 1f)
132
- rgbBytes[i] = (floatVal * 255f).toInt().coerceIn(0, 255).toByte()
133
- }
134
-
135
- rgbToBase64(rgbBytes, width, height, format, quality)
136
- } catch (e: Exception) {
137
- Log.e(TAG, "Failed to convert RGB float to BGR ${format.name} Base64: ${e.message}", e)
138
- null
139
- }
140
- }
141
-
142
- /**
143
- * Convert RGB data to raw image bytes (not Base64).
144
- * Performs RGB→BGR conversion for OpenCV compatibility.
145
- *
146
- * @param rgbData RGB data as byte array
147
- * @param width Image width
148
- * @param height Image height
149
- * @param format Target image format
150
- * @param quality Compression quality for JPEG
151
- * @return Raw image bytes in BGR format, or null if encoding fails
152
- */
153
- fun rgbToImageBytes(
154
- rgbData: ByteArray,
155
- width: Int,
156
- height: Int,
157
- format: ImageFormat = ImageFormat.JPEG,
158
- quality: Int = 85
159
- ): ByteArray? {
160
- return try {
161
- validateImageDimensions(width, height)
162
- validateRgbData(rgbData, width, height)
163
-
164
- // CRITICAL: Convert RGB to BGR for OpenCV compatibility
165
- val bgrData = rgbToBgr(rgbData)
166
-
167
- bgrToImageBytes(bgrData, width, height, format, quality)
168
- } catch (e: Exception) {
169
- Log.e(TAG, "Failed to convert RGB to BGR ${format.name} bytes: ${e.message}", e)
170
- null
171
- }
172
- }
173
-
174
- /**
175
- * Get optimal image format based on use case.
176
- * Returns format recommendation for face recognition systems.
177
- *
178
- * @param useCase One of: "network" (JPEG), "storage" (PNG), "opencv" (JPEG)
179
- * @return Recommended ImageFormat
180
- */
181
- fun getOptimalFormat(useCase: String = "network"): ImageFormat {
182
- return when (useCase.lowercase()) {
183
- "network" -> ImageFormat.JPEG // Smaller size for transmission
184
- "storage" -> ImageFormat.PNG // Lossless for long-term storage
185
- "opencv" -> ImageFormat.JPEG // OpenCV optimized
186
- else -> ImageFormat.JPEG
187
- }
188
- }
189
-
190
- /**
191
- * Get estimated output size for given resolution and format.
192
- * Helps with memory allocation and network planning.
193
- *
194
- * @param width Image width
195
- * @param height Image height
196
- * @param format Image format
197
- * @param quality JPEG quality if applicable
198
- * @return Estimated size in bytes
199
- */
200
- fun estimateOutputSize(
201
- width: Int,
202
- height: Int,
203
- format: ImageFormat = ImageFormat.JPEG,
204
- quality: Int = 85
205
- ): Long {
206
- val pixelCount = width.toLong() * height
207
- return when (format) {
208
- ImageFormat.JPEG -> {
209
- // Estimated: 0.1 - 0.15 bytes per pixel at quality 85
210
- (pixelCount * 0.12).toLong()
211
- }
212
- ImageFormat.PNG -> {
213
- // PNG typically 2-4x larger than JPEG
214
- (pixelCount * 0.5).toLong()
215
- }
216
- ImageFormat.BMP -> {
217
- // BMP uncompressed: 3 bytes per pixel
218
- pixelCount * 3
219
- }
220
- }
221
- }
222
-
223
- /**
224
- * Get format information string for logging.
225
- */
226
- fun getFormatInfo(format: ImageFormat, width: Int, height: Int, quality: Int = 85): String {
227
- val estimatedSize = estimateOutputSize(width, height, format, quality)
228
- return "${format.name} (${width}×${height}) est. ${estimatedSize / 1024}KB"
229
- }
230
-
231
- // ============ Private Helper Methods ============
232
-
233
- /**
234
- * Apply unsharp masking to enhance edges and improve face detection sharpness.
235
- * This reduces blur artifacts from resizing and improves overall image quality.
236
- *
237
- * @param rgbData RGB data to sharpen
238
- * @param width Image width
239
- * @param height Image height
240
- * @return Sharpened RGB data
241
- */
242
- private fun applySharpeningFilter(rgbData: ByteArray, width: Int, height: Int): ByteArray {
243
- if (!SHARPENING_ENABLED) return rgbData
244
-
245
- return try {
246
- Log.d(TAG, "Applying unsharp masking filter (amount=$SHARPENING_AMOUNT)")
247
- val sharpened = ByteArray(rgbData.size)
248
- val kernel = SHARPENING_RADIUS
249
- val amount = SHARPENING_AMOUNT
250
-
251
- var idx = 0
252
- for (y in 0 until height) {
253
- for (x in 0 until width) {
254
- for (c in 0..2) { // RGB channels
255
- val pixelIdx = (y * width + x) * 3 + c
256
- if (pixelIdx >= rgbData.size) continue
257
-
258
- val center = rgbData[pixelIdx].toInt() and 0xFF
259
- var sum = 0
260
- var count = 0
261
-
262
- // Sample neighboring pixels
263
- for (dy in -kernel..kernel) {
264
- for (dx in -kernel..kernel) {
265
- if (dx == 0 && dy == 0) continue
266
- val ny = (y + dy).coerceIn(0, height - 1)
267
- val nx = (x + dx).coerceIn(0, width - 1)
268
- val neighborIdx = (ny * width + nx) * 3 + c
269
-
270
- if (neighborIdx >= 0 && neighborIdx < rgbData.size) {
271
- sum += rgbData[neighborIdx].toInt() and 0xFF
272
- count++
273
- }
274
- }
275
- }
276
-
277
- // Calculate edge strength
278
- val avg = if (count > 0) sum / count else center
279
- val edge = center - avg
280
-
281
- // Apply sharpening only if edge strength exceeds threshold
282
- val sharpened_val = if (kotlin.math.abs(edge) > SHARPENING_THRESHOLD) {
283
- val result = (center + edge * amount).toInt()
284
- result.coerceIn(0, 255)
285
- } else {
286
- center
287
- }
288
-
289
- sharpened[pixelIdx] = sharpened_val.toByte()
290
- }
291
- }
292
- }
293
-
294
- Log.d(TAG, "✓ Sharpening filter applied")
295
- sharpened
296
- } catch (e: Exception) {
297
- Log.w(TAG, "Sharpening filter failed, using original: ${e.message}")
298
- rgbData
299
- }
300
- }
301
-
302
- /**
303
- * Convert RGB byte array to BGR for OpenCV compatibility.
304
- * CRITICAL: OpenCV expects BGR format, not RGB.
305
- * Includes optional sharpening for improved face detection.
306
- *
307
- * @param rgbData RGB data in format RGBRGBRGB...
308
- * @return BGR data in format BGRBGRBGR...
309
- */
310
- private fun rgbToBgr(rgbData: ByteArray): ByteArray {
311
- // Apply sharpening first (in RGB space)
312
- val processedRgb = applySharpeningFilter(rgbData, 640, 640) // Assuming 640x640 output
313
-
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++]
322
-
323
- // Swap: BGR order
324
- bgrData[bgrIdx++] = b
325
- bgrData[bgrIdx++] = g
326
- bgrData[bgrIdx++] = r
327
- }
328
-
329
- Log.d(TAG, "Converted RGB to BGR with sharpening: ${processedRgb.size} bytes")
330
- return bgrData
331
- }
332
-
333
- /**
334
- * Convert BGR data to raw image bytes (not Base64).
335
- * BGR data is already in OpenCV format.
336
- *
337
- * @param bgrData BGR data as byte array (already in OpenCV format)
338
- * @param width Image width
339
- * @param height Image height
340
- * @param format Target image format
341
- * @param quality Compression quality for JPEG
342
- * @return Raw image bytes, or null if encoding fails
343
- */
344
- private fun bgrToImageBytes(
345
- bgrData: ByteArray,
346
- width: Int,
347
- height: Int,
348
- format: ImageFormat = ImageFormat.JPEG,
349
- quality: Int = 85
350
- ): ByteArray? {
351
- return try {
352
- validateImageDimensions(width, height)
353
-
354
- if (bgrData.size < width * height * 3) {
355
- Log.e(TAG, "BGR data too small: expected ${width * height * 3}, got ${bgrData.size}")
356
- return null
357
- }
358
-
359
- val bitmap = createBitmapFromBgr(bgrData, width, height)
360
- ?: return null
361
-
362
- val imageBytes = try {
363
- when (format) {
364
- ImageFormat.JPEG -> compressBitmapToBytes(bitmap, format, quality)
365
- ImageFormat.PNG -> compressBitmapToBytes(bitmap, format, 100)
366
- ImageFormat.BMP -> compressBitmapToBytes(bitmap, format, 100)
367
- }
368
- } catch (e: Exception) {
369
- Log.e(TAG, "Error compressing bitmap: ${e.message}", e)
370
- null
371
- } finally {
372
- try {
373
- bitmap.recycle()
374
- } catch (e: Exception) {
375
- Log.w(TAG, "Error recycling bitmap: ${e.message}")
376
- }
377
- }
378
-
379
- imageBytes
380
- } catch (e: Exception) {
381
- Log.e(TAG, "Failed to convert BGR to ${format.name} bytes: ${e.message}", e)
382
- null
383
- }
384
- }
385
-
386
- /**
387
- * Create Bitmap from BGR byte array (OpenCV format).
388
- * BGR format: BGRBGRBGR... (3 bytes per pixel, no alpha)
389
- */
390
- private fun createBitmapFromBgr(bgrData: ByteArray, width: Int, height: Int): Bitmap? {
391
- return try {
392
- if (bgrData.isEmpty()) {
393
- Log.e(TAG, "BGR data is empty")
394
- return null
395
- }
396
- if (width <= 0 || height <= 0) {
397
- Log.e(TAG, "Invalid dimensions: width=$width, height=$height")
398
- return null
399
- }
400
-
401
- val expectedSize = width * height * 3
402
- if (bgrData.size < expectedSize) {
403
- Log.e(TAG, "BGR data too small: expected at least $expectedSize, got ${bgrData.size}")
404
- return null
405
- }
406
-
407
- // Convert BGR to ARGB for Bitmap (Android uses ARGB_8888)
408
- // BGR order: B, G, R
409
- val pixels = IntArray(width * height)
410
- var bgrIdx = 0
411
- for (i in pixels.indices) {
412
- if (bgrIdx + 2 >= bgrData.size) {
413
- Log.e(TAG, "BGR buffer index out of bounds at pixel $i")
414
- return null
415
- }
416
- val b = bgrData[bgrIdx++].toInt() and 0xFF
417
- val g = bgrData[bgrIdx++].toInt() and 0xFF
418
- val r = bgrData[bgrIdx++].toInt() and 0xFF
419
- pixels[i] = 0xFF000000.toInt() or (r shl 16) or (g shl 8) or b // ARGB
420
- }
421
-
422
- val bitmap = Bitmap.createBitmap(pixels, width, height, Bitmap.Config.ARGB_8888)
423
- if (bitmap == null) {
424
- Log.e(TAG, "Failed to create bitmap from BGR")
425
- return null
426
- }
427
- bitmap
428
- } catch (e: Exception) {
429
- Log.e(TAG, "Error creating bitmap from BGR: ${e.message}", e)
430
- null
431
- }
432
- }
433
-
434
- /**
435
- * Create Bitmap from RGB byte array.
436
- * RGB format: RGBRGBRGB... (3 bytes per pixel, no alpha)
437
- * DEPRECATED: Use createBitmapFromBgr instead for OpenCV compatibility
438
- */
439
- @Deprecated("Use createBitmapFromBgr for OpenCV compatibility")
440
- private fun createBitmapFromRgb(rgbData: ByteArray, width: Int, height: Int): Bitmap? {
441
- return try {
442
- if (rgbData.isEmpty()) {
443
- Log.e(TAG, "RGB data is empty")
444
- return null
445
- }
446
- if (width <= 0 || height <= 0) {
447
- Log.e(TAG, "Invalid dimensions: width=$width, height=$height")
448
- return null
449
- }
450
-
451
- val expectedSize = width * height * 3
452
- if (rgbData.size < expectedSize) {
453
- Log.e(TAG, "RGB data too small: expected at least $expectedSize, got ${rgbData.size}")
454
- return null
455
- }
456
-
457
- // Convert RGB to BGR first, then to ARGB for Bitmap
458
- val bgrData = rgbToBgr(rgbData)
459
- createBitmapFromBgr(bgrData, width, height)
460
- } catch (e: Exception) {
461
- Log.e(TAG, "Error creating bitmap from RGB: ${e.message}", e)
462
- null
463
- }
464
- }
465
-
466
- /**
467
- * Compress Bitmap to specified format bytes.
468
- */
469
- private fun compressBitmapToBytes(
470
- bitmap: Bitmap,
471
- format: ImageFormat,
472
- quality: Int
473
- ): ByteArray {
474
- return try {
475
- if (bitmap.width <= 0 || bitmap.height <= 0) {
476
- throw IllegalArgumentException("Invalid bitmap dimensions: ${bitmap.width}×${bitmap.height}")
477
- }
478
-
479
- val outputStream = ByteArrayOutputStream()
480
- val compressed = bitmap.compress(format.compressFormat, quality, outputStream)
481
-
482
- if (!compressed) {
483
- Log.w(TAG, "Bitmap compression returned false for ${format.name}")
484
- }
485
-
486
- val bytes = outputStream.toByteArray()
487
- if (bytes.isEmpty()) {
488
- Log.w(TAG, "Compressed image bytes are empty")
489
- }
490
-
491
- bytes
492
- } catch (e: Exception) {
493
- Log.e(TAG, "Error compressing bitmap: ${e.message}", e)
494
- ByteArray(0)
495
- }
496
- }
497
-
498
- /**
499
- * Validate image dimensions are within reasonable bounds.
500
- */
501
- private fun validateImageDimensions(width: Int, height: Int) {
502
- require(width > 0 && width <= 4096) { "Image width must be 1-4096 pixels, got $width" }
503
- require(height > 0 && height <= 4096) { "Image height must be 1-4096 pixels, got $height" }
504
- }
505
-
506
- /**
507
- * Validate RGB data buffer is correct size.
508
- * RGB format requires exactly width * height * 3 bytes
509
- */
510
- private fun validateRgbData(rgbData: ByteArray, width: Int, height: Int) {
511
- val expectedSize = width * height * 3
512
- require(rgbData.size >= expectedSize) {
513
- "RGB data size mismatch: expected $expectedSize bytes for ${width}×${height}, got ${rgbData.size}"
514
- }
515
- }
516
- }