diff --git a/.gradle/9.4.1/executionHistory/executionHistory.bin b/.gradle/9.4.1/executionHistory/executionHistory.bin
index 1fbf04f..2f80da4 100644
Binary files a/.gradle/9.4.1/executionHistory/executionHistory.bin and b/.gradle/9.4.1/executionHistory/executionHistory.bin differ
diff --git a/.gradle/9.4.1/executionHistory/executionHistory.lock b/.gradle/9.4.1/executionHistory/executionHistory.lock
index a61f35d..c078df2 100644
Binary files a/.gradle/9.4.1/executionHistory/executionHistory.lock and b/.gradle/9.4.1/executionHistory/executionHistory.lock differ
diff --git a/.gradle/9.4.1/fileHashes/fileHashes.bin b/.gradle/9.4.1/fileHashes/fileHashes.bin
index 29028ea..fc61e2e 100644
Binary files a/.gradle/9.4.1/fileHashes/fileHashes.bin and b/.gradle/9.4.1/fileHashes/fileHashes.bin differ
diff --git a/.gradle/9.4.1/fileHashes/fileHashes.lock b/.gradle/9.4.1/fileHashes/fileHashes.lock
index 2ea7377..142e9d0 100644
Binary files a/.gradle/9.4.1/fileHashes/fileHashes.lock and b/.gradle/9.4.1/fileHashes/fileHashes.lock differ
diff --git a/.gradle/9.4.1/fileHashes/resourceHashesCache.bin b/.gradle/9.4.1/fileHashes/resourceHashesCache.bin
index eac1059..c99f4bf 100644
Binary files a/.gradle/9.4.1/fileHashes/resourceHashesCache.bin and b/.gradle/9.4.1/fileHashes/resourceHashesCache.bin differ
diff --git a/.gradle/buildOutputCleanup/buildOutputCleanup.lock b/.gradle/buildOutputCleanup/buildOutputCleanup.lock
index 054bd32..9c94d40 100644
Binary files a/.gradle/buildOutputCleanup/buildOutputCleanup.lock and b/.gradle/buildOutputCleanup/buildOutputCleanup.lock differ
diff --git a/app/.cxx/Debug/j1t3m4l4/arm64-v8a/.cmake/api/v1/reply/cache-v2-f33023aa1b1611a96206.json b/app/.cxx/Debug/j1t3m4l4/arm64-v8a/.cmake/api/v1/reply/cache-v2-8d805c190d8b7792c391.json
similarity index 99%
rename from app/.cxx/Debug/j1t3m4l4/arm64-v8a/.cmake/api/v1/reply/cache-v2-f33023aa1b1611a96206.json
rename to app/.cxx/Debug/j1t3m4l4/arm64-v8a/.cmake/api/v1/reply/cache-v2-8d805c190d8b7792c391.json
index 878bc55..b55ef5e 100644
--- a/app/.cxx/Debug/j1t3m4l4/arm64-v8a/.cmake/api/v1/reply/cache-v2-f33023aa1b1611a96206.json
+++ b/app/.cxx/Debug/j1t3m4l4/arm64-v8a/.cmake/api/v1/reply/cache-v2-8d805c190d8b7792c391.json
@@ -1231,11 +1231,11 @@
[
{
"name" : "HELPSTRING",
- "value" : "The CMake toolchain file"
+ "value" : "No help, variable specified on the command line."
}
],
- "type" : "FILEPATH",
- "value" : "D:/Android/sdk/ndk/28.2.13676358/build/cmake/android.toolchain.cmake"
+ "type" : "UNINITIALIZED",
+ "value" : "D:\\Android\\sdk\\ndk\\28.2.13676358\\build\\cmake\\android.toolchain.cmake"
},
{
"name" : "CMAKE_VERBOSE_MAKEFILE",
diff --git a/app/.cxx/Debug/j1t3m4l4/arm64-v8a/.cmake/api/v1/reply/cmakeFiles-v1-69a13c23dbc981a65d77.json b/app/.cxx/Debug/j1t3m4l4/arm64-v8a/.cmake/api/v1/reply/cmakeFiles-v1-69a13c23dbc981a65d77.json
deleted file mode 100644
index 5f75fbb..0000000
--- a/app/.cxx/Debug/j1t3m4l4/arm64-v8a/.cmake/api/v1/reply/cmakeFiles-v1-69a13c23dbc981a65d77.json
+++ /dev/null
@@ -1,803 +0,0 @@
-{
- "inputs" :
- [
- {
- "path" : "CMakeLists.txt"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineSystem.cmake"
- },
- {
- "isExternal" : true,
- "path" : "D:/Android/sdk/ndk/28.2.13676358/build/cmake/android.toolchain.cmake"
- },
- {
- "isExternal" : true,
- "path" : "D:/Android/sdk/ndk/28.2.13676358/build/cmake/android-legacy.toolchain.cmake"
- },
- {
- "isExternal" : true,
- "path" : "D:/Android/sdk/ndk/28.2.13676358/build/cmake/abis.cmake"
- },
- {
- "isExternal" : true,
- "path" : "D:/Android/sdk/ndk/28.2.13676358/build/cmake/platforms.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Determine.cmake"
- },
- {
- "isExternal" : true,
- "path" : "D:/Android/sdk/ndk/28.2.13676358/build/cmake/hooks/pre/Android-Determine.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeSystem.cmake.in"
- },
- {
- "isGenerated" : true,
- "path" : "D:/MyProject/kcompressor/app/.cxx/Debug/j1t3m4l4/arm64-v8a/CMakeFiles/3.22.1-g37088a8-dirty/CMakeSystem.cmake"
- },
- {
- "isExternal" : true,
- "path" : "D:/Android/sdk/ndk/28.2.13676358/build/cmake/android.toolchain.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeSystemSpecificInitialize.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Initialize.cmake"
- },
- {
- "isExternal" : true,
- "path" : "D:/Android/sdk/ndk/28.2.13676358/build/cmake/hooks/pre/Android-Initialize.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCCompiler.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCompiler.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Determine-C.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android/Determine-Compiler.cmake"
- },
- {
- "isExternal" : true,
- "path" : "D:/Android/sdk/ndk/28.2.13676358/build/cmake/hooks/pre/Determine-Compiler.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCompilerId.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCompilerIdDetection.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/ADSP-DetermineCompiler.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/ARMCC-DetermineCompiler.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/ARMClang-DetermineCompiler.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/AppleClang-DetermineCompiler.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-DetermineCompilerInternal.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Borland-DetermineCompiler.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Bruce-C-DetermineCompiler.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-DetermineCompiler.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-DetermineCompilerInternal.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Compaq-C-DetermineCompiler.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Cray-DetermineCompiler.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Embarcadero-DetermineCompiler.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Fujitsu-DetermineCompiler.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/FujitsuClang-DetermineCompiler.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/GHS-DetermineCompiler.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/GNU-C-DetermineCompiler.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/HP-C-DetermineCompiler.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/IAR-DetermineCompiler.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Intel-DetermineCompiler.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/IntelLLVM-DetermineCompiler.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/MSVC-DetermineCompiler.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/NVHPC-DetermineCompiler.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/NVIDIA-DetermineCompiler.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/OpenWatcom-DetermineCompiler.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/PGI-DetermineCompiler.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/PathScale-DetermineCompiler.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/SCO-DetermineCompiler.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/SDCC-C-DetermineCompiler.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/SunPro-C-DetermineCompiler.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/TI-DetermineCompiler.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/TinyCC-C-DetermineCompiler.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/VisualAge-C-DetermineCompiler.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/IBMCPP-C-DetermineVersionInternal.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Watcom-DetermineCompiler.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/XL-C-DetermineCompiler.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/IBMCPP-C-DetermineVersionInternal.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/XLClang-C-DetermineCompiler.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/zOS-C-DetermineCompiler.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/IBMCPP-C-DetermineVersionInternal.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeFindBinUtils.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-FindBinUtils.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCCompiler.cmake.in"
- },
- {
- "isGenerated" : true,
- "path" : "D:/MyProject/kcompressor/app/.cxx/Debug/j1t3m4l4/arm64-v8a/CMakeFiles/3.22.1-g37088a8-dirty/CMakeCCompiler.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCXXCompiler.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCompiler.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Determine-CXX.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android/Determine-Compiler.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCompilerId.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCompilerIdDetection.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/ADSP-DetermineCompiler.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/ARMCC-DetermineCompiler.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/ARMClang-DetermineCompiler.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/AppleClang-DetermineCompiler.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-DetermineCompilerInternal.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Borland-DetermineCompiler.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-DetermineCompiler.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-DetermineCompilerInternal.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Comeau-CXX-DetermineCompiler.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Compaq-CXX-DetermineCompiler.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Cray-DetermineCompiler.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Embarcadero-DetermineCompiler.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Fujitsu-DetermineCompiler.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/FujitsuClang-DetermineCompiler.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/GHS-DetermineCompiler.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/GNU-CXX-DetermineCompiler.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/HP-CXX-DetermineCompiler.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/IAR-DetermineCompiler.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Intel-DetermineCompiler.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/IntelLLVM-DetermineCompiler.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/MSVC-DetermineCompiler.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/NVHPC-DetermineCompiler.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/NVIDIA-DetermineCompiler.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/OpenWatcom-DetermineCompiler.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/PGI-DetermineCompiler.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/PathScale-DetermineCompiler.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/SCO-DetermineCompiler.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/SunPro-CXX-DetermineCompiler.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/TI-DetermineCompiler.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/VisualAge-CXX-DetermineCompiler.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/IBMCPP-CXX-DetermineVersionInternal.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Watcom-DetermineCompiler.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/XL-CXX-DetermineCompiler.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/IBMCPP-CXX-DetermineVersionInternal.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/XLClang-CXX-DetermineCompiler.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/zOS-CXX-DetermineCompiler.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/IBMCPP-CXX-DetermineVersionInternal.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeFindBinUtils.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-FindBinUtils.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCXXCompiler.cmake.in"
- },
- {
- "isGenerated" : true,
- "path" : "D:/MyProject/kcompressor/app/.cxx/Debug/j1t3m4l4/arm64-v8a/CMakeFiles/3.22.1-g37088a8-dirty/CMakeCXXCompiler.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeSystemSpecificInformation.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeGenericSystem.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeInitializeConfigs.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android.cmake"
- },
- {
- "isExternal" : true,
- "path" : "D:/Android/sdk/ndk/28.2.13676358/build/cmake/hooks/pre/Android.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Linux.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/UnixPaths.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCInformation.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeLanguageInformation.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-C.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/CMakeCommonCompilerMacros.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/GNU.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/CMakeCommonCompilerMacros.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Clang-C.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Clang.cmake"
- },
- {
- "isExternal" : true,
- "path" : "D:/Android/sdk/ndk/28.2.13676358/build/cmake/hooks/pre/Android-Clang.cmake"
- },
- {
- "isExternal" : true,
- "path" : "D:/Android/sdk/ndk/28.2.13676358/build/cmake/flags.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCommonLanguageInclude.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeTestCCompiler.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeTestCompilerCommon.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCompilerABI.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeParseImplicitIncludeInfo.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeParseImplicitLinkInfo.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeParseLibraryArchitecture.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeTestCompilerCommon.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCCompilerABI.c"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCompileFeatures.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Internal/FeatureTesting.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCCompiler.cmake.in"
- },
- {
- "isGenerated" : true,
- "path" : "D:/MyProject/kcompressor/app/.cxx/Debug/j1t3m4l4/arm64-v8a/CMakeFiles/3.22.1-g37088a8-dirty/CMakeCCompiler.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCXXInformation.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeLanguageInformation.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-CXX.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Clang-CXX.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Clang.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCommonLanguageInclude.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeTestCXXCompiler.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeTestCompilerCommon.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCompilerABI.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeParseImplicitIncludeInfo.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeParseImplicitLinkInfo.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeParseLibraryArchitecture.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeTestCompilerCommon.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCXXCompilerABI.cpp"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCompileFeatures.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Internal/FeatureTesting.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCXXCompiler.cmake.in"
- },
- {
- "isGenerated" : true,
- "path" : "D:/MyProject/kcompressor/app/.cxx/Debug/j1t3m4l4/arm64-v8a/CMakeFiles/3.22.1-g37088a8-dirty/CMakeCXXCompiler.cmake"
- }
- ],
- "kind" : "cmakeFiles",
- "paths" :
- {
- "build" : "D:/MyProject/kcompressor/app/.cxx/Debug/j1t3m4l4/arm64-v8a",
- "source" : "D:/MyProject/kcompressor/app/src/main/cpp"
- },
- "version" :
- {
- "major" : 1,
- "minor" : 0
- }
-}
diff --git a/app/.cxx/Debug/j1t3m4l4/arm64-v8a/.cmake/api/v1/reply/cmakeFiles-v1-99f9f12be00cc0f7a77f.json b/app/.cxx/Debug/j1t3m4l4/arm64-v8a/.cmake/api/v1/reply/cmakeFiles-v1-99f9f12be00cc0f7a77f.json
new file mode 100644
index 0000000..d5c0acb
--- /dev/null
+++ b/app/.cxx/Debug/j1t3m4l4/arm64-v8a/.cmake/api/v1/reply/cmakeFiles-v1-99f9f12be00cc0f7a77f.json
@@ -0,0 +1,188 @@
+{
+ "inputs" :
+ [
+ {
+ "path" : "CMakeLists.txt"
+ },
+ {
+ "isGenerated" : true,
+ "path" : "D:/MyProject/kcompressor/app/.cxx/Debug/j1t3m4l4/arm64-v8a/CMakeFiles/3.22.1-g37088a8-dirty/CMakeSystem.cmake"
+ },
+ {
+ "isExternal" : true,
+ "path" : "D:/Android/sdk/ndk/28.2.13676358/build/cmake/android.toolchain.cmake"
+ },
+ {
+ "isExternal" : true,
+ "path" : "D:/Android/sdk/ndk/28.2.13676358/build/cmake/android-legacy.toolchain.cmake"
+ },
+ {
+ "isExternal" : true,
+ "path" : "D:/Android/sdk/ndk/28.2.13676358/build/cmake/abis.cmake"
+ },
+ {
+ "isExternal" : true,
+ "path" : "D:/Android/sdk/ndk/28.2.13676358/build/cmake/platforms.cmake"
+ },
+ {
+ "isCMake" : true,
+ "isExternal" : true,
+ "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeSystemSpecificInitialize.cmake"
+ },
+ {
+ "isCMake" : true,
+ "isExternal" : true,
+ "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Initialize.cmake"
+ },
+ {
+ "isExternal" : true,
+ "path" : "D:/Android/sdk/ndk/28.2.13676358/build/cmake/hooks/pre/Android-Initialize.cmake"
+ },
+ {
+ "isGenerated" : true,
+ "path" : "D:/MyProject/kcompressor/app/.cxx/Debug/j1t3m4l4/arm64-v8a/CMakeFiles/3.22.1-g37088a8-dirty/CMakeCCompiler.cmake"
+ },
+ {
+ "isGenerated" : true,
+ "path" : "D:/MyProject/kcompressor/app/.cxx/Debug/j1t3m4l4/arm64-v8a/CMakeFiles/3.22.1-g37088a8-dirty/CMakeCXXCompiler.cmake"
+ },
+ {
+ "isCMake" : true,
+ "isExternal" : true,
+ "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeSystemSpecificInformation.cmake"
+ },
+ {
+ "isCMake" : true,
+ "isExternal" : true,
+ "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeGenericSystem.cmake"
+ },
+ {
+ "isCMake" : true,
+ "isExternal" : true,
+ "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeInitializeConfigs.cmake"
+ },
+ {
+ "isCMake" : true,
+ "isExternal" : true,
+ "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android.cmake"
+ },
+ {
+ "isExternal" : true,
+ "path" : "D:/Android/sdk/ndk/28.2.13676358/build/cmake/hooks/pre/Android.cmake"
+ },
+ {
+ "isCMake" : true,
+ "isExternal" : true,
+ "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Linux.cmake"
+ },
+ {
+ "isCMake" : true,
+ "isExternal" : true,
+ "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/UnixPaths.cmake"
+ },
+ {
+ "isCMake" : true,
+ "isExternal" : true,
+ "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCInformation.cmake"
+ },
+ {
+ "isCMake" : true,
+ "isExternal" : true,
+ "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeLanguageInformation.cmake"
+ },
+ {
+ "isCMake" : true,
+ "isExternal" : true,
+ "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-C.cmake"
+ },
+ {
+ "isCMake" : true,
+ "isExternal" : true,
+ "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang.cmake"
+ },
+ {
+ "isCMake" : true,
+ "isExternal" : true,
+ "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/CMakeCommonCompilerMacros.cmake"
+ },
+ {
+ "isCMake" : true,
+ "isExternal" : true,
+ "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/GNU.cmake"
+ },
+ {
+ "isCMake" : true,
+ "isExternal" : true,
+ "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/CMakeCommonCompilerMacros.cmake"
+ },
+ {
+ "isCMake" : true,
+ "isExternal" : true,
+ "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Clang-C.cmake"
+ },
+ {
+ "isCMake" : true,
+ "isExternal" : true,
+ "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Clang.cmake"
+ },
+ {
+ "isExternal" : true,
+ "path" : "D:/Android/sdk/ndk/28.2.13676358/build/cmake/hooks/pre/Android-Clang.cmake"
+ },
+ {
+ "isExternal" : true,
+ "path" : "D:/Android/sdk/ndk/28.2.13676358/build/cmake/flags.cmake"
+ },
+ {
+ "isCMake" : true,
+ "isExternal" : true,
+ "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCommonLanguageInclude.cmake"
+ },
+ {
+ "isCMake" : true,
+ "isExternal" : true,
+ "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCXXInformation.cmake"
+ },
+ {
+ "isCMake" : true,
+ "isExternal" : true,
+ "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeLanguageInformation.cmake"
+ },
+ {
+ "isCMake" : true,
+ "isExternal" : true,
+ "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-CXX.cmake"
+ },
+ {
+ "isCMake" : true,
+ "isExternal" : true,
+ "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang.cmake"
+ },
+ {
+ "isCMake" : true,
+ "isExternal" : true,
+ "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Clang-CXX.cmake"
+ },
+ {
+ "isCMake" : true,
+ "isExternal" : true,
+ "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Clang.cmake"
+ },
+ {
+ "isCMake" : true,
+ "isExternal" : true,
+ "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCommonLanguageInclude.cmake"
+ }
+ ],
+ "kind" : "cmakeFiles",
+ "paths" :
+ {
+ "build" : "D:/MyProject/kcompressor/app/.cxx/Debug/j1t3m4l4/arm64-v8a",
+ "source" : "D:/MyProject/kcompressor/app/src/main/cpp"
+ },
+ "version" :
+ {
+ "major" : 1,
+ "minor" : 0
+ }
+}
diff --git a/app/.cxx/Debug/j1t3m4l4/arm64-v8a/.cmake/api/v1/reply/codemodel-v2-68fe302239558c1bc78b.json b/app/.cxx/Debug/j1t3m4l4/arm64-v8a/.cmake/api/v1/reply/codemodel-v2-ae701e491081e38d2bfc.json
similarity index 93%
rename from app/.cxx/Debug/j1t3m4l4/arm64-v8a/.cmake/api/v1/reply/codemodel-v2-68fe302239558c1bc78b.json
rename to app/.cxx/Debug/j1t3m4l4/arm64-v8a/.cmake/api/v1/reply/codemodel-v2-ae701e491081e38d2bfc.json
index 6336141..31260e2 100644
--- a/app/.cxx/Debug/j1t3m4l4/arm64-v8a/.cmake/api/v1/reply/codemodel-v2-68fe302239558c1bc78b.json
+++ b/app/.cxx/Debug/j1t3m4l4/arm64-v8a/.cmake/api/v1/reply/codemodel-v2-ae701e491081e38d2bfc.json
@@ -39,7 +39,7 @@
{
"directoryIndex" : 0,
"id" : "kcompressor::@6890427a1f51a3e7e1df",
- "jsonFile" : "target-kcompressor-Debug-e1d5b73aa4fc6dd9535d.json",
+ "jsonFile" : "target-kcompressor-Debug-5721a6a850bd8e30c8ad.json",
"name" : "kcompressor",
"projectIndex" : 0
}
diff --git a/app/.cxx/Debug/j1t3m4l4/arm64-v8a/.cmake/api/v1/reply/index-2026-06-11T12-24-23-0069.json b/app/.cxx/Debug/j1t3m4l4/arm64-v8a/.cmake/api/v1/reply/index-2026-06-11T19-34-23-0872.json
similarity index 77%
rename from app/.cxx/Debug/j1t3m4l4/arm64-v8a/.cmake/api/v1/reply/index-2026-06-11T12-24-23-0069.json
rename to app/.cxx/Debug/j1t3m4l4/arm64-v8a/.cmake/api/v1/reply/index-2026-06-11T19-34-23-0872.json
index 3993e30..78da504 100644
--- a/app/.cxx/Debug/j1t3m4l4/arm64-v8a/.cmake/api/v1/reply/index-2026-06-11T12-24-23-0069.json
+++ b/app/.cxx/Debug/j1t3m4l4/arm64-v8a/.cmake/api/v1/reply/index-2026-06-11T19-34-23-0872.json
@@ -26,7 +26,7 @@
"objects" :
[
{
- "jsonFile" : "codemodel-v2-68fe302239558c1bc78b.json",
+ "jsonFile" : "codemodel-v2-ae701e491081e38d2bfc.json",
"kind" : "codemodel",
"version" :
{
@@ -35,7 +35,7 @@
}
},
{
- "jsonFile" : "cache-v2-f33023aa1b1611a96206.json",
+ "jsonFile" : "cache-v2-8d805c190d8b7792c391.json",
"kind" : "cache",
"version" :
{
@@ -44,7 +44,7 @@
}
},
{
- "jsonFile" : "cmakeFiles-v1-69a13c23dbc981a65d77.json",
+ "jsonFile" : "cmakeFiles-v1-99f9f12be00cc0f7a77f.json",
"kind" : "cmakeFiles",
"version" :
{
@@ -59,7 +59,7 @@
{
"cache-v2" :
{
- "jsonFile" : "cache-v2-f33023aa1b1611a96206.json",
+ "jsonFile" : "cache-v2-8d805c190d8b7792c391.json",
"kind" : "cache",
"version" :
{
@@ -69,7 +69,7 @@
},
"cmakeFiles-v1" :
{
- "jsonFile" : "cmakeFiles-v1-69a13c23dbc981a65d77.json",
+ "jsonFile" : "cmakeFiles-v1-99f9f12be00cc0f7a77f.json",
"kind" : "cmakeFiles",
"version" :
{
@@ -79,7 +79,7 @@
},
"codemodel-v2" :
{
- "jsonFile" : "codemodel-v2-68fe302239558c1bc78b.json",
+ "jsonFile" : "codemodel-v2-ae701e491081e38d2bfc.json",
"kind" : "codemodel",
"version" :
{
diff --git a/app/.cxx/Debug/j1t3m4l4/arm64-v8a/.cmake/api/v1/reply/target-kcompressor-Debug-e1d5b73aa4fc6dd9535d.json b/app/.cxx/Debug/j1t3m4l4/arm64-v8a/.cmake/api/v1/reply/target-kcompressor-Debug-5721a6a850bd8e30c8ad.json
similarity index 56%
rename from app/.cxx/Debug/j1t3m4l4/arm64-v8a/.cmake/api/v1/reply/target-kcompressor-Debug-e1d5b73aa4fc6dd9535d.json
rename to app/.cxx/Debug/j1t3m4l4/arm64-v8a/.cmake/api/v1/reply/target-kcompressor-Debug-5721a6a850bd8e30c8ad.json
index 28d64a5..a1788ca 100644
--- a/app/.cxx/Debug/j1t3m4l4/arm64-v8a/.cmake/api/v1/reply/target-kcompressor-Debug-e1d5b73aa4fc6dd9535d.json
+++ b/app/.cxx/Debug/j1t3m4l4/arm64-v8a/.cmake/api/v1/reply/target-kcompressor-Debug-5721a6a850bd8e30c8ad.json
@@ -11,6 +11,7 @@
"commands" :
[
"add_library",
+ "target_link_options",
"target_link_libraries",
"target_compile_options",
"target_include_directories"
@@ -27,25 +28,31 @@
{
"command" : 0,
"file" : 0,
- "line" : 14,
+ "line" : 26,
"parent" : 0
},
{
"command" : 1,
"file" : 0,
- "line" : 42,
+ "line" : 32,
"parent" : 0
},
{
"command" : 2,
"file" : 0,
- "line" : 37,
+ "line" : 84,
"parent" : 0
},
{
"command" : 3,
"file" : 0,
- "line" : 17,
+ "line" : 77,
+ "parent" : 0
+ },
+ {
+ "command" : 4,
+ "file" : 0,
+ "line" : 37,
"parent" : 0
}
]
@@ -59,16 +66,20 @@
"fragment" : "-g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -std=c++17 -fexceptions -frtti -fno-limit-debug-info -fPIC"
},
{
- "backtrace" : 3,
+ "backtrace" : 4,
"fragment" : "-Wall"
},
{
- "backtrace" : 3,
+ "backtrace" : 4,
"fragment" : "-Wextra"
},
{
- "backtrace" : 3,
+ "backtrace" : 4,
"fragment" : "-Wno-unused-parameter"
+ },
+ {
+ "backtrace" : 4,
+ "fragment" : "-Wno-deprecated-declarations"
}
],
"defines" :
@@ -80,22 +91,33 @@
"includes" :
[
{
- "backtrace" : 4,
+ "backtrace" : 5,
+ "path" : "D:/MyProject/kcompressor/app/src/main/cpp"
+ },
+ {
+ "backtrace" : 5,
"path" : "D:/MyProject/kcompressor/app/src/main/cpp/third_party/ffmpeg-android/arm64-v8a/include"
},
{
- "backtrace" : 4,
+ "backtrace" : 5,
"path" : "D:/MyProject/kcompressor/app/src/main/cpp/third_party/ffmpeg-android/arm64-v8a/include/x264"
},
{
- "backtrace" : 4,
+ "backtrace" : 5,
"path" : "D:/MyProject/kcompressor/app/src/main/cpp/third_party/ffmpeg-android/arm64-v8a/include/x265"
+ },
+ {
+ "backtrace" : 5,
+ "path" : "D:/MyProject/kcompressor/app/src/main/cpp/third_party/android-image-compres/arm64-v8a/include"
}
],
"language" : "CXX",
"sourceIndexes" :
[
- 0
+ 0,
+ 1,
+ 2,
+ 3
],
"sysroot" :
{
@@ -114,81 +136,151 @@
},
{
"backtrace" : 2,
+ "fragment" : "-Wl,--allow-multiple-definition",
+ "role" : "flags"
+ },
+ {
+ "backtrace" : 2,
+ "fragment" : "-Wl,--exclude-libs,libimagequant.a",
+ "role" : "flags"
+ },
+ {
+ "backtrace" : 2,
+ "fragment" : "-Wl,--exclude-libs,liboxipng_ffi.a",
+ "role" : "flags"
+ },
+ {
+ "backtrace" : 3,
"fragment" : "-Wl,--start-group",
"role" : "libraries"
},
{
- "backtrace" : 2,
+ "backtrace" : 3,
"fragment" : "D:\\MyProject\\kcompressor\\app\\src\\main\\cpp\\third_party\\ffmpeg-android\\arm64-v8a\\lib\\libavfilter.a",
"role" : "libraries"
},
{
- "backtrace" : 2,
+ "backtrace" : 3,
"fragment" : "D:\\MyProject\\kcompressor\\app\\src\\main\\cpp\\third_party\\ffmpeg-android\\arm64-v8a\\lib\\libavformat.a",
"role" : "libraries"
},
{
- "backtrace" : 2,
+ "backtrace" : 3,
"fragment" : "D:\\MyProject\\kcompressor\\app\\src\\main\\cpp\\third_party\\ffmpeg-android\\arm64-v8a\\lib\\libavcodec.a",
"role" : "libraries"
},
{
- "backtrace" : 2,
+ "backtrace" : 3,
"fragment" : "D:\\MyProject\\kcompressor\\app\\src\\main\\cpp\\third_party\\ffmpeg-android\\arm64-v8a\\lib\\libswscale.a",
"role" : "libraries"
},
{
- "backtrace" : 2,
+ "backtrace" : 3,
"fragment" : "D:\\MyProject\\kcompressor\\app\\src\\main\\cpp\\third_party\\ffmpeg-android\\arm64-v8a\\lib\\libswresample.a",
"role" : "libraries"
},
{
- "backtrace" : 2,
+ "backtrace" : 3,
"fragment" : "D:\\MyProject\\kcompressor\\app\\src\\main\\cpp\\third_party\\ffmpeg-android\\arm64-v8a\\lib\\libavutil.a",
"role" : "libraries"
},
{
- "backtrace" : 2,
+ "backtrace" : 3,
"fragment" : "D:\\MyProject\\kcompressor\\app\\src\\main\\cpp\\third_party\\ffmpeg-android\\arm64-v8a\\lib\\libx264.a",
"role" : "libraries"
},
{
- "backtrace" : 2,
+ "backtrace" : 3,
"fragment" : "D:\\MyProject\\kcompressor\\app\\src\\main\\cpp\\third_party\\ffmpeg-android\\arm64-v8a\\lib\\libx265.a",
"role" : "libraries"
},
{
- "backtrace" : 2,
+ "backtrace" : 3,
+ "fragment" : "D:\\MyProject\\kcompressor\\app\\src\\main\\cpp\\third_party\\android-image-compres\\arm64-v8a\\lib\\libturbojpeg.a",
+ "role" : "libraries"
+ },
+ {
+ "backtrace" : 3,
+ "fragment" : "D:\\MyProject\\kcompressor\\app\\src\\main\\cpp\\third_party\\android-image-compres\\arm64-v8a\\lib\\libjpeg.a",
+ "role" : "libraries"
+ },
+ {
+ "backtrace" : 3,
+ "fragment" : "D:\\MyProject\\kcompressor\\app\\src\\main\\cpp\\third_party\\android-image-compres\\arm64-v8a\\lib\\libwebp.a",
+ "role" : "libraries"
+ },
+ {
+ "backtrace" : 3,
+ "fragment" : "D:\\MyProject\\kcompressor\\app\\src\\main\\cpp\\third_party\\android-image-compres\\arm64-v8a\\lib\\libsharpyuv.a",
+ "role" : "libraries"
+ },
+ {
+ "backtrace" : 3,
+ "fragment" : "D:\\MyProject\\kcompressor\\app\\src\\main\\cpp\\third_party\\android-image-compres\\arm64-v8a\\lib\\libavif.a",
+ "role" : "libraries"
+ },
+ {
+ "backtrace" : 3,
+ "fragment" : "D:\\MyProject\\kcompressor\\app\\src\\main\\cpp\\third_party\\android-image-compres\\arm64-v8a\\lib\\libaom.a",
+ "role" : "libraries"
+ },
+ {
+ "backtrace" : 3,
+ "fragment" : "D:\\MyProject\\kcompressor\\app\\src\\main\\cpp\\third_party\\android-image-compres\\arm64-v8a\\lib\\libyuv.a",
+ "role" : "libraries"
+ },
+ {
+ "backtrace" : 3,
+ "fragment" : "D:\\MyProject\\kcompressor\\app\\src\\main\\cpp\\third_party\\android-image-compres\\arm64-v8a\\lib\\libimagequant.a",
+ "role" : "libraries"
+ },
+ {
+ "backtrace" : 3,
+ "fragment" : "D:\\MyProject\\kcompressor\\app\\src\\main\\cpp\\third_party\\android-image-compres\\arm64-v8a\\lib\\liboxipng_ffi.a",
+ "role" : "libraries"
+ },
+ {
+ "backtrace" : 3,
+ "fragment" : "D:\\MyProject\\kcompressor\\app\\src\\main\\cpp\\third_party\\android-image-compres\\arm64-v8a\\lib\\libkimage_png.a",
+ "role" : "libraries"
+ },
+ {
+ "backtrace" : 3,
"fragment" : "-Wl,--end-group",
"role" : "libraries"
},
{
- "backtrace" : 2,
+ "backtrace" : 3,
"fragment" : "-landroid",
"role" : "libraries"
},
{
- "backtrace" : 2,
+ "backtrace" : 3,
"fragment" : "-llog",
"role" : "libraries"
},
{
- "backtrace" : 2,
+ "backtrace" : 3,
"fragment" : "-lz",
"role" : "libraries"
},
{
- "backtrace" : 2,
+ "backtrace" : 3,
"fragment" : "-lm",
"role" : "libraries"
},
{
- "backtrace" : 2,
+ "backtrace" : 3,
"fragment" : "-ldl",
"role" : "libraries"
},
{
- "backtrace" : 2,
+ "backtrace" : 3,
+ "fragment" : "-latomic",
+ "role" : "libraries"
+ },
+ {
+ "backtrace" : 3,
"fragment" : "-lc++_static",
"role" : "libraries"
},
@@ -216,7 +308,10 @@
"name" : "Source Files",
"sourceIndexes" :
[
- 0
+ 0,
+ 1,
+ 2,
+ 3
]
}
],
@@ -227,6 +322,24 @@
"compileGroupIndex" : 0,
"path" : "native_compressor.cpp",
"sourceGroupIndex" : 0
+ },
+ {
+ "backtrace" : 1,
+ "compileGroupIndex" : 0,
+ "path" : "compressor_common.cpp",
+ "sourceGroupIndex" : 0
+ },
+ {
+ "backtrace" : 1,
+ "compileGroupIndex" : 0,
+ "path" : "video_compressor.cpp",
+ "sourceGroupIndex" : 0
+ },
+ {
+ "backtrace" : 1,
+ "compileGroupIndex" : 0,
+ "path" : "image_compressor.cpp",
+ "sourceGroupIndex" : 0
}
],
"type" : "SHARED_LIBRARY"
diff --git a/app/.cxx/Debug/j1t3m4l4/arm64-v8a/.ninja_deps b/app/.cxx/Debug/j1t3m4l4/arm64-v8a/.ninja_deps
index 7158123..85aa999 100644
Binary files a/app/.cxx/Debug/j1t3m4l4/arm64-v8a/.ninja_deps and b/app/.cxx/Debug/j1t3m4l4/arm64-v8a/.ninja_deps differ
diff --git a/app/.cxx/Debug/j1t3m4l4/arm64-v8a/.ninja_log b/app/.cxx/Debug/j1t3m4l4/arm64-v8a/.ninja_log
index 8813da5..c1a3a35 100644
--- a/app/.cxx/Debug/j1t3m4l4/arm64-v8a/.ninja_log
+++ b/app/.cxx/Debug/j1t3m4l4/arm64-v8a/.ninja_log
@@ -1,20 +1,29 @@
# ninja log v5
-0 1262 8028838643798327 CMakeFiles/kcompressor.dir/native_compressor.cpp.o 8e7f62ed243b0da2
-5 968 8028851531676643 CMakeFiles/kcompressor.dir/native_compressor.cpp.o 8e7f62ed243b0da2
-969 1134 8028851532755218 D:/MyProject/kcompressor/app/build/intermediates/cxx/Debug/j1t3m4l4/obj/arm64-v8a/libkcompressor.so 3219445182b90fd
-4 1145 8028855722988888 CMakeFiles/kcompressor.dir/native_compressor.cpp.o 8e7f62ed243b0da2
-1146 1320 8028855724152615 D:/MyProject/kcompressor/app/build/intermediates/cxx/Debug/j1t3m4l4/obj/arm64-v8a/libkcompressor.so 3219445182b90fd
-0 13 0 clean 267b28daf0e986
-0 8 0 clean 267b28daf0e986
-0 8 0 clean 267b28daf0e986
-4 1186 8028956641098452 CMakeFiles/kcompressor.dir/native_compressor.cpp.o 8e7f62ed243b0da2
-1187 1503 8028956643624556 D:/MyProject/kcompressor/app/build/intermediates/cxx/Debug/j1t3m4l4/obj/arm64-v8a/libkcompressor.so 3219445182b90fd
-5 1124 8028961732889885 CMakeFiles/kcompressor.dir/native_compressor.cpp.o 8e7f62ed243b0da2
-1125 1283 8028961733914734 D:/MyProject/kcompressor/app/build/intermediates/cxx/Debug/j1t3m4l4/obj/arm64-v8a/libkcompressor.so 3219445182b90fd
-0 11 0 clean 267b28daf0e986
-0 8 0 clean 267b28daf0e986
-0 12 0 clean 267b28daf0e986
-0 9 0 clean 267b28daf0e986
-0 9 0 clean 267b28daf0e986
-5 1097 8029044009408332 CMakeFiles/kcompressor.dir/native_compressor.cpp.o 8e7f62ed243b0da2
+0 112 8029096638513914 build.ninja 2f5a2ae5718e4ec9
+14 762 8029095017006428 CMakeFiles/kcompressor.dir/native_compressor.cpp.o f1cdbf4574e80c54
1098 1268 8029044010557587 D:/MyProject/kcompressor/app/build/intermediates/cxx/Debug/j1t3m4l4/obj/arm64-v8a/libkcompressor.so 3219445182b90fd
+1 9 0 clean 267b28daf0e986
+5 749 8029095016865308 CMakeFiles/kcompressor.dir/compressor_common.cpp.o 51cecdb4bb34bbf4
+8 1076 8029095020131520 CMakeFiles/kcompressor.dir/video_compressor.cpp.o a7433b92b28b1b44
+11 1137 8029095020714211 CMakeFiles/kcompressor.dir/image_compressor.cpp.o 9626d49d842157ab
+8 742 8029096646603030 CMakeFiles/kcompressor.dir/compressor_common.cpp.o 51cecdb4bb34bbf4
+5 750 8029096646674905 CMakeFiles/kcompressor.dir/native_compressor.cpp.o f1cdbf4574e80c54
+14 1076 8029096649921924 CMakeFiles/kcompressor.dir/video_compressor.cpp.o a7433b92b28b1b44
+11 1124 8029096650363640 CMakeFiles/kcompressor.dir/image_compressor.cpp.o 9626d49d842157ab
+1124 1368 8029096651828036 D:/MyProject/kcompressor/app/build/intermediates/cxx/Debug/j1t3m4l4/obj/arm64-v8a/libkcompressor.so 29af80fbe86656f3
+0 9 0 clean 267b28daf0e986
+9 1078 8029107855086131 CMakeFiles/kcompressor.dir/compressor_common.cpp.o 51cecdb4bb34bbf4
+5 1090 8029107855196798 CMakeFiles/kcompressor.dir/native_compressor.cpp.o f1cdbf4574e80c54
+12 1455 8029107858819856 CMakeFiles/kcompressor.dir/video_compressor.cpp.o a7433b92b28b1b44
+16 1503 8029107859282116 CMakeFiles/kcompressor.dir/image_compressor.cpp.o 9626d49d842157ab
+1503 1750 8029107860887575 D:/MyProject/kcompressor/app/build/intermediates/cxx/Debug/j1t3m4l4/obj/arm64-v8a/libkcompressor.so 29af80fbe86656f3
+5 819 8029111911661475 CMakeFiles/kcompressor.dir/native_compressor.cpp.o f1cdbf4574e80c54
+9 1207 8029111915499297 CMakeFiles/kcompressor.dir/image_compressor.cpp.o 9626d49d842157ab
+1207 1442 8029111917031336 D:/MyProject/kcompressor/app/build/intermediates/cxx/Debug/j1t3m4l4/obj/arm64-v8a/libkcompressor.so 29af80fbe86656f3
+0 9 0 clean 267b28daf0e986
+9 790 8029112014842859 CMakeFiles/kcompressor.dir/compressor_common.cpp.o 51cecdb4bb34bbf4
+5 792 8029112014858004 CMakeFiles/kcompressor.dir/native_compressor.cpp.o f1cdbf4574e80c54
+11 1124 8029112018196166 CMakeFiles/kcompressor.dir/video_compressor.cpp.o a7433b92b28b1b44
+14 1172 8029112018650022 CMakeFiles/kcompressor.dir/image_compressor.cpp.o 9626d49d842157ab
+1172 1409 8029112020152273 D:/MyProject/kcompressor/app/build/intermediates/cxx/Debug/j1t3m4l4/obj/arm64-v8a/libkcompressor.so 29af80fbe86656f3
+0 9 0 clean 267b28daf0e986
diff --git a/app/.cxx/Debug/j1t3m4l4/arm64-v8a/CMakeCache.txt b/app/.cxx/Debug/j1t3m4l4/arm64-v8a/CMakeCache.txt
index 2eab56f..8c00e39 100644
--- a/app/.cxx/Debug/j1t3m4l4/arm64-v8a/CMakeCache.txt
+++ b/app/.cxx/Debug/j1t3m4l4/arm64-v8a/CMakeCache.txt
@@ -233,8 +233,8 @@ CMAKE_SYSTEM_NAME:UNINITIALIZED=Android
//No help, variable specified on the command line.
CMAKE_SYSTEM_VERSION:UNINITIALIZED=21
-//The CMake toolchain file
-CMAKE_TOOLCHAIN_FILE:FILEPATH=D:/Android/sdk/ndk/28.2.13676358/build/cmake/android.toolchain.cmake
+//No help, variable specified on the command line.
+CMAKE_TOOLCHAIN_FILE:UNINITIALIZED=D:\Android\sdk\ndk\28.2.13676358\build\cmake\android.toolchain.cmake
//If this value is on, makefiles will be generated without the
// .SILENT directive, and all commands will be echoed to the console
diff --git a/app/.cxx/Debug/j1t3m4l4/arm64-v8a/CMakeFiles/kcompressor.dir/native_compressor.cpp.o b/app/.cxx/Debug/j1t3m4l4/arm64-v8a/CMakeFiles/kcompressor.dir/native_compressor.cpp.o
deleted file mode 100644
index e68381e..0000000
Binary files a/app/.cxx/Debug/j1t3m4l4/arm64-v8a/CMakeFiles/kcompressor.dir/native_compressor.cpp.o and /dev/null differ
diff --git a/app/.cxx/Debug/j1t3m4l4/arm64-v8a/build.ninja b/app/.cxx/Debug/j1t3m4l4/arm64-v8a/build.ninja
index 8e42e8b..413b46c 100644
--- a/app/.cxx/Debug/j1t3m4l4/arm64-v8a/build.ninja
+++ b/app/.cxx/Debug/j1t3m4l4/arm64-v8a/build.ninja
@@ -52,12 +52,34 @@ build cmake_object_order_depends_target_kcompressor: phony || CMakeFiles/kcompre
build CMakeFiles/kcompressor.dir/native_compressor.cpp.o: CXX_COMPILER__kcompressor_Debug D$:/MyProject/kcompressor/app/src/main/cpp/native_compressor.cpp || cmake_object_order_depends_target_kcompressor
DEFINES = -Dkcompressor_EXPORTS
DEP_FILE = CMakeFiles\kcompressor.dir\native_compressor.cpp.o.d
- FLAGS = -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -std=c++17 -fexceptions -frtti -fno-limit-debug-info -fPIC -Wall -Wextra -Wno-unused-parameter
- INCLUDES = -ID:/MyProject/kcompressor/app/src/main/cpp/third_party/ffmpeg-android/arm64-v8a/include -ID:/MyProject/kcompressor/app/src/main/cpp/third_party/ffmpeg-android/arm64-v8a/include/x264 -ID:/MyProject/kcompressor/app/src/main/cpp/third_party/ffmpeg-android/arm64-v8a/include/x265
+ FLAGS = -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -std=c++17 -fexceptions -frtti -fno-limit-debug-info -fPIC -Wall -Wextra -Wno-unused-parameter -Wno-deprecated-declarations
+ INCLUDES = -ID:/MyProject/kcompressor/app/src/main/cpp -ID:/MyProject/kcompressor/app/src/main/cpp/third_party/ffmpeg-android/arm64-v8a/include -ID:/MyProject/kcompressor/app/src/main/cpp/third_party/ffmpeg-android/arm64-v8a/include/x264 -ID:/MyProject/kcompressor/app/src/main/cpp/third_party/ffmpeg-android/arm64-v8a/include/x265 -ID:/MyProject/kcompressor/app/src/main/cpp/third_party/android-image-compres/arm64-v8a/include
+ OBJECT_DIR = CMakeFiles\kcompressor.dir
+ OBJECT_FILE_DIR = CMakeFiles\kcompressor.dir
+
+build CMakeFiles/kcompressor.dir/compressor_common.cpp.o: CXX_COMPILER__kcompressor_Debug D$:/MyProject/kcompressor/app/src/main/cpp/compressor_common.cpp || cmake_object_order_depends_target_kcompressor
+ DEFINES = -Dkcompressor_EXPORTS
+ DEP_FILE = CMakeFiles\kcompressor.dir\compressor_common.cpp.o.d
+ FLAGS = -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -std=c++17 -fexceptions -frtti -fno-limit-debug-info -fPIC -Wall -Wextra -Wno-unused-parameter -Wno-deprecated-declarations
+ INCLUDES = -ID:/MyProject/kcompressor/app/src/main/cpp -ID:/MyProject/kcompressor/app/src/main/cpp/third_party/ffmpeg-android/arm64-v8a/include -ID:/MyProject/kcompressor/app/src/main/cpp/third_party/ffmpeg-android/arm64-v8a/include/x264 -ID:/MyProject/kcompressor/app/src/main/cpp/third_party/ffmpeg-android/arm64-v8a/include/x265 -ID:/MyProject/kcompressor/app/src/main/cpp/third_party/android-image-compres/arm64-v8a/include
+ OBJECT_DIR = CMakeFiles\kcompressor.dir
+ OBJECT_FILE_DIR = CMakeFiles\kcompressor.dir
+
+build CMakeFiles/kcompressor.dir/video_compressor.cpp.o: CXX_COMPILER__kcompressor_Debug D$:/MyProject/kcompressor/app/src/main/cpp/video_compressor.cpp || cmake_object_order_depends_target_kcompressor
+ DEFINES = -Dkcompressor_EXPORTS
+ DEP_FILE = CMakeFiles\kcompressor.dir\video_compressor.cpp.o.d
+ FLAGS = -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -std=c++17 -fexceptions -frtti -fno-limit-debug-info -fPIC -Wall -Wextra -Wno-unused-parameter -Wno-deprecated-declarations
+ INCLUDES = -ID:/MyProject/kcompressor/app/src/main/cpp -ID:/MyProject/kcompressor/app/src/main/cpp/third_party/ffmpeg-android/arm64-v8a/include -ID:/MyProject/kcompressor/app/src/main/cpp/third_party/ffmpeg-android/arm64-v8a/include/x264 -ID:/MyProject/kcompressor/app/src/main/cpp/third_party/ffmpeg-android/arm64-v8a/include/x265 -ID:/MyProject/kcompressor/app/src/main/cpp/third_party/android-image-compres/arm64-v8a/include
+ OBJECT_DIR = CMakeFiles\kcompressor.dir
+ OBJECT_FILE_DIR = CMakeFiles\kcompressor.dir
+
+build CMakeFiles/kcompressor.dir/image_compressor.cpp.o: CXX_COMPILER__kcompressor_Debug D$:/MyProject/kcompressor/app/src/main/cpp/image_compressor.cpp || cmake_object_order_depends_target_kcompressor
+ DEFINES = -Dkcompressor_EXPORTS
+ DEP_FILE = CMakeFiles\kcompressor.dir\image_compressor.cpp.o.d
+ FLAGS = -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -std=c++17 -fexceptions -frtti -fno-limit-debug-info -fPIC -Wall -Wextra -Wno-unused-parameter -Wno-deprecated-declarations
+ INCLUDES = -ID:/MyProject/kcompressor/app/src/main/cpp -ID:/MyProject/kcompressor/app/src/main/cpp/third_party/ffmpeg-android/arm64-v8a/include -ID:/MyProject/kcompressor/app/src/main/cpp/third_party/ffmpeg-android/arm64-v8a/include/x264 -ID:/MyProject/kcompressor/app/src/main/cpp/third_party/ffmpeg-android/arm64-v8a/include/x265 -ID:/MyProject/kcompressor/app/src/main/cpp/third_party/android-image-compres/arm64-v8a/include
OBJECT_DIR = CMakeFiles\kcompressor.dir
OBJECT_FILE_DIR = CMakeFiles\kcompressor.dir
- TARGET_COMPILE_PDB = CMakeFiles\kcompressor.dir\
- TARGET_PDB = D:\MyProject\kcompressor\app\build\intermediates\cxx\Debug\j1t3m4l4\obj\arm64-v8a\libkcompressor.pdb
# =============================================================================
@@ -67,18 +89,17 @@ build CMakeFiles/kcompressor.dir/native_compressor.cpp.o: CXX_COMPILER__kcompres
#############################################
# Link the shared library D:\MyProject\kcompressor\app\build\intermediates\cxx\Debug\j1t3m4l4\obj\arm64-v8a\libkcompressor.so
-build D$:/MyProject/kcompressor/app/build/intermediates/cxx/Debug/j1t3m4l4/obj/arm64-v8a/libkcompressor.so: CXX_SHARED_LIBRARY_LINKER__kcompressor_Debug CMakeFiles/kcompressor.dir/native_compressor.cpp.o | D$:/MyProject/kcompressor/app/src/main/cpp/third_party/ffmpeg-android/arm64-v8a/lib/libavfilter.a D$:/MyProject/kcompressor/app/src/main/cpp/third_party/ffmpeg-android/arm64-v8a/lib/libavformat.a D$:/MyProject/kcompressor/app/src/main/cpp/third_party/ffmpeg-android/arm64-v8a/lib/libavcodec.a D$:/MyProject/kcompressor/app/src/main/cpp/third_party/ffmpeg-android/arm64-v8a/lib/libswscale.a D$:/MyProject/kcompressor/app/src/main/cpp/third_party/ffmpeg-android/arm64-v8a/lib/libswresample.a D$:/MyProject/kcompressor/app/src/main/cpp/third_party/ffmpeg-android/arm64-v8a/lib/libavutil.a D$:/MyProject/kcompressor/app/src/main/cpp/third_party/ffmpeg-android/arm64-v8a/lib/libx264.a D$:/MyProject/kcompressor/app/src/main/cpp/third_party/ffmpeg-android/arm64-v8a/lib/libx265.a
+build D$:/MyProject/kcompressor/app/build/intermediates/cxx/Debug/j1t3m4l4/obj/arm64-v8a/libkcompressor.so: CXX_SHARED_LIBRARY_LINKER__kcompressor_Debug CMakeFiles/kcompressor.dir/native_compressor.cpp.o CMakeFiles/kcompressor.dir/compressor_common.cpp.o CMakeFiles/kcompressor.dir/video_compressor.cpp.o CMakeFiles/kcompressor.dir/image_compressor.cpp.o | D$:/MyProject/kcompressor/app/src/main/cpp/third_party/ffmpeg-android/arm64-v8a/lib/libavfilter.a D$:/MyProject/kcompressor/app/src/main/cpp/third_party/ffmpeg-android/arm64-v8a/lib/libavformat.a D$:/MyProject/kcompressor/app/src/main/cpp/third_party/ffmpeg-android/arm64-v8a/lib/libavcodec.a D$:/MyProject/kcompressor/app/src/main/cpp/third_party/ffmpeg-android/arm64-v8a/lib/libswscale.a D$:/MyProject/kcompressor/app/src/main/cpp/third_party/ffmpeg-android/arm64-v8a/lib/libswresample.a D$:/MyProject/kcompressor/app/src/main/cpp/third_party/ffmpeg-android/arm64-v8a/lib/libavutil.a D$:/MyProject/kcompressor/app/src/main/cpp/third_party/ffmpeg-android/arm64-v8a/lib/libx264.a D$:/MyProject/kcompressor/app/src/main/cpp/third_party/ffmpeg-android/arm64-v8a/lib/libx265.a D$:/MyProject/kcompressor/app/src/main/cpp/third_party/android-image-compres/arm64-v8a/lib/libturbojpeg.a D$:/MyProject/kcompressor/app/src/main/cpp/third_party/android-image-compres/arm64-v8a/lib/libjpeg.a D$:/MyProject/kcompressor/app/src/main/cpp/third_party/android-image-compres/arm64-v8a/lib/libwebp.a D$:/MyProject/kcompressor/app/src/main/cpp/third_party/android-image-compres/arm64-v8a/lib/libsharpyuv.a D$:/MyProject/kcompressor/app/src/main/cpp/third_party/android-image-compres/arm64-v8a/lib/libavif.a D$:/MyProject/kcompressor/app/src/main/cpp/third_party/android-image-compres/arm64-v8a/lib/libaom.a D$:/MyProject/kcompressor/app/src/main/cpp/third_party/android-image-compres/arm64-v8a/lib/libyuv.a D$:/MyProject/kcompressor/app/src/main/cpp/third_party/android-image-compres/arm64-v8a/lib/libimagequant.a D$:/MyProject/kcompressor/app/src/main/cpp/third_party/android-image-compres/arm64-v8a/lib/liboxipng_ffi.a D$:/MyProject/kcompressor/app/src/main/cpp/third_party/android-image-compres/arm64-v8a/lib/libkimage_png.a
LANGUAGE_COMPILE_FLAGS = -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -std=c++17 -fexceptions -frtti -fno-limit-debug-info
- LINK_FLAGS = -static-libstdc++ -Wl,--build-id=sha1 -Wl,--no-rosegment -Wl,--no-undefined-version -Wl,--fatal-warnings -Wl,--no-undefined -Qunused-arguments
- LINK_LIBRARIES = -Wl,--start-group D:/MyProject/kcompressor/app/src/main/cpp/third_party/ffmpeg-android/arm64-v8a/lib/libavfilter.a D:/MyProject/kcompressor/app/src/main/cpp/third_party/ffmpeg-android/arm64-v8a/lib/libavformat.a D:/MyProject/kcompressor/app/src/main/cpp/third_party/ffmpeg-android/arm64-v8a/lib/libavcodec.a D:/MyProject/kcompressor/app/src/main/cpp/third_party/ffmpeg-android/arm64-v8a/lib/libswscale.a D:/MyProject/kcompressor/app/src/main/cpp/third_party/ffmpeg-android/arm64-v8a/lib/libswresample.a D:/MyProject/kcompressor/app/src/main/cpp/third_party/ffmpeg-android/arm64-v8a/lib/libavutil.a D:/MyProject/kcompressor/app/src/main/cpp/third_party/ffmpeg-android/arm64-v8a/lib/libx264.a D:/MyProject/kcompressor/app/src/main/cpp/third_party/ffmpeg-android/arm64-v8a/lib/libx265.a -Wl,--end-group -landroid -llog -lz -lm -ldl -lc++_static -latomic -lm
+ LINK_FLAGS = -static-libstdc++ -Wl,--build-id=sha1 -Wl,--no-rosegment -Wl,--no-undefined-version -Wl,--fatal-warnings -Wl,--no-undefined -Qunused-arguments -Wl,--allow-multiple-definition -Wl,--exclude-libs,libimagequant.a -Wl,--exclude-libs,liboxipng_ffi.a
+ LINK_LIBRARIES = -Wl,--start-group D:/MyProject/kcompressor/app/src/main/cpp/third_party/ffmpeg-android/arm64-v8a/lib/libavfilter.a D:/MyProject/kcompressor/app/src/main/cpp/third_party/ffmpeg-android/arm64-v8a/lib/libavformat.a D:/MyProject/kcompressor/app/src/main/cpp/third_party/ffmpeg-android/arm64-v8a/lib/libavcodec.a D:/MyProject/kcompressor/app/src/main/cpp/third_party/ffmpeg-android/arm64-v8a/lib/libswscale.a D:/MyProject/kcompressor/app/src/main/cpp/third_party/ffmpeg-android/arm64-v8a/lib/libswresample.a D:/MyProject/kcompressor/app/src/main/cpp/third_party/ffmpeg-android/arm64-v8a/lib/libavutil.a D:/MyProject/kcompressor/app/src/main/cpp/third_party/ffmpeg-android/arm64-v8a/lib/libx264.a D:/MyProject/kcompressor/app/src/main/cpp/third_party/ffmpeg-android/arm64-v8a/lib/libx265.a D:/MyProject/kcompressor/app/src/main/cpp/third_party/android-image-compres/arm64-v8a/lib/libturbojpeg.a D:/MyProject/kcompressor/app/src/main/cpp/third_party/android-image-compres/arm64-v8a/lib/libjpeg.a D:/MyProject/kcompressor/app/src/main/cpp/third_party/android-image-compres/arm64-v8a/lib/libwebp.a D:/MyProject/kcompressor/app/src/main/cpp/third_party/android-image-compres/arm64-v8a/lib/libsharpyuv.a D:/MyProject/kcompressor/app/src/main/cpp/third_party/android-image-compres/arm64-v8a/lib/libavif.a D:/MyProject/kcompressor/app/src/main/cpp/third_party/android-image-compres/arm64-v8a/lib/libaom.a D:/MyProject/kcompressor/app/src/main/cpp/third_party/android-image-compres/arm64-v8a/lib/libyuv.a D:/MyProject/kcompressor/app/src/main/cpp/third_party/android-image-compres/arm64-v8a/lib/libimagequant.a D:/MyProject/kcompressor/app/src/main/cpp/third_party/android-image-compres/arm64-v8a/lib/liboxipng_ffi.a D:/MyProject/kcompressor/app/src/main/cpp/third_party/android-image-compres/arm64-v8a/lib/libkimage_png.a -Wl,--end-group -landroid -llog -lz -lm -ldl -latomic -lc++_static -latomic -lm
OBJECT_DIR = CMakeFiles\kcompressor.dir
POST_BUILD = cd .
PRE_LINK = cd .
SONAME = libkcompressor.so
SONAME_FLAG = -Wl,-soname,
- TARGET_COMPILE_PDB = CMakeFiles\kcompressor.dir\
TARGET_FILE = D:\MyProject\kcompressor\app\build\intermediates\cxx\Debug\j1t3m4l4\obj\arm64-v8a\libkcompressor.so
- TARGET_PDB = D:\MyProject\kcompressor\app\build\intermediates\cxx\Debug\j1t3m4l4\obj\arm64-v8a\libkcompressor.pdb
+ TARGET_PDB = kcompressor.so.dbg
#############################################
@@ -127,14 +148,14 @@ build all: phony D$:/MyProject/kcompressor/app/build/intermediates/cxx/Debug/j1t
#############################################
# Re-run CMake if any of its inputs changed.
-build build.ninja: RERUN_CMAKE | CMakeCache.txt CMakeFiles/3.22.1-g37088a8-dirty/CMakeCCompiler.cmake CMakeFiles/3.22.1-g37088a8-dirty/CMakeCXXCompiler.cmake CMakeFiles/3.22.1-g37088a8-dirty/CMakeSystem.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCCompiler.cmake.in D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCCompilerABI.c D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCInformation.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCXXCompiler.cmake.in D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCXXCompilerABI.cpp D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCXXInformation.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCommonLanguageInclude.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCompilerIdDetection.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCXXCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCompileFeatures.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCompilerABI.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCompilerId.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineSystem.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeFindBinUtils.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeGenericSystem.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeInitializeConfigs.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeLanguageInformation.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeParseImplicitIncludeInfo.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeParseImplicitLinkInfo.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeParseLibraryArchitecture.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeSystem.cmake.in D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeSystemSpecificInformation.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeSystemSpecificInitialize.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeTestCCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeTestCXXCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeTestCompilerCommon.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/ADSP-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/ARMCC-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/ARMClang-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/AppleClang-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Borland-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Bruce-C-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/CMakeCommonCompilerMacros.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-C.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-CXX.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-DetermineCompilerInternal.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-FindBinUtils.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Comeau-CXX-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Compaq-C-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Compaq-CXX-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Cray-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Embarcadero-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Fujitsu-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/FujitsuClang-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/GHS-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/GNU-C-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/GNU-CXX-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/GNU.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/HP-C-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/HP-CXX-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/IAR-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/IBMCPP-C-DetermineVersionInternal.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/IBMCPP-CXX-DetermineVersionInternal.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Intel-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/IntelLLVM-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/MSVC-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/NVHPC-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/NVIDIA-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/OpenWatcom-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/PGI-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/PathScale-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/SCO-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/SDCC-C-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/SunPro-C-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/SunPro-CXX-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/TI-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/TinyCC-C-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/VisualAge-C-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/VisualAge-CXX-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Watcom-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/XL-C-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/XL-CXX-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/XLClang-C-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/XLClang-CXX-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/zOS-C-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/zOS-CXX-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Internal/FeatureTesting.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Clang-C.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Clang-CXX.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Clang.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Determine-C.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Determine-CXX.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Determine.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Initialize.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android/Determine-Compiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Linux.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/UnixPaths.cmake D$:/Android/sdk/ndk/28.2.13676358/build/cmake/abis.cmake D$:/Android/sdk/ndk/28.2.13676358/build/cmake/android-legacy.toolchain.cmake D$:/Android/sdk/ndk/28.2.13676358/build/cmake/android.toolchain.cmake D$:/Android/sdk/ndk/28.2.13676358/build/cmake/flags.cmake D$:/Android/sdk/ndk/28.2.13676358/build/cmake/hooks/pre/Android-Clang.cmake D$:/Android/sdk/ndk/28.2.13676358/build/cmake/hooks/pre/Android-Determine.cmake D$:/Android/sdk/ndk/28.2.13676358/build/cmake/hooks/pre/Android-Initialize.cmake D$:/Android/sdk/ndk/28.2.13676358/build/cmake/hooks/pre/Android.cmake D$:/Android/sdk/ndk/28.2.13676358/build/cmake/hooks/pre/Determine-Compiler.cmake D$:/Android/sdk/ndk/28.2.13676358/build/cmake/platforms.cmake D$:/MyProject/kcompressor/app/src/main/cpp/CMakeLists.txt
+build build.ninja: RERUN_CMAKE | CMakeCache.txt CMakeFiles/3.22.1-g37088a8-dirty/CMakeCCompiler.cmake CMakeFiles/3.22.1-g37088a8-dirty/CMakeCXXCompiler.cmake CMakeFiles/3.22.1-g37088a8-dirty/CMakeSystem.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCInformation.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCXXInformation.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCommonLanguageInclude.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeGenericSystem.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeInitializeConfigs.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeLanguageInformation.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeSystemSpecificInformation.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeSystemSpecificInitialize.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/CMakeCommonCompilerMacros.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-C.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-CXX.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/GNU.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Clang-C.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Clang-CXX.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Clang.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Initialize.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Linux.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/UnixPaths.cmake D$:/Android/sdk/ndk/28.2.13676358/build/cmake/abis.cmake D$:/Android/sdk/ndk/28.2.13676358/build/cmake/android-legacy.toolchain.cmake D$:/Android/sdk/ndk/28.2.13676358/build/cmake/android.toolchain.cmake D$:/Android/sdk/ndk/28.2.13676358/build/cmake/flags.cmake D$:/Android/sdk/ndk/28.2.13676358/build/cmake/hooks/pre/Android-Clang.cmake D$:/Android/sdk/ndk/28.2.13676358/build/cmake/hooks/pre/Android-Initialize.cmake D$:/Android/sdk/ndk/28.2.13676358/build/cmake/hooks/pre/Android.cmake D$:/Android/sdk/ndk/28.2.13676358/build/cmake/platforms.cmake D$:/MyProject/kcompressor/app/src/main/cpp/CMakeLists.txt
pool = console
#############################################
# A missing CMake input file is not an error.
-build CMakeCache.txt CMakeFiles/3.22.1-g37088a8-dirty/CMakeCCompiler.cmake CMakeFiles/3.22.1-g37088a8-dirty/CMakeCXXCompiler.cmake CMakeFiles/3.22.1-g37088a8-dirty/CMakeSystem.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCCompiler.cmake.in D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCCompilerABI.c D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCInformation.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCXXCompiler.cmake.in D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCXXCompilerABI.cpp D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCXXInformation.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCommonLanguageInclude.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCompilerIdDetection.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCXXCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCompileFeatures.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCompilerABI.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCompilerId.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineSystem.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeFindBinUtils.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeGenericSystem.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeInitializeConfigs.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeLanguageInformation.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeParseImplicitIncludeInfo.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeParseImplicitLinkInfo.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeParseLibraryArchitecture.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeSystem.cmake.in D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeSystemSpecificInformation.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeSystemSpecificInitialize.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeTestCCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeTestCXXCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeTestCompilerCommon.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/ADSP-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/ARMCC-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/ARMClang-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/AppleClang-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Borland-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Bruce-C-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/CMakeCommonCompilerMacros.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-C.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-CXX.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-DetermineCompilerInternal.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-FindBinUtils.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Comeau-CXX-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Compaq-C-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Compaq-CXX-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Cray-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Embarcadero-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Fujitsu-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/FujitsuClang-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/GHS-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/GNU-C-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/GNU-CXX-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/GNU.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/HP-C-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/HP-CXX-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/IAR-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/IBMCPP-C-DetermineVersionInternal.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/IBMCPP-CXX-DetermineVersionInternal.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Intel-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/IntelLLVM-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/MSVC-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/NVHPC-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/NVIDIA-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/OpenWatcom-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/PGI-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/PathScale-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/SCO-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/SDCC-C-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/SunPro-C-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/SunPro-CXX-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/TI-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/TinyCC-C-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/VisualAge-C-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/VisualAge-CXX-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Watcom-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/XL-C-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/XL-CXX-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/XLClang-C-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/XLClang-CXX-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/zOS-C-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/zOS-CXX-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Internal/FeatureTesting.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Clang-C.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Clang-CXX.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Clang.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Determine-C.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Determine-CXX.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Determine.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Initialize.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android/Determine-Compiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Linux.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/UnixPaths.cmake D$:/Android/sdk/ndk/28.2.13676358/build/cmake/abis.cmake D$:/Android/sdk/ndk/28.2.13676358/build/cmake/android-legacy.toolchain.cmake D$:/Android/sdk/ndk/28.2.13676358/build/cmake/android.toolchain.cmake D$:/Android/sdk/ndk/28.2.13676358/build/cmake/flags.cmake D$:/Android/sdk/ndk/28.2.13676358/build/cmake/hooks/pre/Android-Clang.cmake D$:/Android/sdk/ndk/28.2.13676358/build/cmake/hooks/pre/Android-Determine.cmake D$:/Android/sdk/ndk/28.2.13676358/build/cmake/hooks/pre/Android-Initialize.cmake D$:/Android/sdk/ndk/28.2.13676358/build/cmake/hooks/pre/Android.cmake D$:/Android/sdk/ndk/28.2.13676358/build/cmake/hooks/pre/Determine-Compiler.cmake D$:/Android/sdk/ndk/28.2.13676358/build/cmake/platforms.cmake D$:/MyProject/kcompressor/app/src/main/cpp/CMakeLists.txt: phony
+build CMakeCache.txt CMakeFiles/3.22.1-g37088a8-dirty/CMakeCCompiler.cmake CMakeFiles/3.22.1-g37088a8-dirty/CMakeCXXCompiler.cmake CMakeFiles/3.22.1-g37088a8-dirty/CMakeSystem.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCInformation.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCXXInformation.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCommonLanguageInclude.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeGenericSystem.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeInitializeConfigs.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeLanguageInformation.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeSystemSpecificInformation.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeSystemSpecificInitialize.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/CMakeCommonCompilerMacros.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-C.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-CXX.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/GNU.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Clang-C.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Clang-CXX.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Clang.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Initialize.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Linux.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/UnixPaths.cmake D$:/Android/sdk/ndk/28.2.13676358/build/cmake/abis.cmake D$:/Android/sdk/ndk/28.2.13676358/build/cmake/android-legacy.toolchain.cmake D$:/Android/sdk/ndk/28.2.13676358/build/cmake/android.toolchain.cmake D$:/Android/sdk/ndk/28.2.13676358/build/cmake/flags.cmake D$:/Android/sdk/ndk/28.2.13676358/build/cmake/hooks/pre/Android-Clang.cmake D$:/Android/sdk/ndk/28.2.13676358/build/cmake/hooks/pre/Android-Initialize.cmake D$:/Android/sdk/ndk/28.2.13676358/build/cmake/hooks/pre/Android.cmake D$:/Android/sdk/ndk/28.2.13676358/build/cmake/platforms.cmake D$:/MyProject/kcompressor/app/src/main/cpp/CMakeLists.txt: phony
#############################################
diff --git a/app/.cxx/Debug/j1t3m4l4/arm64-v8a/compile_commands.json b/app/.cxx/Debug/j1t3m4l4/arm64-v8a/compile_commands.json
index 651bfb6..ede292a 100644
--- a/app/.cxx/Debug/j1t3m4l4/arm64-v8a/compile_commands.json
+++ b/app/.cxx/Debug/j1t3m4l4/arm64-v8a/compile_commands.json
@@ -1,7 +1,22 @@
[
{
"directory": "D:/MyProject/kcompressor/app/.cxx/Debug/j1t3m4l4/arm64-v8a",
- "command": "D:\\Android\\sdk\\ndk\\28.2.13676358\\toolchains\\llvm\\prebuilt\\windows-x86_64\\bin\\clang++.exe --target=aarch64-none-linux-android21 --sysroot=D:/Android/sdk/ndk/28.2.13676358/toolchains/llvm/prebuilt/windows-x86_64/sysroot -Dkcompressor_EXPORTS -ID:/MyProject/kcompressor/app/src/main/cpp/third_party/ffmpeg-android/arm64-v8a/include -ID:/MyProject/kcompressor/app/src/main/cpp/third_party/ffmpeg-android/arm64-v8a/include/x264 -ID:/MyProject/kcompressor/app/src/main/cpp/third_party/ffmpeg-android/arm64-v8a/include/x265 -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -std=c++17 -fexceptions -frtti -fno-limit-debug-info -fPIC -Wall -Wextra -Wno-unused-parameter -o CMakeFiles\\kcompressor.dir\\native_compressor.cpp.o -c D:\\MyProject\\kcompressor\\app\\src\\main\\cpp\\native_compressor.cpp",
+ "command": "D:\\Android\\sdk\\ndk\\28.2.13676358\\toolchains\\llvm\\prebuilt\\windows-x86_64\\bin\\clang++.exe --target=aarch64-none-linux-android21 --sysroot=D:/Android/sdk/ndk/28.2.13676358/toolchains/llvm/prebuilt/windows-x86_64/sysroot -Dkcompressor_EXPORTS -ID:/MyProject/kcompressor/app/src/main/cpp -ID:/MyProject/kcompressor/app/src/main/cpp/third_party/ffmpeg-android/arm64-v8a/include -ID:/MyProject/kcompressor/app/src/main/cpp/third_party/ffmpeg-android/arm64-v8a/include/x264 -ID:/MyProject/kcompressor/app/src/main/cpp/third_party/ffmpeg-android/arm64-v8a/include/x265 -ID:/MyProject/kcompressor/app/src/main/cpp/third_party/android-image-compres/arm64-v8a/include -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -std=c++17 -fexceptions -frtti -fno-limit-debug-info -fPIC -Wall -Wextra -Wno-unused-parameter -Wno-deprecated-declarations -o CMakeFiles\\kcompressor.dir\\native_compressor.cpp.o -c D:\\MyProject\\kcompressor\\app\\src\\main\\cpp\\native_compressor.cpp",
"file": "D:\\MyProject\\kcompressor\\app\\src\\main\\cpp\\native_compressor.cpp"
+},
+{
+ "directory": "D:/MyProject/kcompressor/app/.cxx/Debug/j1t3m4l4/arm64-v8a",
+ "command": "D:\\Android\\sdk\\ndk\\28.2.13676358\\toolchains\\llvm\\prebuilt\\windows-x86_64\\bin\\clang++.exe --target=aarch64-none-linux-android21 --sysroot=D:/Android/sdk/ndk/28.2.13676358/toolchains/llvm/prebuilt/windows-x86_64/sysroot -Dkcompressor_EXPORTS -ID:/MyProject/kcompressor/app/src/main/cpp -ID:/MyProject/kcompressor/app/src/main/cpp/third_party/ffmpeg-android/arm64-v8a/include -ID:/MyProject/kcompressor/app/src/main/cpp/third_party/ffmpeg-android/arm64-v8a/include/x264 -ID:/MyProject/kcompressor/app/src/main/cpp/third_party/ffmpeg-android/arm64-v8a/include/x265 -ID:/MyProject/kcompressor/app/src/main/cpp/third_party/android-image-compres/arm64-v8a/include -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -std=c++17 -fexceptions -frtti -fno-limit-debug-info -fPIC -Wall -Wextra -Wno-unused-parameter -Wno-deprecated-declarations -o CMakeFiles\\kcompressor.dir\\compressor_common.cpp.o -c D:\\MyProject\\kcompressor\\app\\src\\main\\cpp\\compressor_common.cpp",
+ "file": "D:\\MyProject\\kcompressor\\app\\src\\main\\cpp\\compressor_common.cpp"
+},
+{
+ "directory": "D:/MyProject/kcompressor/app/.cxx/Debug/j1t3m4l4/arm64-v8a",
+ "command": "D:\\Android\\sdk\\ndk\\28.2.13676358\\toolchains\\llvm\\prebuilt\\windows-x86_64\\bin\\clang++.exe --target=aarch64-none-linux-android21 --sysroot=D:/Android/sdk/ndk/28.2.13676358/toolchains/llvm/prebuilt/windows-x86_64/sysroot -Dkcompressor_EXPORTS -ID:/MyProject/kcompressor/app/src/main/cpp -ID:/MyProject/kcompressor/app/src/main/cpp/third_party/ffmpeg-android/arm64-v8a/include -ID:/MyProject/kcompressor/app/src/main/cpp/third_party/ffmpeg-android/arm64-v8a/include/x264 -ID:/MyProject/kcompressor/app/src/main/cpp/third_party/ffmpeg-android/arm64-v8a/include/x265 -ID:/MyProject/kcompressor/app/src/main/cpp/third_party/android-image-compres/arm64-v8a/include -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -std=c++17 -fexceptions -frtti -fno-limit-debug-info -fPIC -Wall -Wextra -Wno-unused-parameter -Wno-deprecated-declarations -o CMakeFiles\\kcompressor.dir\\video_compressor.cpp.o -c D:\\MyProject\\kcompressor\\app\\src\\main\\cpp\\video_compressor.cpp",
+ "file": "D:\\MyProject\\kcompressor\\app\\src\\main\\cpp\\video_compressor.cpp"
+},
+{
+ "directory": "D:/MyProject/kcompressor/app/.cxx/Debug/j1t3m4l4/arm64-v8a",
+ "command": "D:\\Android\\sdk\\ndk\\28.2.13676358\\toolchains\\llvm\\prebuilt\\windows-x86_64\\bin\\clang++.exe --target=aarch64-none-linux-android21 --sysroot=D:/Android/sdk/ndk/28.2.13676358/toolchains/llvm/prebuilt/windows-x86_64/sysroot -Dkcompressor_EXPORTS -ID:/MyProject/kcompressor/app/src/main/cpp -ID:/MyProject/kcompressor/app/src/main/cpp/third_party/ffmpeg-android/arm64-v8a/include -ID:/MyProject/kcompressor/app/src/main/cpp/third_party/ffmpeg-android/arm64-v8a/include/x264 -ID:/MyProject/kcompressor/app/src/main/cpp/third_party/ffmpeg-android/arm64-v8a/include/x265 -ID:/MyProject/kcompressor/app/src/main/cpp/third_party/android-image-compres/arm64-v8a/include -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -std=c++17 -fexceptions -frtti -fno-limit-debug-info -fPIC -Wall -Wextra -Wno-unused-parameter -Wno-deprecated-declarations -o CMakeFiles\\kcompressor.dir\\image_compressor.cpp.o -c D:\\MyProject\\kcompressor\\app\\src\\main\\cpp\\image_compressor.cpp",
+ "file": "D:\\MyProject\\kcompressor\\app\\src\\main\\cpp\\image_compressor.cpp"
}
]
\ No newline at end of file
diff --git a/app/.cxx/Debug/j1t3m4l4/arm64-v8a/compile_commands.json.bin b/app/.cxx/Debug/j1t3m4l4/arm64-v8a/compile_commands.json.bin
index 948faf6..0a27d75 100644
Binary files a/app/.cxx/Debug/j1t3m4l4/arm64-v8a/compile_commands.json.bin and b/app/.cxx/Debug/j1t3m4l4/arm64-v8a/compile_commands.json.bin differ
diff --git a/app/.cxx/Debug/j1t3m4l4/arm64-v8a/configure_fingerprint.bin b/app/.cxx/Debug/j1t3m4l4/arm64-v8a/configure_fingerprint.bin
index df64cf0..db88b47 100644
--- a/app/.cxx/Debug/j1t3m4l4/arm64-v8a/configure_fingerprint.bin
+++ b/app/.cxx/Debug/j1t3m4l4/arm64-v8a/configure_fingerprint.bin
@@ -2,27 +2,27 @@ C/C++ Structured Log[
Y
WD:\MyProject\kcompressor\app\.cxx\Debug\j1t3m4l4\arm64-v8a\additional_project_files.txtC
A
-?com.android.build.gradle.internal.cxx.io.EncodedFileFingerPrint 3 3X
+?com.android.build.gradle.internal.cxx.io.EncodedFileFingerPrint 3 3X
V
-TD:\MyProject\kcompressor\app\.cxx\Debug\j1t3m4l4\arm64-v8a\android_gradle_build.json 3 3]
+TD:\MyProject\kcompressor\app\.cxx\Debug\j1t3m4l4\arm64-v8a\android_gradle_build.json 3 3]
[
-YD:\MyProject\kcompressor\app\.cxx\Debug\j1t3m4l4\arm64-v8a\android_gradle_build_mini.json 3 3J
+YD:\MyProject\kcompressor\app\.cxx\Debug\j1t3m4l4\arm64-v8a\android_gradle_build_mini.json 3 3J
H
-FD:\MyProject\kcompressor\app\.cxx\Debug\j1t3m4l4\arm64-v8a\build.ninja 3 3N
+FD:\MyProject\kcompressor\app\.cxx\Debug\j1t3m4l4\arm64-v8a\build.ninja 3 3N
L
-JD:\MyProject\kcompressor\app\.cxx\Debug\j1t3m4l4\arm64-v8a\build.ninja.txt 3S
+JD:\MyProject\kcompressor\app\.cxx\Debug\j1t3m4l4\arm64-v8a\build.ninja.txt 3S
Q
-OD:\MyProject\kcompressor\app\.cxx\Debug\j1t3m4l4\arm64-v8a\build_file_index.txt 3
8 3T
+OD:\MyProject\kcompressor\app\.cxx\Debug\j1t3m4l4\arm64-v8a\build_file_index.txt 3
8 3T
R
-PD:\MyProject\kcompressor\app\.cxx\Debug\j1t3m4l4\arm64-v8a\compile_commands.json 3 3X
+PD:\MyProject\kcompressor\app\.cxx\Debug\j1t3m4l4\arm64-v8a\compile_commands.json 3' 3X
V
-TD:\MyProject\kcompressor\app\.cxx\Debug\j1t3m4l4\arm64-v8a\compile_commands.json.bin 3 3^
+TD:\MyProject\kcompressor\app\.cxx\Debug\j1t3m4l4\arm64-v8a\compile_commands.json.bin 3 3^
\
-ZD:\MyProject\kcompressor\app\.cxx\Debug\j1t3m4l4\arm64-v8a\metadata_generation_command.txt 3
+ZD:\MyProject\kcompressor\app\.cxx\Debug\j1t3m4l4\arm64-v8a\metadata_generation_command.txt 3
3Q
O
-MD:\MyProject\kcompressor\app\.cxx\Debug\j1t3m4l4\arm64-v8a\prefab_config.json 3
( 3V
+MD:\MyProject\kcompressor\app\.cxx\Debug\j1t3m4l4\arm64-v8a\prefab_config.json 3
( 3V
T
-RD:\MyProject\kcompressor\app\.cxx\Debug\j1t3m4l4\arm64-v8a\symbol_folder_index.txt 3
Q 3<
+RD:\MyProject\kcompressor\app\.cxx\Debug\j1t3m4l4\arm64-v8a\symbol_folder_index.txt 3
Q 3<
:
-8D:\MyProject\kcompressor\app\src\main\cpp\CMakeLists.txt 3
3
\ No newline at end of file
+8D:\MyProject\kcompressor\app\src\main\cpp\CMakeLists.txt 3
ҵ3
\ No newline at end of file
diff --git a/app/.cxx/Debug/j1t3m4l4/x86/.cmake/api/v1/reply/cmakeFiles-v1-29f5731a000e123c37c8.json b/app/.cxx/Debug/j1t3m4l4/x86/.cmake/api/v1/reply/cmakeFiles-v1-29f5731a000e123c37c8.json
new file mode 100644
index 0000000..92729cf
--- /dev/null
+++ b/app/.cxx/Debug/j1t3m4l4/x86/.cmake/api/v1/reply/cmakeFiles-v1-29f5731a000e123c37c8.json
@@ -0,0 +1,188 @@
+{
+ "inputs" :
+ [
+ {
+ "path" : "CMakeLists.txt"
+ },
+ {
+ "isGenerated" : true,
+ "path" : "D:/MyProject/kcompressor/app/.cxx/Debug/j1t3m4l4/x86/CMakeFiles/3.22.1-g37088a8-dirty/CMakeSystem.cmake"
+ },
+ {
+ "isExternal" : true,
+ "path" : "D:/Android/sdk/ndk/28.2.13676358/build/cmake/android.toolchain.cmake"
+ },
+ {
+ "isExternal" : true,
+ "path" : "D:/Android/sdk/ndk/28.2.13676358/build/cmake/android-legacy.toolchain.cmake"
+ },
+ {
+ "isExternal" : true,
+ "path" : "D:/Android/sdk/ndk/28.2.13676358/build/cmake/abis.cmake"
+ },
+ {
+ "isExternal" : true,
+ "path" : "D:/Android/sdk/ndk/28.2.13676358/build/cmake/platforms.cmake"
+ },
+ {
+ "isCMake" : true,
+ "isExternal" : true,
+ "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeSystemSpecificInitialize.cmake"
+ },
+ {
+ "isCMake" : true,
+ "isExternal" : true,
+ "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Initialize.cmake"
+ },
+ {
+ "isExternal" : true,
+ "path" : "D:/Android/sdk/ndk/28.2.13676358/build/cmake/hooks/pre/Android-Initialize.cmake"
+ },
+ {
+ "isGenerated" : true,
+ "path" : "D:/MyProject/kcompressor/app/.cxx/Debug/j1t3m4l4/x86/CMakeFiles/3.22.1-g37088a8-dirty/CMakeCCompiler.cmake"
+ },
+ {
+ "isGenerated" : true,
+ "path" : "D:/MyProject/kcompressor/app/.cxx/Debug/j1t3m4l4/x86/CMakeFiles/3.22.1-g37088a8-dirty/CMakeCXXCompiler.cmake"
+ },
+ {
+ "isCMake" : true,
+ "isExternal" : true,
+ "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeSystemSpecificInformation.cmake"
+ },
+ {
+ "isCMake" : true,
+ "isExternal" : true,
+ "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeGenericSystem.cmake"
+ },
+ {
+ "isCMake" : true,
+ "isExternal" : true,
+ "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeInitializeConfigs.cmake"
+ },
+ {
+ "isCMake" : true,
+ "isExternal" : true,
+ "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android.cmake"
+ },
+ {
+ "isExternal" : true,
+ "path" : "D:/Android/sdk/ndk/28.2.13676358/build/cmake/hooks/pre/Android.cmake"
+ },
+ {
+ "isCMake" : true,
+ "isExternal" : true,
+ "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Linux.cmake"
+ },
+ {
+ "isCMake" : true,
+ "isExternal" : true,
+ "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/UnixPaths.cmake"
+ },
+ {
+ "isCMake" : true,
+ "isExternal" : true,
+ "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCInformation.cmake"
+ },
+ {
+ "isCMake" : true,
+ "isExternal" : true,
+ "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeLanguageInformation.cmake"
+ },
+ {
+ "isCMake" : true,
+ "isExternal" : true,
+ "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-C.cmake"
+ },
+ {
+ "isCMake" : true,
+ "isExternal" : true,
+ "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang.cmake"
+ },
+ {
+ "isCMake" : true,
+ "isExternal" : true,
+ "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/CMakeCommonCompilerMacros.cmake"
+ },
+ {
+ "isCMake" : true,
+ "isExternal" : true,
+ "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/GNU.cmake"
+ },
+ {
+ "isCMake" : true,
+ "isExternal" : true,
+ "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/CMakeCommonCompilerMacros.cmake"
+ },
+ {
+ "isCMake" : true,
+ "isExternal" : true,
+ "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Clang-C.cmake"
+ },
+ {
+ "isCMake" : true,
+ "isExternal" : true,
+ "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Clang.cmake"
+ },
+ {
+ "isExternal" : true,
+ "path" : "D:/Android/sdk/ndk/28.2.13676358/build/cmake/hooks/pre/Android-Clang.cmake"
+ },
+ {
+ "isExternal" : true,
+ "path" : "D:/Android/sdk/ndk/28.2.13676358/build/cmake/flags.cmake"
+ },
+ {
+ "isCMake" : true,
+ "isExternal" : true,
+ "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCommonLanguageInclude.cmake"
+ },
+ {
+ "isCMake" : true,
+ "isExternal" : true,
+ "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCXXInformation.cmake"
+ },
+ {
+ "isCMake" : true,
+ "isExternal" : true,
+ "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeLanguageInformation.cmake"
+ },
+ {
+ "isCMake" : true,
+ "isExternal" : true,
+ "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-CXX.cmake"
+ },
+ {
+ "isCMake" : true,
+ "isExternal" : true,
+ "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang.cmake"
+ },
+ {
+ "isCMake" : true,
+ "isExternal" : true,
+ "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Clang-CXX.cmake"
+ },
+ {
+ "isCMake" : true,
+ "isExternal" : true,
+ "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Clang.cmake"
+ },
+ {
+ "isCMake" : true,
+ "isExternal" : true,
+ "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCommonLanguageInclude.cmake"
+ }
+ ],
+ "kind" : "cmakeFiles",
+ "paths" :
+ {
+ "build" : "D:/MyProject/kcompressor/app/.cxx/Debug/j1t3m4l4/x86",
+ "source" : "D:/MyProject/kcompressor/app/src/main/cpp"
+ },
+ "version" :
+ {
+ "major" : 1,
+ "minor" : 0
+ }
+}
diff --git a/app/.cxx/Debug/j1t3m4l4/x86/.cmake/api/v1/reply/cmakeFiles-v1-816317ebe17bd015b004.json b/app/.cxx/Debug/j1t3m4l4/x86/.cmake/api/v1/reply/cmakeFiles-v1-816317ebe17bd015b004.json
deleted file mode 100644
index e079c24..0000000
--- a/app/.cxx/Debug/j1t3m4l4/x86/.cmake/api/v1/reply/cmakeFiles-v1-816317ebe17bd015b004.json
+++ /dev/null
@@ -1,803 +0,0 @@
-{
- "inputs" :
- [
- {
- "path" : "CMakeLists.txt"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineSystem.cmake"
- },
- {
- "isExternal" : true,
- "path" : "D:/Android/sdk/ndk/28.2.13676358/build/cmake/android.toolchain.cmake"
- },
- {
- "isExternal" : true,
- "path" : "D:/Android/sdk/ndk/28.2.13676358/build/cmake/android-legacy.toolchain.cmake"
- },
- {
- "isExternal" : true,
- "path" : "D:/Android/sdk/ndk/28.2.13676358/build/cmake/abis.cmake"
- },
- {
- "isExternal" : true,
- "path" : "D:/Android/sdk/ndk/28.2.13676358/build/cmake/platforms.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Determine.cmake"
- },
- {
- "isExternal" : true,
- "path" : "D:/Android/sdk/ndk/28.2.13676358/build/cmake/hooks/pre/Android-Determine.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeSystem.cmake.in"
- },
- {
- "isGenerated" : true,
- "path" : "D:/MyProject/kcompressor/app/.cxx/Debug/j1t3m4l4/x86/CMakeFiles/3.22.1-g37088a8-dirty/CMakeSystem.cmake"
- },
- {
- "isExternal" : true,
- "path" : "D:/Android/sdk/ndk/28.2.13676358/build/cmake/android.toolchain.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeSystemSpecificInitialize.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Initialize.cmake"
- },
- {
- "isExternal" : true,
- "path" : "D:/Android/sdk/ndk/28.2.13676358/build/cmake/hooks/pre/Android-Initialize.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCCompiler.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCompiler.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Determine-C.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android/Determine-Compiler.cmake"
- },
- {
- "isExternal" : true,
- "path" : "D:/Android/sdk/ndk/28.2.13676358/build/cmake/hooks/pre/Determine-Compiler.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCompilerId.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCompilerIdDetection.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/ADSP-DetermineCompiler.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/ARMCC-DetermineCompiler.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/ARMClang-DetermineCompiler.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/AppleClang-DetermineCompiler.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-DetermineCompilerInternal.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Borland-DetermineCompiler.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Bruce-C-DetermineCompiler.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-DetermineCompiler.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-DetermineCompilerInternal.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Compaq-C-DetermineCompiler.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Cray-DetermineCompiler.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Embarcadero-DetermineCompiler.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Fujitsu-DetermineCompiler.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/FujitsuClang-DetermineCompiler.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/GHS-DetermineCompiler.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/GNU-C-DetermineCompiler.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/HP-C-DetermineCompiler.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/IAR-DetermineCompiler.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Intel-DetermineCompiler.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/IntelLLVM-DetermineCompiler.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/MSVC-DetermineCompiler.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/NVHPC-DetermineCompiler.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/NVIDIA-DetermineCompiler.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/OpenWatcom-DetermineCompiler.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/PGI-DetermineCompiler.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/PathScale-DetermineCompiler.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/SCO-DetermineCompiler.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/SDCC-C-DetermineCompiler.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/SunPro-C-DetermineCompiler.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/TI-DetermineCompiler.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/TinyCC-C-DetermineCompiler.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/VisualAge-C-DetermineCompiler.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/IBMCPP-C-DetermineVersionInternal.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Watcom-DetermineCompiler.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/XL-C-DetermineCompiler.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/IBMCPP-C-DetermineVersionInternal.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/XLClang-C-DetermineCompiler.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/zOS-C-DetermineCompiler.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/IBMCPP-C-DetermineVersionInternal.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeFindBinUtils.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-FindBinUtils.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCCompiler.cmake.in"
- },
- {
- "isGenerated" : true,
- "path" : "D:/MyProject/kcompressor/app/.cxx/Debug/j1t3m4l4/x86/CMakeFiles/3.22.1-g37088a8-dirty/CMakeCCompiler.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCXXCompiler.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCompiler.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Determine-CXX.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android/Determine-Compiler.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCompilerId.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCompilerIdDetection.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/ADSP-DetermineCompiler.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/ARMCC-DetermineCompiler.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/ARMClang-DetermineCompiler.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/AppleClang-DetermineCompiler.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-DetermineCompilerInternal.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Borland-DetermineCompiler.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-DetermineCompiler.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-DetermineCompilerInternal.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Comeau-CXX-DetermineCompiler.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Compaq-CXX-DetermineCompiler.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Cray-DetermineCompiler.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Embarcadero-DetermineCompiler.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Fujitsu-DetermineCompiler.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/FujitsuClang-DetermineCompiler.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/GHS-DetermineCompiler.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/GNU-CXX-DetermineCompiler.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/HP-CXX-DetermineCompiler.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/IAR-DetermineCompiler.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Intel-DetermineCompiler.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/IntelLLVM-DetermineCompiler.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/MSVC-DetermineCompiler.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/NVHPC-DetermineCompiler.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/NVIDIA-DetermineCompiler.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/OpenWatcom-DetermineCompiler.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/PGI-DetermineCompiler.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/PathScale-DetermineCompiler.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/SCO-DetermineCompiler.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/SunPro-CXX-DetermineCompiler.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/TI-DetermineCompiler.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/VisualAge-CXX-DetermineCompiler.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/IBMCPP-CXX-DetermineVersionInternal.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Watcom-DetermineCompiler.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/XL-CXX-DetermineCompiler.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/IBMCPP-CXX-DetermineVersionInternal.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/XLClang-CXX-DetermineCompiler.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/zOS-CXX-DetermineCompiler.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/IBMCPP-CXX-DetermineVersionInternal.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeFindBinUtils.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-FindBinUtils.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCXXCompiler.cmake.in"
- },
- {
- "isGenerated" : true,
- "path" : "D:/MyProject/kcompressor/app/.cxx/Debug/j1t3m4l4/x86/CMakeFiles/3.22.1-g37088a8-dirty/CMakeCXXCompiler.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeSystemSpecificInformation.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeGenericSystem.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeInitializeConfigs.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android.cmake"
- },
- {
- "isExternal" : true,
- "path" : "D:/Android/sdk/ndk/28.2.13676358/build/cmake/hooks/pre/Android.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Linux.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/UnixPaths.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCInformation.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeLanguageInformation.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-C.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/CMakeCommonCompilerMacros.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/GNU.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/CMakeCommonCompilerMacros.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Clang-C.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Clang.cmake"
- },
- {
- "isExternal" : true,
- "path" : "D:/Android/sdk/ndk/28.2.13676358/build/cmake/hooks/pre/Android-Clang.cmake"
- },
- {
- "isExternal" : true,
- "path" : "D:/Android/sdk/ndk/28.2.13676358/build/cmake/flags.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCommonLanguageInclude.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeTestCCompiler.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeTestCompilerCommon.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCompilerABI.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeParseImplicitIncludeInfo.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeParseImplicitLinkInfo.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeParseLibraryArchitecture.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeTestCompilerCommon.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCCompilerABI.c"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCompileFeatures.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Internal/FeatureTesting.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCCompiler.cmake.in"
- },
- {
- "isGenerated" : true,
- "path" : "D:/MyProject/kcompressor/app/.cxx/Debug/j1t3m4l4/x86/CMakeFiles/3.22.1-g37088a8-dirty/CMakeCCompiler.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCXXInformation.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeLanguageInformation.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-CXX.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Clang-CXX.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Clang.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCommonLanguageInclude.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeTestCXXCompiler.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeTestCompilerCommon.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCompilerABI.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeParseImplicitIncludeInfo.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeParseImplicitLinkInfo.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeParseLibraryArchitecture.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeTestCompilerCommon.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCXXCompilerABI.cpp"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCompileFeatures.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Internal/FeatureTesting.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCXXCompiler.cmake.in"
- },
- {
- "isGenerated" : true,
- "path" : "D:/MyProject/kcompressor/app/.cxx/Debug/j1t3m4l4/x86/CMakeFiles/3.22.1-g37088a8-dirty/CMakeCXXCompiler.cmake"
- }
- ],
- "kind" : "cmakeFiles",
- "paths" :
- {
- "build" : "D:/MyProject/kcompressor/app/.cxx/Debug/j1t3m4l4/x86",
- "source" : "D:/MyProject/kcompressor/app/src/main/cpp"
- },
- "version" :
- {
- "major" : 1,
- "minor" : 0
- }
-}
diff --git a/app/.cxx/Debug/j1t3m4l4/x86/.cmake/api/v1/reply/codemodel-v2-82d4e44af18d327221ec.json b/app/.cxx/Debug/j1t3m4l4/x86/.cmake/api/v1/reply/codemodel-v2-ebcc17e82576ac132d5b.json
similarity index 93%
rename from app/.cxx/Debug/j1t3m4l4/x86/.cmake/api/v1/reply/codemodel-v2-82d4e44af18d327221ec.json
rename to app/.cxx/Debug/j1t3m4l4/x86/.cmake/api/v1/reply/codemodel-v2-ebcc17e82576ac132d5b.json
index 3c47690..de25120 100644
--- a/app/.cxx/Debug/j1t3m4l4/x86/.cmake/api/v1/reply/codemodel-v2-82d4e44af18d327221ec.json
+++ b/app/.cxx/Debug/j1t3m4l4/x86/.cmake/api/v1/reply/codemodel-v2-ebcc17e82576ac132d5b.json
@@ -39,7 +39,7 @@
{
"directoryIndex" : 0,
"id" : "kcompressor::@6890427a1f51a3e7e1df",
- "jsonFile" : "target-kcompressor-Debug-13a2cf5cc99469996f90.json",
+ "jsonFile" : "target-kcompressor-Debug-d011b2ce10daf26f49ec.json",
"name" : "kcompressor",
"projectIndex" : 0
}
diff --git a/app/.cxx/Debug/j1t3m4l4/x86/.cmake/api/v1/reply/index-2026-06-11T15-37-28-0820.json b/app/.cxx/Debug/j1t3m4l4/x86/.cmake/api/v1/reply/index-2026-06-11T19-34-19-0869.json
similarity index 84%
rename from app/.cxx/Debug/j1t3m4l4/x86/.cmake/api/v1/reply/index-2026-06-11T15-37-28-0820.json
rename to app/.cxx/Debug/j1t3m4l4/x86/.cmake/api/v1/reply/index-2026-06-11T19-34-19-0869.json
index 8ea33be..fe21778 100644
--- a/app/.cxx/Debug/j1t3m4l4/x86/.cmake/api/v1/reply/index-2026-06-11T15-37-28-0820.json
+++ b/app/.cxx/Debug/j1t3m4l4/x86/.cmake/api/v1/reply/index-2026-06-11T19-34-19-0869.json
@@ -26,7 +26,7 @@
"objects" :
[
{
- "jsonFile" : "codemodel-v2-82d4e44af18d327221ec.json",
+ "jsonFile" : "codemodel-v2-ebcc17e82576ac132d5b.json",
"kind" : "codemodel",
"version" :
{
@@ -44,7 +44,7 @@
}
},
{
- "jsonFile" : "cmakeFiles-v1-816317ebe17bd015b004.json",
+ "jsonFile" : "cmakeFiles-v1-29f5731a000e123c37c8.json",
"kind" : "cmakeFiles",
"version" :
{
@@ -69,7 +69,7 @@
},
"cmakeFiles-v1" :
{
- "jsonFile" : "cmakeFiles-v1-816317ebe17bd015b004.json",
+ "jsonFile" : "cmakeFiles-v1-29f5731a000e123c37c8.json",
"kind" : "cmakeFiles",
"version" :
{
@@ -79,7 +79,7 @@
},
"codemodel-v2" :
{
- "jsonFile" : "codemodel-v2-82d4e44af18d327221ec.json",
+ "jsonFile" : "codemodel-v2-ebcc17e82576ac132d5b.json",
"kind" : "codemodel",
"version" :
{
diff --git a/app/.cxx/Debug/j1t3m4l4/x86/.cmake/api/v1/reply/target-kcompressor-Debug-13a2cf5cc99469996f90.json b/app/.cxx/Debug/j1t3m4l4/x86/.cmake/api/v1/reply/target-kcompressor-Debug-d011b2ce10daf26f49ec.json
similarity index 56%
rename from app/.cxx/Debug/j1t3m4l4/x86/.cmake/api/v1/reply/target-kcompressor-Debug-13a2cf5cc99469996f90.json
rename to app/.cxx/Debug/j1t3m4l4/x86/.cmake/api/v1/reply/target-kcompressor-Debug-d011b2ce10daf26f49ec.json
index b4eea8f..f2fbba5 100644
--- a/app/.cxx/Debug/j1t3m4l4/x86/.cmake/api/v1/reply/target-kcompressor-Debug-13a2cf5cc99469996f90.json
+++ b/app/.cxx/Debug/j1t3m4l4/x86/.cmake/api/v1/reply/target-kcompressor-Debug-d011b2ce10daf26f49ec.json
@@ -11,6 +11,7 @@
"commands" :
[
"add_library",
+ "target_link_options",
"target_link_libraries",
"target_compile_options",
"target_include_directories"
@@ -27,25 +28,31 @@
{
"command" : 0,
"file" : 0,
- "line" : 14,
+ "line" : 26,
"parent" : 0
},
{
"command" : 1,
"file" : 0,
- "line" : 42,
+ "line" : 32,
"parent" : 0
},
{
"command" : 2,
"file" : 0,
- "line" : 37,
+ "line" : 84,
"parent" : 0
},
{
"command" : 3,
"file" : 0,
- "line" : 17,
+ "line" : 77,
+ "parent" : 0
+ },
+ {
+ "command" : 4,
+ "file" : 0,
+ "line" : 37,
"parent" : 0
}
]
@@ -59,16 +66,20 @@
"fragment" : "-g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -mstackrealign -D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -std=c++17 -fexceptions -frtti -fno-limit-debug-info -fPIC"
},
{
- "backtrace" : 3,
+ "backtrace" : 4,
"fragment" : "-Wall"
},
{
- "backtrace" : 3,
+ "backtrace" : 4,
"fragment" : "-Wextra"
},
{
- "backtrace" : 3,
+ "backtrace" : 4,
"fragment" : "-Wno-unused-parameter"
+ },
+ {
+ "backtrace" : 4,
+ "fragment" : "-Wno-deprecated-declarations"
}
],
"defines" :
@@ -80,22 +91,33 @@
"includes" :
[
{
- "backtrace" : 4,
+ "backtrace" : 5,
+ "path" : "D:/MyProject/kcompressor/app/src/main/cpp"
+ },
+ {
+ "backtrace" : 5,
"path" : "D:/MyProject/kcompressor/app/src/main/cpp/third_party/ffmpeg-android/x86/include"
},
{
- "backtrace" : 4,
+ "backtrace" : 5,
"path" : "D:/MyProject/kcompressor/app/src/main/cpp/third_party/ffmpeg-android/x86/include/x264"
},
{
- "backtrace" : 4,
+ "backtrace" : 5,
"path" : "D:/MyProject/kcompressor/app/src/main/cpp/third_party/ffmpeg-android/x86/include/x265"
+ },
+ {
+ "backtrace" : 5,
+ "path" : "D:/MyProject/kcompressor/app/src/main/cpp/third_party/android-image-compres/x86/include"
}
],
"language" : "CXX",
"sourceIndexes" :
[
- 0
+ 0,
+ 1,
+ 2,
+ 3
],
"sysroot" :
{
@@ -114,81 +136,151 @@
},
{
"backtrace" : 2,
+ "fragment" : "-Wl,--allow-multiple-definition",
+ "role" : "flags"
+ },
+ {
+ "backtrace" : 2,
+ "fragment" : "-Wl,--exclude-libs,libimagequant.a",
+ "role" : "flags"
+ },
+ {
+ "backtrace" : 2,
+ "fragment" : "-Wl,--exclude-libs,liboxipng_ffi.a",
+ "role" : "flags"
+ },
+ {
+ "backtrace" : 3,
"fragment" : "-Wl,--start-group",
"role" : "libraries"
},
{
- "backtrace" : 2,
+ "backtrace" : 3,
"fragment" : "D:\\MyProject\\kcompressor\\app\\src\\main\\cpp\\third_party\\ffmpeg-android\\x86\\lib\\libavfilter.a",
"role" : "libraries"
},
{
- "backtrace" : 2,
+ "backtrace" : 3,
"fragment" : "D:\\MyProject\\kcompressor\\app\\src\\main\\cpp\\third_party\\ffmpeg-android\\x86\\lib\\libavformat.a",
"role" : "libraries"
},
{
- "backtrace" : 2,
+ "backtrace" : 3,
"fragment" : "D:\\MyProject\\kcompressor\\app\\src\\main\\cpp\\third_party\\ffmpeg-android\\x86\\lib\\libavcodec.a",
"role" : "libraries"
},
{
- "backtrace" : 2,
+ "backtrace" : 3,
"fragment" : "D:\\MyProject\\kcompressor\\app\\src\\main\\cpp\\third_party\\ffmpeg-android\\x86\\lib\\libswscale.a",
"role" : "libraries"
},
{
- "backtrace" : 2,
+ "backtrace" : 3,
"fragment" : "D:\\MyProject\\kcompressor\\app\\src\\main\\cpp\\third_party\\ffmpeg-android\\x86\\lib\\libswresample.a",
"role" : "libraries"
},
{
- "backtrace" : 2,
+ "backtrace" : 3,
"fragment" : "D:\\MyProject\\kcompressor\\app\\src\\main\\cpp\\third_party\\ffmpeg-android\\x86\\lib\\libavutil.a",
"role" : "libraries"
},
{
- "backtrace" : 2,
+ "backtrace" : 3,
"fragment" : "D:\\MyProject\\kcompressor\\app\\src\\main\\cpp\\third_party\\ffmpeg-android\\x86\\lib\\libx264.a",
"role" : "libraries"
},
{
- "backtrace" : 2,
+ "backtrace" : 3,
"fragment" : "D:\\MyProject\\kcompressor\\app\\src\\main\\cpp\\third_party\\ffmpeg-android\\x86\\lib\\libx265.a",
"role" : "libraries"
},
{
- "backtrace" : 2,
+ "backtrace" : 3,
+ "fragment" : "D:\\MyProject\\kcompressor\\app\\src\\main\\cpp\\third_party\\android-image-compres\\x86\\lib\\libturbojpeg.a",
+ "role" : "libraries"
+ },
+ {
+ "backtrace" : 3,
+ "fragment" : "D:\\MyProject\\kcompressor\\app\\src\\main\\cpp\\third_party\\android-image-compres\\x86\\lib\\libjpeg.a",
+ "role" : "libraries"
+ },
+ {
+ "backtrace" : 3,
+ "fragment" : "D:\\MyProject\\kcompressor\\app\\src\\main\\cpp\\third_party\\android-image-compres\\x86\\lib\\libwebp.a",
+ "role" : "libraries"
+ },
+ {
+ "backtrace" : 3,
+ "fragment" : "D:\\MyProject\\kcompressor\\app\\src\\main\\cpp\\third_party\\android-image-compres\\x86\\lib\\libsharpyuv.a",
+ "role" : "libraries"
+ },
+ {
+ "backtrace" : 3,
+ "fragment" : "D:\\MyProject\\kcompressor\\app\\src\\main\\cpp\\third_party\\android-image-compres\\x86\\lib\\libavif.a",
+ "role" : "libraries"
+ },
+ {
+ "backtrace" : 3,
+ "fragment" : "D:\\MyProject\\kcompressor\\app\\src\\main\\cpp\\third_party\\android-image-compres\\x86\\lib\\libaom.a",
+ "role" : "libraries"
+ },
+ {
+ "backtrace" : 3,
+ "fragment" : "D:\\MyProject\\kcompressor\\app\\src\\main\\cpp\\third_party\\android-image-compres\\x86\\lib\\libyuv.a",
+ "role" : "libraries"
+ },
+ {
+ "backtrace" : 3,
+ "fragment" : "D:\\MyProject\\kcompressor\\app\\src\\main\\cpp\\third_party\\android-image-compres\\x86\\lib\\libimagequant.a",
+ "role" : "libraries"
+ },
+ {
+ "backtrace" : 3,
+ "fragment" : "D:\\MyProject\\kcompressor\\app\\src\\main\\cpp\\third_party\\android-image-compres\\x86\\lib\\liboxipng_ffi.a",
+ "role" : "libraries"
+ },
+ {
+ "backtrace" : 3,
+ "fragment" : "D:\\MyProject\\kcompressor\\app\\src\\main\\cpp\\third_party\\android-image-compres\\x86\\lib\\libkimage_png.a",
+ "role" : "libraries"
+ },
+ {
+ "backtrace" : 3,
"fragment" : "-Wl,--end-group",
"role" : "libraries"
},
{
- "backtrace" : 2,
+ "backtrace" : 3,
"fragment" : "-landroid",
"role" : "libraries"
},
{
- "backtrace" : 2,
+ "backtrace" : 3,
"fragment" : "-llog",
"role" : "libraries"
},
{
- "backtrace" : 2,
+ "backtrace" : 3,
"fragment" : "-lz",
"role" : "libraries"
},
{
- "backtrace" : 2,
+ "backtrace" : 3,
"fragment" : "-lm",
"role" : "libraries"
},
{
- "backtrace" : 2,
+ "backtrace" : 3,
"fragment" : "-ldl",
"role" : "libraries"
},
{
- "backtrace" : 2,
+ "backtrace" : 3,
+ "fragment" : "-latomic",
+ "role" : "libraries"
+ },
+ {
+ "backtrace" : 3,
"fragment" : "-lc++_static",
"role" : "libraries"
},
@@ -216,7 +308,10 @@
"name" : "Source Files",
"sourceIndexes" :
[
- 0
+ 0,
+ 1,
+ 2,
+ 3
]
}
],
@@ -227,6 +322,24 @@
"compileGroupIndex" : 0,
"path" : "native_compressor.cpp",
"sourceGroupIndex" : 0
+ },
+ {
+ "backtrace" : 1,
+ "compileGroupIndex" : 0,
+ "path" : "compressor_common.cpp",
+ "sourceGroupIndex" : 0
+ },
+ {
+ "backtrace" : 1,
+ "compileGroupIndex" : 0,
+ "path" : "video_compressor.cpp",
+ "sourceGroupIndex" : 0
+ },
+ {
+ "backtrace" : 1,
+ "compileGroupIndex" : 0,
+ "path" : "image_compressor.cpp",
+ "sourceGroupIndex" : 0
}
],
"type" : "SHARED_LIBRARY"
diff --git a/app/.cxx/Debug/j1t3m4l4/x86/.ninja_deps b/app/.cxx/Debug/j1t3m4l4/x86/.ninja_deps
new file mode 100644
index 0000000..e5675ec
Binary files /dev/null and b/app/.cxx/Debug/j1t3m4l4/x86/.ninja_deps differ
diff --git a/app/.cxx/Debug/j1t3m4l4/x86/.ninja_log b/app/.cxx/Debug/j1t3m4l4/x86/.ninja_log
index e3decae..22299d0 100644
--- a/app/.cxx/Debug/j1t3m4l4/x86/.ninja_log
+++ b/app/.cxx/Debug/j1t3m4l4/x86/.ninja_log
@@ -1,8 +1,7 @@
# ninja log v5
0 9 0 clean 267b28daf0e986
+1 93 8029096598490081 build.ninja f83080019da48f8e
0 8 0 clean 267b28daf0e986
-0 12 0 clean 267b28daf0e986
-0 7 0 clean 267b28daf0e986
-0 13 0 clean 267b28daf0e986
-0 9 0 clean 267b28daf0e986
-0 12 0 clean 267b28daf0e986
+0 8 0 clean 267b28daf0e986
+0 8 0 clean 267b28daf0e986
+1 9 0 clean 267b28daf0e986
diff --git a/app/.cxx/Debug/j1t3m4l4/x86/build.ninja b/app/.cxx/Debug/j1t3m4l4/x86/build.ninja
index 15b0568..bf23ddc 100644
--- a/app/.cxx/Debug/j1t3m4l4/x86/build.ninja
+++ b/app/.cxx/Debug/j1t3m4l4/x86/build.ninja
@@ -52,12 +52,34 @@ build cmake_object_order_depends_target_kcompressor: phony || CMakeFiles/kcompre
build CMakeFiles/kcompressor.dir/native_compressor.cpp.o: CXX_COMPILER__kcompressor_Debug D$:/MyProject/kcompressor/app/src/main/cpp/native_compressor.cpp || cmake_object_order_depends_target_kcompressor
DEFINES = -Dkcompressor_EXPORTS
DEP_FILE = CMakeFiles\kcompressor.dir\native_compressor.cpp.o.d
- FLAGS = -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -mstackrealign -D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -std=c++17 -fexceptions -frtti -fno-limit-debug-info -fPIC -Wall -Wextra -Wno-unused-parameter
- INCLUDES = -ID:/MyProject/kcompressor/app/src/main/cpp/third_party/ffmpeg-android/x86/include -ID:/MyProject/kcompressor/app/src/main/cpp/third_party/ffmpeg-android/x86/include/x264 -ID:/MyProject/kcompressor/app/src/main/cpp/third_party/ffmpeg-android/x86/include/x265
+ FLAGS = -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -mstackrealign -D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -std=c++17 -fexceptions -frtti -fno-limit-debug-info -fPIC -Wall -Wextra -Wno-unused-parameter -Wno-deprecated-declarations
+ INCLUDES = -ID:/MyProject/kcompressor/app/src/main/cpp -ID:/MyProject/kcompressor/app/src/main/cpp/third_party/ffmpeg-android/x86/include -ID:/MyProject/kcompressor/app/src/main/cpp/third_party/ffmpeg-android/x86/include/x264 -ID:/MyProject/kcompressor/app/src/main/cpp/third_party/ffmpeg-android/x86/include/x265 -ID:/MyProject/kcompressor/app/src/main/cpp/third_party/android-image-compres/x86/include
+ OBJECT_DIR = CMakeFiles\kcompressor.dir
+ OBJECT_FILE_DIR = CMakeFiles\kcompressor.dir
+
+build CMakeFiles/kcompressor.dir/compressor_common.cpp.o: CXX_COMPILER__kcompressor_Debug D$:/MyProject/kcompressor/app/src/main/cpp/compressor_common.cpp || cmake_object_order_depends_target_kcompressor
+ DEFINES = -Dkcompressor_EXPORTS
+ DEP_FILE = CMakeFiles\kcompressor.dir\compressor_common.cpp.o.d
+ FLAGS = -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -mstackrealign -D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -std=c++17 -fexceptions -frtti -fno-limit-debug-info -fPIC -Wall -Wextra -Wno-unused-parameter -Wno-deprecated-declarations
+ INCLUDES = -ID:/MyProject/kcompressor/app/src/main/cpp -ID:/MyProject/kcompressor/app/src/main/cpp/third_party/ffmpeg-android/x86/include -ID:/MyProject/kcompressor/app/src/main/cpp/third_party/ffmpeg-android/x86/include/x264 -ID:/MyProject/kcompressor/app/src/main/cpp/third_party/ffmpeg-android/x86/include/x265 -ID:/MyProject/kcompressor/app/src/main/cpp/third_party/android-image-compres/x86/include
+ OBJECT_DIR = CMakeFiles\kcompressor.dir
+ OBJECT_FILE_DIR = CMakeFiles\kcompressor.dir
+
+build CMakeFiles/kcompressor.dir/video_compressor.cpp.o: CXX_COMPILER__kcompressor_Debug D$:/MyProject/kcompressor/app/src/main/cpp/video_compressor.cpp || cmake_object_order_depends_target_kcompressor
+ DEFINES = -Dkcompressor_EXPORTS
+ DEP_FILE = CMakeFiles\kcompressor.dir\video_compressor.cpp.o.d
+ FLAGS = -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -mstackrealign -D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -std=c++17 -fexceptions -frtti -fno-limit-debug-info -fPIC -Wall -Wextra -Wno-unused-parameter -Wno-deprecated-declarations
+ INCLUDES = -ID:/MyProject/kcompressor/app/src/main/cpp -ID:/MyProject/kcompressor/app/src/main/cpp/third_party/ffmpeg-android/x86/include -ID:/MyProject/kcompressor/app/src/main/cpp/third_party/ffmpeg-android/x86/include/x264 -ID:/MyProject/kcompressor/app/src/main/cpp/third_party/ffmpeg-android/x86/include/x265 -ID:/MyProject/kcompressor/app/src/main/cpp/third_party/android-image-compres/x86/include
+ OBJECT_DIR = CMakeFiles\kcompressor.dir
+ OBJECT_FILE_DIR = CMakeFiles\kcompressor.dir
+
+build CMakeFiles/kcompressor.dir/image_compressor.cpp.o: CXX_COMPILER__kcompressor_Debug D$:/MyProject/kcompressor/app/src/main/cpp/image_compressor.cpp || cmake_object_order_depends_target_kcompressor
+ DEFINES = -Dkcompressor_EXPORTS
+ DEP_FILE = CMakeFiles\kcompressor.dir\image_compressor.cpp.o.d
+ FLAGS = -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -mstackrealign -D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -std=c++17 -fexceptions -frtti -fno-limit-debug-info -fPIC -Wall -Wextra -Wno-unused-parameter -Wno-deprecated-declarations
+ INCLUDES = -ID:/MyProject/kcompressor/app/src/main/cpp -ID:/MyProject/kcompressor/app/src/main/cpp/third_party/ffmpeg-android/x86/include -ID:/MyProject/kcompressor/app/src/main/cpp/third_party/ffmpeg-android/x86/include/x264 -ID:/MyProject/kcompressor/app/src/main/cpp/third_party/ffmpeg-android/x86/include/x265 -ID:/MyProject/kcompressor/app/src/main/cpp/third_party/android-image-compres/x86/include
OBJECT_DIR = CMakeFiles\kcompressor.dir
OBJECT_FILE_DIR = CMakeFiles\kcompressor.dir
- TARGET_COMPILE_PDB = CMakeFiles\kcompressor.dir\
- TARGET_PDB = D:\MyProject\kcompressor\app\build\intermediates\cxx\Debug\j1t3m4l4\obj\x86\libkcompressor.pdb
# =============================================================================
@@ -67,18 +89,17 @@ build CMakeFiles/kcompressor.dir/native_compressor.cpp.o: CXX_COMPILER__kcompres
#############################################
# Link the shared library D:\MyProject\kcompressor\app\build\intermediates\cxx\Debug\j1t3m4l4\obj\x86\libkcompressor.so
-build D$:/MyProject/kcompressor/app/build/intermediates/cxx/Debug/j1t3m4l4/obj/x86/libkcompressor.so: CXX_SHARED_LIBRARY_LINKER__kcompressor_Debug CMakeFiles/kcompressor.dir/native_compressor.cpp.o | D$:/MyProject/kcompressor/app/src/main/cpp/third_party/ffmpeg-android/x86/lib/libavfilter.a D$:/MyProject/kcompressor/app/src/main/cpp/third_party/ffmpeg-android/x86/lib/libavformat.a D$:/MyProject/kcompressor/app/src/main/cpp/third_party/ffmpeg-android/x86/lib/libavcodec.a D$:/MyProject/kcompressor/app/src/main/cpp/third_party/ffmpeg-android/x86/lib/libswscale.a D$:/MyProject/kcompressor/app/src/main/cpp/third_party/ffmpeg-android/x86/lib/libswresample.a D$:/MyProject/kcompressor/app/src/main/cpp/third_party/ffmpeg-android/x86/lib/libavutil.a D$:/MyProject/kcompressor/app/src/main/cpp/third_party/ffmpeg-android/x86/lib/libx264.a D$:/MyProject/kcompressor/app/src/main/cpp/third_party/ffmpeg-android/x86/lib/libx265.a
+build D$:/MyProject/kcompressor/app/build/intermediates/cxx/Debug/j1t3m4l4/obj/x86/libkcompressor.so: CXX_SHARED_LIBRARY_LINKER__kcompressor_Debug CMakeFiles/kcompressor.dir/native_compressor.cpp.o CMakeFiles/kcompressor.dir/compressor_common.cpp.o CMakeFiles/kcompressor.dir/video_compressor.cpp.o CMakeFiles/kcompressor.dir/image_compressor.cpp.o | D$:/MyProject/kcompressor/app/src/main/cpp/third_party/ffmpeg-android/x86/lib/libavfilter.a D$:/MyProject/kcompressor/app/src/main/cpp/third_party/ffmpeg-android/x86/lib/libavformat.a D$:/MyProject/kcompressor/app/src/main/cpp/third_party/ffmpeg-android/x86/lib/libavcodec.a D$:/MyProject/kcompressor/app/src/main/cpp/third_party/ffmpeg-android/x86/lib/libswscale.a D$:/MyProject/kcompressor/app/src/main/cpp/third_party/ffmpeg-android/x86/lib/libswresample.a D$:/MyProject/kcompressor/app/src/main/cpp/third_party/ffmpeg-android/x86/lib/libavutil.a D$:/MyProject/kcompressor/app/src/main/cpp/third_party/ffmpeg-android/x86/lib/libx264.a D$:/MyProject/kcompressor/app/src/main/cpp/third_party/ffmpeg-android/x86/lib/libx265.a D$:/MyProject/kcompressor/app/src/main/cpp/third_party/android-image-compres/x86/lib/libturbojpeg.a D$:/MyProject/kcompressor/app/src/main/cpp/third_party/android-image-compres/x86/lib/libjpeg.a D$:/MyProject/kcompressor/app/src/main/cpp/third_party/android-image-compres/x86/lib/libwebp.a D$:/MyProject/kcompressor/app/src/main/cpp/third_party/android-image-compres/x86/lib/libsharpyuv.a D$:/MyProject/kcompressor/app/src/main/cpp/third_party/android-image-compres/x86/lib/libavif.a D$:/MyProject/kcompressor/app/src/main/cpp/third_party/android-image-compres/x86/lib/libaom.a D$:/MyProject/kcompressor/app/src/main/cpp/third_party/android-image-compres/x86/lib/libyuv.a D$:/MyProject/kcompressor/app/src/main/cpp/third_party/android-image-compres/x86/lib/libimagequant.a D$:/MyProject/kcompressor/app/src/main/cpp/third_party/android-image-compres/x86/lib/liboxipng_ffi.a D$:/MyProject/kcompressor/app/src/main/cpp/third_party/android-image-compres/x86/lib/libkimage_png.a
LANGUAGE_COMPILE_FLAGS = -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -mstackrealign -D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -std=c++17 -fexceptions -frtti -fno-limit-debug-info
- LINK_FLAGS = -static-libstdc++ -Wl,--build-id=sha1 -Wl,--no-rosegment -Wl,--no-undefined-version -Wl,--fatal-warnings -Wl,--no-undefined -Qunused-arguments
- LINK_LIBRARIES = -Wl,--start-group D:/MyProject/kcompressor/app/src/main/cpp/third_party/ffmpeg-android/x86/lib/libavfilter.a D:/MyProject/kcompressor/app/src/main/cpp/third_party/ffmpeg-android/x86/lib/libavformat.a D:/MyProject/kcompressor/app/src/main/cpp/third_party/ffmpeg-android/x86/lib/libavcodec.a D:/MyProject/kcompressor/app/src/main/cpp/third_party/ffmpeg-android/x86/lib/libswscale.a D:/MyProject/kcompressor/app/src/main/cpp/third_party/ffmpeg-android/x86/lib/libswresample.a D:/MyProject/kcompressor/app/src/main/cpp/third_party/ffmpeg-android/x86/lib/libavutil.a D:/MyProject/kcompressor/app/src/main/cpp/third_party/ffmpeg-android/x86/lib/libx264.a D:/MyProject/kcompressor/app/src/main/cpp/third_party/ffmpeg-android/x86/lib/libx265.a -Wl,--end-group -landroid -llog -lz -lm -ldl -lc++_static -latomic -lm
+ LINK_FLAGS = -static-libstdc++ -Wl,--build-id=sha1 -Wl,--no-rosegment -Wl,--no-undefined-version -Wl,--fatal-warnings -Wl,--no-undefined -Qunused-arguments -Wl,--allow-multiple-definition -Wl,--exclude-libs,libimagequant.a -Wl,--exclude-libs,liboxipng_ffi.a
+ LINK_LIBRARIES = -Wl,--start-group D:/MyProject/kcompressor/app/src/main/cpp/third_party/ffmpeg-android/x86/lib/libavfilter.a D:/MyProject/kcompressor/app/src/main/cpp/third_party/ffmpeg-android/x86/lib/libavformat.a D:/MyProject/kcompressor/app/src/main/cpp/third_party/ffmpeg-android/x86/lib/libavcodec.a D:/MyProject/kcompressor/app/src/main/cpp/third_party/ffmpeg-android/x86/lib/libswscale.a D:/MyProject/kcompressor/app/src/main/cpp/third_party/ffmpeg-android/x86/lib/libswresample.a D:/MyProject/kcompressor/app/src/main/cpp/third_party/ffmpeg-android/x86/lib/libavutil.a D:/MyProject/kcompressor/app/src/main/cpp/third_party/ffmpeg-android/x86/lib/libx264.a D:/MyProject/kcompressor/app/src/main/cpp/third_party/ffmpeg-android/x86/lib/libx265.a D:/MyProject/kcompressor/app/src/main/cpp/third_party/android-image-compres/x86/lib/libturbojpeg.a D:/MyProject/kcompressor/app/src/main/cpp/third_party/android-image-compres/x86/lib/libjpeg.a D:/MyProject/kcompressor/app/src/main/cpp/third_party/android-image-compres/x86/lib/libwebp.a D:/MyProject/kcompressor/app/src/main/cpp/third_party/android-image-compres/x86/lib/libsharpyuv.a D:/MyProject/kcompressor/app/src/main/cpp/third_party/android-image-compres/x86/lib/libavif.a D:/MyProject/kcompressor/app/src/main/cpp/third_party/android-image-compres/x86/lib/libaom.a D:/MyProject/kcompressor/app/src/main/cpp/third_party/android-image-compres/x86/lib/libyuv.a D:/MyProject/kcompressor/app/src/main/cpp/third_party/android-image-compres/x86/lib/libimagequant.a D:/MyProject/kcompressor/app/src/main/cpp/third_party/android-image-compres/x86/lib/liboxipng_ffi.a D:/MyProject/kcompressor/app/src/main/cpp/third_party/android-image-compres/x86/lib/libkimage_png.a -Wl,--end-group -landroid -llog -lz -lm -ldl -latomic -lc++_static -latomic -lm
OBJECT_DIR = CMakeFiles\kcompressor.dir
POST_BUILD = cd .
PRE_LINK = cd .
SONAME = libkcompressor.so
SONAME_FLAG = -Wl,-soname,
- TARGET_COMPILE_PDB = CMakeFiles\kcompressor.dir\
TARGET_FILE = D:\MyProject\kcompressor\app\build\intermediates\cxx\Debug\j1t3m4l4\obj\x86\libkcompressor.so
- TARGET_PDB = D:\MyProject\kcompressor\app\build\intermediates\cxx\Debug\j1t3m4l4\obj\x86\libkcompressor.pdb
+ TARGET_PDB = kcompressor.so.dbg
#############################################
@@ -127,14 +148,14 @@ build all: phony D$:/MyProject/kcompressor/app/build/intermediates/cxx/Debug/j1t
#############################################
# Re-run CMake if any of its inputs changed.
-build build.ninja: RERUN_CMAKE | CMakeCache.txt CMakeFiles/3.22.1-g37088a8-dirty/CMakeCCompiler.cmake CMakeFiles/3.22.1-g37088a8-dirty/CMakeCXXCompiler.cmake CMakeFiles/3.22.1-g37088a8-dirty/CMakeSystem.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCCompiler.cmake.in D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCCompilerABI.c D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCInformation.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCXXCompiler.cmake.in D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCXXCompilerABI.cpp D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCXXInformation.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCommonLanguageInclude.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCompilerIdDetection.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCXXCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCompileFeatures.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCompilerABI.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCompilerId.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineSystem.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeFindBinUtils.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeGenericSystem.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeInitializeConfigs.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeLanguageInformation.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeParseImplicitIncludeInfo.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeParseImplicitLinkInfo.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeParseLibraryArchitecture.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeSystem.cmake.in D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeSystemSpecificInformation.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeSystemSpecificInitialize.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeTestCCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeTestCXXCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeTestCompilerCommon.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/ADSP-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/ARMCC-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/ARMClang-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/AppleClang-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Borland-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Bruce-C-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/CMakeCommonCompilerMacros.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-C.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-CXX.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-DetermineCompilerInternal.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-FindBinUtils.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Comeau-CXX-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Compaq-C-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Compaq-CXX-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Cray-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Embarcadero-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Fujitsu-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/FujitsuClang-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/GHS-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/GNU-C-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/GNU-CXX-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/GNU.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/HP-C-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/HP-CXX-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/IAR-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/IBMCPP-C-DetermineVersionInternal.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/IBMCPP-CXX-DetermineVersionInternal.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Intel-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/IntelLLVM-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/MSVC-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/NVHPC-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/NVIDIA-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/OpenWatcom-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/PGI-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/PathScale-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/SCO-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/SDCC-C-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/SunPro-C-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/SunPro-CXX-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/TI-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/TinyCC-C-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/VisualAge-C-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/VisualAge-CXX-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Watcom-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/XL-C-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/XL-CXX-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/XLClang-C-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/XLClang-CXX-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/zOS-C-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/zOS-CXX-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Internal/FeatureTesting.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Clang-C.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Clang-CXX.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Clang.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Determine-C.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Determine-CXX.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Determine.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Initialize.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android/Determine-Compiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Linux.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/UnixPaths.cmake D$:/Android/sdk/ndk/28.2.13676358/build/cmake/abis.cmake D$:/Android/sdk/ndk/28.2.13676358/build/cmake/android-legacy.toolchain.cmake D$:/Android/sdk/ndk/28.2.13676358/build/cmake/android.toolchain.cmake D$:/Android/sdk/ndk/28.2.13676358/build/cmake/flags.cmake D$:/Android/sdk/ndk/28.2.13676358/build/cmake/hooks/pre/Android-Clang.cmake D$:/Android/sdk/ndk/28.2.13676358/build/cmake/hooks/pre/Android-Determine.cmake D$:/Android/sdk/ndk/28.2.13676358/build/cmake/hooks/pre/Android-Initialize.cmake D$:/Android/sdk/ndk/28.2.13676358/build/cmake/hooks/pre/Android.cmake D$:/Android/sdk/ndk/28.2.13676358/build/cmake/hooks/pre/Determine-Compiler.cmake D$:/Android/sdk/ndk/28.2.13676358/build/cmake/platforms.cmake D$:/MyProject/kcompressor/app/src/main/cpp/CMakeLists.txt
+build build.ninja: RERUN_CMAKE | CMakeCache.txt CMakeFiles/3.22.1-g37088a8-dirty/CMakeCCompiler.cmake CMakeFiles/3.22.1-g37088a8-dirty/CMakeCXXCompiler.cmake CMakeFiles/3.22.1-g37088a8-dirty/CMakeSystem.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCInformation.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCXXInformation.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCommonLanguageInclude.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeGenericSystem.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeInitializeConfigs.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeLanguageInformation.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeSystemSpecificInformation.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeSystemSpecificInitialize.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/CMakeCommonCompilerMacros.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-C.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-CXX.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/GNU.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Clang-C.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Clang-CXX.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Clang.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Initialize.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Linux.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/UnixPaths.cmake D$:/Android/sdk/ndk/28.2.13676358/build/cmake/abis.cmake D$:/Android/sdk/ndk/28.2.13676358/build/cmake/android-legacy.toolchain.cmake D$:/Android/sdk/ndk/28.2.13676358/build/cmake/android.toolchain.cmake D$:/Android/sdk/ndk/28.2.13676358/build/cmake/flags.cmake D$:/Android/sdk/ndk/28.2.13676358/build/cmake/hooks/pre/Android-Clang.cmake D$:/Android/sdk/ndk/28.2.13676358/build/cmake/hooks/pre/Android-Initialize.cmake D$:/Android/sdk/ndk/28.2.13676358/build/cmake/hooks/pre/Android.cmake D$:/Android/sdk/ndk/28.2.13676358/build/cmake/platforms.cmake D$:/MyProject/kcompressor/app/src/main/cpp/CMakeLists.txt
pool = console
#############################################
# A missing CMake input file is not an error.
-build CMakeCache.txt CMakeFiles/3.22.1-g37088a8-dirty/CMakeCCompiler.cmake CMakeFiles/3.22.1-g37088a8-dirty/CMakeCXXCompiler.cmake CMakeFiles/3.22.1-g37088a8-dirty/CMakeSystem.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCCompiler.cmake.in D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCCompilerABI.c D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCInformation.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCXXCompiler.cmake.in D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCXXCompilerABI.cpp D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCXXInformation.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCommonLanguageInclude.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCompilerIdDetection.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCXXCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCompileFeatures.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCompilerABI.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCompilerId.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineSystem.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeFindBinUtils.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeGenericSystem.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeInitializeConfigs.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeLanguageInformation.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeParseImplicitIncludeInfo.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeParseImplicitLinkInfo.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeParseLibraryArchitecture.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeSystem.cmake.in D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeSystemSpecificInformation.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeSystemSpecificInitialize.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeTestCCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeTestCXXCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeTestCompilerCommon.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/ADSP-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/ARMCC-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/ARMClang-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/AppleClang-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Borland-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Bruce-C-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/CMakeCommonCompilerMacros.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-C.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-CXX.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-DetermineCompilerInternal.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-FindBinUtils.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Comeau-CXX-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Compaq-C-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Compaq-CXX-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Cray-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Embarcadero-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Fujitsu-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/FujitsuClang-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/GHS-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/GNU-C-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/GNU-CXX-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/GNU.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/HP-C-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/HP-CXX-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/IAR-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/IBMCPP-C-DetermineVersionInternal.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/IBMCPP-CXX-DetermineVersionInternal.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Intel-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/IntelLLVM-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/MSVC-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/NVHPC-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/NVIDIA-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/OpenWatcom-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/PGI-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/PathScale-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/SCO-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/SDCC-C-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/SunPro-C-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/SunPro-CXX-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/TI-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/TinyCC-C-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/VisualAge-C-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/VisualAge-CXX-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Watcom-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/XL-C-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/XL-CXX-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/XLClang-C-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/XLClang-CXX-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/zOS-C-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/zOS-CXX-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Internal/FeatureTesting.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Clang-C.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Clang-CXX.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Clang.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Determine-C.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Determine-CXX.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Determine.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Initialize.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android/Determine-Compiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Linux.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/UnixPaths.cmake D$:/Android/sdk/ndk/28.2.13676358/build/cmake/abis.cmake D$:/Android/sdk/ndk/28.2.13676358/build/cmake/android-legacy.toolchain.cmake D$:/Android/sdk/ndk/28.2.13676358/build/cmake/android.toolchain.cmake D$:/Android/sdk/ndk/28.2.13676358/build/cmake/flags.cmake D$:/Android/sdk/ndk/28.2.13676358/build/cmake/hooks/pre/Android-Clang.cmake D$:/Android/sdk/ndk/28.2.13676358/build/cmake/hooks/pre/Android-Determine.cmake D$:/Android/sdk/ndk/28.2.13676358/build/cmake/hooks/pre/Android-Initialize.cmake D$:/Android/sdk/ndk/28.2.13676358/build/cmake/hooks/pre/Android.cmake D$:/Android/sdk/ndk/28.2.13676358/build/cmake/hooks/pre/Determine-Compiler.cmake D$:/Android/sdk/ndk/28.2.13676358/build/cmake/platforms.cmake D$:/MyProject/kcompressor/app/src/main/cpp/CMakeLists.txt: phony
+build CMakeCache.txt CMakeFiles/3.22.1-g37088a8-dirty/CMakeCCompiler.cmake CMakeFiles/3.22.1-g37088a8-dirty/CMakeCXXCompiler.cmake CMakeFiles/3.22.1-g37088a8-dirty/CMakeSystem.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCInformation.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCXXInformation.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCommonLanguageInclude.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeGenericSystem.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeInitializeConfigs.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeLanguageInformation.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeSystemSpecificInformation.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeSystemSpecificInitialize.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/CMakeCommonCompilerMacros.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-C.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-CXX.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/GNU.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Clang-C.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Clang-CXX.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Clang.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Initialize.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Linux.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/UnixPaths.cmake D$:/Android/sdk/ndk/28.2.13676358/build/cmake/abis.cmake D$:/Android/sdk/ndk/28.2.13676358/build/cmake/android-legacy.toolchain.cmake D$:/Android/sdk/ndk/28.2.13676358/build/cmake/android.toolchain.cmake D$:/Android/sdk/ndk/28.2.13676358/build/cmake/flags.cmake D$:/Android/sdk/ndk/28.2.13676358/build/cmake/hooks/pre/Android-Clang.cmake D$:/Android/sdk/ndk/28.2.13676358/build/cmake/hooks/pre/Android-Initialize.cmake D$:/Android/sdk/ndk/28.2.13676358/build/cmake/hooks/pre/Android.cmake D$:/Android/sdk/ndk/28.2.13676358/build/cmake/platforms.cmake D$:/MyProject/kcompressor/app/src/main/cpp/CMakeLists.txt: phony
#############################################
diff --git a/app/.cxx/Debug/j1t3m4l4/x86/compile_commands.json b/app/.cxx/Debug/j1t3m4l4/x86/compile_commands.json
index 2a52866..4ee1530 100644
--- a/app/.cxx/Debug/j1t3m4l4/x86/compile_commands.json
+++ b/app/.cxx/Debug/j1t3m4l4/x86/compile_commands.json
@@ -1,7 +1,22 @@
[
{
"directory": "D:/MyProject/kcompressor/app/.cxx/Debug/j1t3m4l4/x86",
- "command": "D:\\Android\\sdk\\ndk\\28.2.13676358\\toolchains\\llvm\\prebuilt\\windows-x86_64\\bin\\clang++.exe --target=i686-none-linux-android21 --sysroot=D:/Android/sdk/ndk/28.2.13676358/toolchains/llvm/prebuilt/windows-x86_64/sysroot -Dkcompressor_EXPORTS -ID:/MyProject/kcompressor/app/src/main/cpp/third_party/ffmpeg-android/x86/include -ID:/MyProject/kcompressor/app/src/main/cpp/third_party/ffmpeg-android/x86/include/x264 -ID:/MyProject/kcompressor/app/src/main/cpp/third_party/ffmpeg-android/x86/include/x265 -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -mstackrealign -D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -std=c++17 -fexceptions -frtti -fno-limit-debug-info -fPIC -Wall -Wextra -Wno-unused-parameter -o CMakeFiles\\kcompressor.dir\\native_compressor.cpp.o -c D:\\MyProject\\kcompressor\\app\\src\\main\\cpp\\native_compressor.cpp",
+ "command": "D:\\Android\\sdk\\ndk\\28.2.13676358\\toolchains\\llvm\\prebuilt\\windows-x86_64\\bin\\clang++.exe --target=i686-none-linux-android21 --sysroot=D:/Android/sdk/ndk/28.2.13676358/toolchains/llvm/prebuilt/windows-x86_64/sysroot -Dkcompressor_EXPORTS -ID:/MyProject/kcompressor/app/src/main/cpp -ID:/MyProject/kcompressor/app/src/main/cpp/third_party/ffmpeg-android/x86/include -ID:/MyProject/kcompressor/app/src/main/cpp/third_party/ffmpeg-android/x86/include/x264 -ID:/MyProject/kcompressor/app/src/main/cpp/third_party/ffmpeg-android/x86/include/x265 -ID:/MyProject/kcompressor/app/src/main/cpp/third_party/android-image-compres/x86/include -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -mstackrealign -D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -std=c++17 -fexceptions -frtti -fno-limit-debug-info -fPIC -Wall -Wextra -Wno-unused-parameter -Wno-deprecated-declarations -o CMakeFiles\\kcompressor.dir\\native_compressor.cpp.o -c D:\\MyProject\\kcompressor\\app\\src\\main\\cpp\\native_compressor.cpp",
"file": "D:\\MyProject\\kcompressor\\app\\src\\main\\cpp\\native_compressor.cpp"
+},
+{
+ "directory": "D:/MyProject/kcompressor/app/.cxx/Debug/j1t3m4l4/x86",
+ "command": "D:\\Android\\sdk\\ndk\\28.2.13676358\\toolchains\\llvm\\prebuilt\\windows-x86_64\\bin\\clang++.exe --target=i686-none-linux-android21 --sysroot=D:/Android/sdk/ndk/28.2.13676358/toolchains/llvm/prebuilt/windows-x86_64/sysroot -Dkcompressor_EXPORTS -ID:/MyProject/kcompressor/app/src/main/cpp -ID:/MyProject/kcompressor/app/src/main/cpp/third_party/ffmpeg-android/x86/include -ID:/MyProject/kcompressor/app/src/main/cpp/third_party/ffmpeg-android/x86/include/x264 -ID:/MyProject/kcompressor/app/src/main/cpp/third_party/ffmpeg-android/x86/include/x265 -ID:/MyProject/kcompressor/app/src/main/cpp/third_party/android-image-compres/x86/include -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -mstackrealign -D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -std=c++17 -fexceptions -frtti -fno-limit-debug-info -fPIC -Wall -Wextra -Wno-unused-parameter -Wno-deprecated-declarations -o CMakeFiles\\kcompressor.dir\\compressor_common.cpp.o -c D:\\MyProject\\kcompressor\\app\\src\\main\\cpp\\compressor_common.cpp",
+ "file": "D:\\MyProject\\kcompressor\\app\\src\\main\\cpp\\compressor_common.cpp"
+},
+{
+ "directory": "D:/MyProject/kcompressor/app/.cxx/Debug/j1t3m4l4/x86",
+ "command": "D:\\Android\\sdk\\ndk\\28.2.13676358\\toolchains\\llvm\\prebuilt\\windows-x86_64\\bin\\clang++.exe --target=i686-none-linux-android21 --sysroot=D:/Android/sdk/ndk/28.2.13676358/toolchains/llvm/prebuilt/windows-x86_64/sysroot -Dkcompressor_EXPORTS -ID:/MyProject/kcompressor/app/src/main/cpp -ID:/MyProject/kcompressor/app/src/main/cpp/third_party/ffmpeg-android/x86/include -ID:/MyProject/kcompressor/app/src/main/cpp/third_party/ffmpeg-android/x86/include/x264 -ID:/MyProject/kcompressor/app/src/main/cpp/third_party/ffmpeg-android/x86/include/x265 -ID:/MyProject/kcompressor/app/src/main/cpp/third_party/android-image-compres/x86/include -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -mstackrealign -D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -std=c++17 -fexceptions -frtti -fno-limit-debug-info -fPIC -Wall -Wextra -Wno-unused-parameter -Wno-deprecated-declarations -o CMakeFiles\\kcompressor.dir\\video_compressor.cpp.o -c D:\\MyProject\\kcompressor\\app\\src\\main\\cpp\\video_compressor.cpp",
+ "file": "D:\\MyProject\\kcompressor\\app\\src\\main\\cpp\\video_compressor.cpp"
+},
+{
+ "directory": "D:/MyProject/kcompressor/app/.cxx/Debug/j1t3m4l4/x86",
+ "command": "D:\\Android\\sdk\\ndk\\28.2.13676358\\toolchains\\llvm\\prebuilt\\windows-x86_64\\bin\\clang++.exe --target=i686-none-linux-android21 --sysroot=D:/Android/sdk/ndk/28.2.13676358/toolchains/llvm/prebuilt/windows-x86_64/sysroot -Dkcompressor_EXPORTS -ID:/MyProject/kcompressor/app/src/main/cpp -ID:/MyProject/kcompressor/app/src/main/cpp/third_party/ffmpeg-android/x86/include -ID:/MyProject/kcompressor/app/src/main/cpp/third_party/ffmpeg-android/x86/include/x264 -ID:/MyProject/kcompressor/app/src/main/cpp/third_party/ffmpeg-android/x86/include/x265 -ID:/MyProject/kcompressor/app/src/main/cpp/third_party/android-image-compres/x86/include -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -mstackrealign -D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -std=c++17 -fexceptions -frtti -fno-limit-debug-info -fPIC -Wall -Wextra -Wno-unused-parameter -Wno-deprecated-declarations -o CMakeFiles\\kcompressor.dir\\image_compressor.cpp.o -c D:\\MyProject\\kcompressor\\app\\src\\main\\cpp\\image_compressor.cpp",
+ "file": "D:\\MyProject\\kcompressor\\app\\src\\main\\cpp\\image_compressor.cpp"
}
]
\ No newline at end of file
diff --git a/app/.cxx/RelWithDebInfo/1j3m5w6j/x86/.cmake/api/v1/reply/cmakeFiles-v1-7fb228ef157ab0f3a4a0.json b/app/.cxx/RelWithDebInfo/1j3m5w6j/x86/.cmake/api/v1/reply/cmakeFiles-v1-7fb228ef157ab0f3a4a0.json
deleted file mode 100644
index a122ee4..0000000
--- a/app/.cxx/RelWithDebInfo/1j3m5w6j/x86/.cmake/api/v1/reply/cmakeFiles-v1-7fb228ef157ab0f3a4a0.json
+++ /dev/null
@@ -1,803 +0,0 @@
-{
- "inputs" :
- [
- {
- "path" : "CMakeLists.txt"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineSystem.cmake"
- },
- {
- "isExternal" : true,
- "path" : "D:/Android/sdk/ndk/28.2.13676358/build/cmake/android.toolchain.cmake"
- },
- {
- "isExternal" : true,
- "path" : "D:/Android/sdk/ndk/28.2.13676358/build/cmake/android-legacy.toolchain.cmake"
- },
- {
- "isExternal" : true,
- "path" : "D:/Android/sdk/ndk/28.2.13676358/build/cmake/abis.cmake"
- },
- {
- "isExternal" : true,
- "path" : "D:/Android/sdk/ndk/28.2.13676358/build/cmake/platforms.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Determine.cmake"
- },
- {
- "isExternal" : true,
- "path" : "D:/Android/sdk/ndk/28.2.13676358/build/cmake/hooks/pre/Android-Determine.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeSystem.cmake.in"
- },
- {
- "isGenerated" : true,
- "path" : "D:/MyProject/kcompressor/app/.cxx/RelWithDebInfo/1j3m5w6j/x86/CMakeFiles/3.22.1-g37088a8-dirty/CMakeSystem.cmake"
- },
- {
- "isExternal" : true,
- "path" : "D:/Android/sdk/ndk/28.2.13676358/build/cmake/android.toolchain.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeSystemSpecificInitialize.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Initialize.cmake"
- },
- {
- "isExternal" : true,
- "path" : "D:/Android/sdk/ndk/28.2.13676358/build/cmake/hooks/pre/Android-Initialize.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCCompiler.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCompiler.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Determine-C.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android/Determine-Compiler.cmake"
- },
- {
- "isExternal" : true,
- "path" : "D:/Android/sdk/ndk/28.2.13676358/build/cmake/hooks/pre/Determine-Compiler.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCompilerId.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCompilerIdDetection.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/ADSP-DetermineCompiler.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/ARMCC-DetermineCompiler.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/ARMClang-DetermineCompiler.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/AppleClang-DetermineCompiler.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-DetermineCompilerInternal.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Borland-DetermineCompiler.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Bruce-C-DetermineCompiler.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-DetermineCompiler.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-DetermineCompilerInternal.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Compaq-C-DetermineCompiler.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Cray-DetermineCompiler.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Embarcadero-DetermineCompiler.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Fujitsu-DetermineCompiler.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/FujitsuClang-DetermineCompiler.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/GHS-DetermineCompiler.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/GNU-C-DetermineCompiler.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/HP-C-DetermineCompiler.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/IAR-DetermineCompiler.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Intel-DetermineCompiler.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/IntelLLVM-DetermineCompiler.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/MSVC-DetermineCompiler.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/NVHPC-DetermineCompiler.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/NVIDIA-DetermineCompiler.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/OpenWatcom-DetermineCompiler.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/PGI-DetermineCompiler.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/PathScale-DetermineCompiler.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/SCO-DetermineCompiler.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/SDCC-C-DetermineCompiler.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/SunPro-C-DetermineCompiler.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/TI-DetermineCompiler.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/TinyCC-C-DetermineCompiler.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/VisualAge-C-DetermineCompiler.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/IBMCPP-C-DetermineVersionInternal.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Watcom-DetermineCompiler.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/XL-C-DetermineCompiler.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/IBMCPP-C-DetermineVersionInternal.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/XLClang-C-DetermineCompiler.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/zOS-C-DetermineCompiler.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/IBMCPP-C-DetermineVersionInternal.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeFindBinUtils.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-FindBinUtils.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCCompiler.cmake.in"
- },
- {
- "isGenerated" : true,
- "path" : "D:/MyProject/kcompressor/app/.cxx/RelWithDebInfo/1j3m5w6j/x86/CMakeFiles/3.22.1-g37088a8-dirty/CMakeCCompiler.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCXXCompiler.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCompiler.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Determine-CXX.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android/Determine-Compiler.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCompilerId.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCompilerIdDetection.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/ADSP-DetermineCompiler.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/ARMCC-DetermineCompiler.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/ARMClang-DetermineCompiler.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/AppleClang-DetermineCompiler.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-DetermineCompilerInternal.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Borland-DetermineCompiler.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-DetermineCompiler.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-DetermineCompilerInternal.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Comeau-CXX-DetermineCompiler.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Compaq-CXX-DetermineCompiler.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Cray-DetermineCompiler.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Embarcadero-DetermineCompiler.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Fujitsu-DetermineCompiler.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/FujitsuClang-DetermineCompiler.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/GHS-DetermineCompiler.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/GNU-CXX-DetermineCompiler.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/HP-CXX-DetermineCompiler.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/IAR-DetermineCompiler.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Intel-DetermineCompiler.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/IntelLLVM-DetermineCompiler.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/MSVC-DetermineCompiler.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/NVHPC-DetermineCompiler.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/NVIDIA-DetermineCompiler.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/OpenWatcom-DetermineCompiler.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/PGI-DetermineCompiler.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/PathScale-DetermineCompiler.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/SCO-DetermineCompiler.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/SunPro-CXX-DetermineCompiler.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/TI-DetermineCompiler.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/VisualAge-CXX-DetermineCompiler.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/IBMCPP-CXX-DetermineVersionInternal.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Watcom-DetermineCompiler.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/XL-CXX-DetermineCompiler.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/IBMCPP-CXX-DetermineVersionInternal.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/XLClang-CXX-DetermineCompiler.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/zOS-CXX-DetermineCompiler.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/IBMCPP-CXX-DetermineVersionInternal.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeFindBinUtils.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-FindBinUtils.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCXXCompiler.cmake.in"
- },
- {
- "isGenerated" : true,
- "path" : "D:/MyProject/kcompressor/app/.cxx/RelWithDebInfo/1j3m5w6j/x86/CMakeFiles/3.22.1-g37088a8-dirty/CMakeCXXCompiler.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeSystemSpecificInformation.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeGenericSystem.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeInitializeConfigs.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android.cmake"
- },
- {
- "isExternal" : true,
- "path" : "D:/Android/sdk/ndk/28.2.13676358/build/cmake/hooks/pre/Android.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Linux.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/UnixPaths.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCInformation.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeLanguageInformation.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-C.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/CMakeCommonCompilerMacros.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/GNU.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/CMakeCommonCompilerMacros.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Clang-C.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Clang.cmake"
- },
- {
- "isExternal" : true,
- "path" : "D:/Android/sdk/ndk/28.2.13676358/build/cmake/hooks/pre/Android-Clang.cmake"
- },
- {
- "isExternal" : true,
- "path" : "D:/Android/sdk/ndk/28.2.13676358/build/cmake/flags.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCommonLanguageInclude.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeTestCCompiler.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeTestCompilerCommon.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCompilerABI.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeParseImplicitIncludeInfo.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeParseImplicitLinkInfo.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeParseLibraryArchitecture.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeTestCompilerCommon.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCCompilerABI.c"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCompileFeatures.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Internal/FeatureTesting.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCCompiler.cmake.in"
- },
- {
- "isGenerated" : true,
- "path" : "D:/MyProject/kcompressor/app/.cxx/RelWithDebInfo/1j3m5w6j/x86/CMakeFiles/3.22.1-g37088a8-dirty/CMakeCCompiler.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCXXInformation.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeLanguageInformation.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-CXX.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Clang-CXX.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Clang.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCommonLanguageInclude.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeTestCXXCompiler.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeTestCompilerCommon.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCompilerABI.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeParseImplicitIncludeInfo.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeParseImplicitLinkInfo.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeParseLibraryArchitecture.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeTestCompilerCommon.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCXXCompilerABI.cpp"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCompileFeatures.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Internal/FeatureTesting.cmake"
- },
- {
- "isCMake" : true,
- "isExternal" : true,
- "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCXXCompiler.cmake.in"
- },
- {
- "isGenerated" : true,
- "path" : "D:/MyProject/kcompressor/app/.cxx/RelWithDebInfo/1j3m5w6j/x86/CMakeFiles/3.22.1-g37088a8-dirty/CMakeCXXCompiler.cmake"
- }
- ],
- "kind" : "cmakeFiles",
- "paths" :
- {
- "build" : "D:/MyProject/kcompressor/app/.cxx/RelWithDebInfo/1j3m5w6j/x86",
- "source" : "D:/MyProject/kcompressor/app/src/main/cpp"
- },
- "version" :
- {
- "major" : 1,
- "minor" : 0
- }
-}
diff --git a/app/.cxx/RelWithDebInfo/1j3m5w6j/x86/.cmake/api/v1/reply/cmakeFiles-v1-8fc4087e1972b4ec3bd8.json b/app/.cxx/RelWithDebInfo/1j3m5w6j/x86/.cmake/api/v1/reply/cmakeFiles-v1-8fc4087e1972b4ec3bd8.json
new file mode 100644
index 0000000..5a4554a
--- /dev/null
+++ b/app/.cxx/RelWithDebInfo/1j3m5w6j/x86/.cmake/api/v1/reply/cmakeFiles-v1-8fc4087e1972b4ec3bd8.json
@@ -0,0 +1,188 @@
+{
+ "inputs" :
+ [
+ {
+ "path" : "CMakeLists.txt"
+ },
+ {
+ "isGenerated" : true,
+ "path" : "D:/MyProject/kcompressor/app/.cxx/RelWithDebInfo/1j3m5w6j/x86/CMakeFiles/3.22.1-g37088a8-dirty/CMakeSystem.cmake"
+ },
+ {
+ "isExternal" : true,
+ "path" : "D:/Android/sdk/ndk/28.2.13676358/build/cmake/android.toolchain.cmake"
+ },
+ {
+ "isExternal" : true,
+ "path" : "D:/Android/sdk/ndk/28.2.13676358/build/cmake/android-legacy.toolchain.cmake"
+ },
+ {
+ "isExternal" : true,
+ "path" : "D:/Android/sdk/ndk/28.2.13676358/build/cmake/abis.cmake"
+ },
+ {
+ "isExternal" : true,
+ "path" : "D:/Android/sdk/ndk/28.2.13676358/build/cmake/platforms.cmake"
+ },
+ {
+ "isCMake" : true,
+ "isExternal" : true,
+ "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeSystemSpecificInitialize.cmake"
+ },
+ {
+ "isCMake" : true,
+ "isExternal" : true,
+ "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Initialize.cmake"
+ },
+ {
+ "isExternal" : true,
+ "path" : "D:/Android/sdk/ndk/28.2.13676358/build/cmake/hooks/pre/Android-Initialize.cmake"
+ },
+ {
+ "isGenerated" : true,
+ "path" : "D:/MyProject/kcompressor/app/.cxx/RelWithDebInfo/1j3m5w6j/x86/CMakeFiles/3.22.1-g37088a8-dirty/CMakeCCompiler.cmake"
+ },
+ {
+ "isGenerated" : true,
+ "path" : "D:/MyProject/kcompressor/app/.cxx/RelWithDebInfo/1j3m5w6j/x86/CMakeFiles/3.22.1-g37088a8-dirty/CMakeCXXCompiler.cmake"
+ },
+ {
+ "isCMake" : true,
+ "isExternal" : true,
+ "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeSystemSpecificInformation.cmake"
+ },
+ {
+ "isCMake" : true,
+ "isExternal" : true,
+ "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeGenericSystem.cmake"
+ },
+ {
+ "isCMake" : true,
+ "isExternal" : true,
+ "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeInitializeConfigs.cmake"
+ },
+ {
+ "isCMake" : true,
+ "isExternal" : true,
+ "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android.cmake"
+ },
+ {
+ "isExternal" : true,
+ "path" : "D:/Android/sdk/ndk/28.2.13676358/build/cmake/hooks/pre/Android.cmake"
+ },
+ {
+ "isCMake" : true,
+ "isExternal" : true,
+ "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Linux.cmake"
+ },
+ {
+ "isCMake" : true,
+ "isExternal" : true,
+ "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/UnixPaths.cmake"
+ },
+ {
+ "isCMake" : true,
+ "isExternal" : true,
+ "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCInformation.cmake"
+ },
+ {
+ "isCMake" : true,
+ "isExternal" : true,
+ "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeLanguageInformation.cmake"
+ },
+ {
+ "isCMake" : true,
+ "isExternal" : true,
+ "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-C.cmake"
+ },
+ {
+ "isCMake" : true,
+ "isExternal" : true,
+ "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang.cmake"
+ },
+ {
+ "isCMake" : true,
+ "isExternal" : true,
+ "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/CMakeCommonCompilerMacros.cmake"
+ },
+ {
+ "isCMake" : true,
+ "isExternal" : true,
+ "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/GNU.cmake"
+ },
+ {
+ "isCMake" : true,
+ "isExternal" : true,
+ "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/CMakeCommonCompilerMacros.cmake"
+ },
+ {
+ "isCMake" : true,
+ "isExternal" : true,
+ "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Clang-C.cmake"
+ },
+ {
+ "isCMake" : true,
+ "isExternal" : true,
+ "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Clang.cmake"
+ },
+ {
+ "isExternal" : true,
+ "path" : "D:/Android/sdk/ndk/28.2.13676358/build/cmake/hooks/pre/Android-Clang.cmake"
+ },
+ {
+ "isExternal" : true,
+ "path" : "D:/Android/sdk/ndk/28.2.13676358/build/cmake/flags.cmake"
+ },
+ {
+ "isCMake" : true,
+ "isExternal" : true,
+ "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCommonLanguageInclude.cmake"
+ },
+ {
+ "isCMake" : true,
+ "isExternal" : true,
+ "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCXXInformation.cmake"
+ },
+ {
+ "isCMake" : true,
+ "isExternal" : true,
+ "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeLanguageInformation.cmake"
+ },
+ {
+ "isCMake" : true,
+ "isExternal" : true,
+ "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-CXX.cmake"
+ },
+ {
+ "isCMake" : true,
+ "isExternal" : true,
+ "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang.cmake"
+ },
+ {
+ "isCMake" : true,
+ "isExternal" : true,
+ "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Clang-CXX.cmake"
+ },
+ {
+ "isCMake" : true,
+ "isExternal" : true,
+ "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Clang.cmake"
+ },
+ {
+ "isCMake" : true,
+ "isExternal" : true,
+ "path" : "D:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCommonLanguageInclude.cmake"
+ }
+ ],
+ "kind" : "cmakeFiles",
+ "paths" :
+ {
+ "build" : "D:/MyProject/kcompressor/app/.cxx/RelWithDebInfo/1j3m5w6j/x86",
+ "source" : "D:/MyProject/kcompressor/app/src/main/cpp"
+ },
+ "version" :
+ {
+ "major" : 1,
+ "minor" : 0
+ }
+}
diff --git a/app/.cxx/RelWithDebInfo/1j3m5w6j/x86/.cmake/api/v1/reply/codemodel-v2-42f3d37f38d568b9b4b5.json b/app/.cxx/RelWithDebInfo/1j3m5w6j/x86/.cmake/api/v1/reply/codemodel-v2-c6abbc59d2810f212db4.json
similarity index 91%
rename from app/.cxx/RelWithDebInfo/1j3m5w6j/x86/.cmake/api/v1/reply/codemodel-v2-42f3d37f38d568b9b4b5.json
rename to app/.cxx/RelWithDebInfo/1j3m5w6j/x86/.cmake/api/v1/reply/codemodel-v2-c6abbc59d2810f212db4.json
index f7ab06c..b7e2abe 100644
--- a/app/.cxx/RelWithDebInfo/1j3m5w6j/x86/.cmake/api/v1/reply/codemodel-v2-42f3d37f38d568b9b4b5.json
+++ b/app/.cxx/RelWithDebInfo/1j3m5w6j/x86/.cmake/api/v1/reply/codemodel-v2-c6abbc59d2810f212db4.json
@@ -39,7 +39,7 @@
{
"directoryIndex" : 0,
"id" : "kcompressor::@6890427a1f51a3e7e1df",
- "jsonFile" : "target-kcompressor-RelWithDebInfo-3f43942e77cd7751e590.json",
+ "jsonFile" : "target-kcompressor-RelWithDebInfo-6099e21711cfdf86401f.json",
"name" : "kcompressor",
"projectIndex" : 0
}
diff --git a/app/.cxx/RelWithDebInfo/1j3m5w6j/x86/.cmake/api/v1/reply/index-2026-06-11T15-02-06-0785.json b/app/.cxx/RelWithDebInfo/1j3m5w6j/x86/.cmake/api/v1/reply/index-2026-06-11T19-34-20-0004.json
similarity index 84%
rename from app/.cxx/RelWithDebInfo/1j3m5w6j/x86/.cmake/api/v1/reply/index-2026-06-11T15-02-06-0785.json
rename to app/.cxx/RelWithDebInfo/1j3m5w6j/x86/.cmake/api/v1/reply/index-2026-06-11T19-34-20-0004.json
index af56324..8ff0046 100644
--- a/app/.cxx/RelWithDebInfo/1j3m5w6j/x86/.cmake/api/v1/reply/index-2026-06-11T15-02-06-0785.json
+++ b/app/.cxx/RelWithDebInfo/1j3m5w6j/x86/.cmake/api/v1/reply/index-2026-06-11T19-34-20-0004.json
@@ -26,7 +26,7 @@
"objects" :
[
{
- "jsonFile" : "codemodel-v2-42f3d37f38d568b9b4b5.json",
+ "jsonFile" : "codemodel-v2-c6abbc59d2810f212db4.json",
"kind" : "codemodel",
"version" :
{
@@ -44,7 +44,7 @@
}
},
{
- "jsonFile" : "cmakeFiles-v1-7fb228ef157ab0f3a4a0.json",
+ "jsonFile" : "cmakeFiles-v1-8fc4087e1972b4ec3bd8.json",
"kind" : "cmakeFiles",
"version" :
{
@@ -69,7 +69,7 @@
},
"cmakeFiles-v1" :
{
- "jsonFile" : "cmakeFiles-v1-7fb228ef157ab0f3a4a0.json",
+ "jsonFile" : "cmakeFiles-v1-8fc4087e1972b4ec3bd8.json",
"kind" : "cmakeFiles",
"version" :
{
@@ -79,7 +79,7 @@
},
"codemodel-v2" :
{
- "jsonFile" : "codemodel-v2-42f3d37f38d568b9b4b5.json",
+ "jsonFile" : "codemodel-v2-c6abbc59d2810f212db4.json",
"kind" : "codemodel",
"version" :
{
diff --git a/app/.cxx/RelWithDebInfo/1j3m5w6j/x86/.cmake/api/v1/reply/target-kcompressor-RelWithDebInfo-3f43942e77cd7751e590.json b/app/.cxx/RelWithDebInfo/1j3m5w6j/x86/.cmake/api/v1/reply/target-kcompressor-RelWithDebInfo-6099e21711cfdf86401f.json
similarity index 56%
rename from app/.cxx/RelWithDebInfo/1j3m5w6j/x86/.cmake/api/v1/reply/target-kcompressor-RelWithDebInfo-3f43942e77cd7751e590.json
rename to app/.cxx/RelWithDebInfo/1j3m5w6j/x86/.cmake/api/v1/reply/target-kcompressor-RelWithDebInfo-6099e21711cfdf86401f.json
index 7e0dac6..4732cf6 100644
--- a/app/.cxx/RelWithDebInfo/1j3m5w6j/x86/.cmake/api/v1/reply/target-kcompressor-RelWithDebInfo-3f43942e77cd7751e590.json
+++ b/app/.cxx/RelWithDebInfo/1j3m5w6j/x86/.cmake/api/v1/reply/target-kcompressor-RelWithDebInfo-6099e21711cfdf86401f.json
@@ -11,6 +11,7 @@
"commands" :
[
"add_library",
+ "target_link_options",
"target_link_libraries",
"target_compile_options",
"target_include_directories"
@@ -27,25 +28,31 @@
{
"command" : 0,
"file" : 0,
- "line" : 14,
+ "line" : 26,
"parent" : 0
},
{
"command" : 1,
"file" : 0,
- "line" : 42,
+ "line" : 32,
"parent" : 0
},
{
"command" : 2,
"file" : 0,
- "line" : 37,
+ "line" : 84,
"parent" : 0
},
{
"command" : 3,
"file" : 0,
- "line" : 17,
+ "line" : 77,
+ "parent" : 0
+ },
+ {
+ "command" : 4,
+ "file" : 0,
+ "line" : 37,
"parent" : 0
}
]
@@ -59,16 +66,20 @@
"fragment" : "-g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -mstackrealign -D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -std=c++17 -fexceptions -frtti -O2 -g -DNDEBUG -fPIC"
},
{
- "backtrace" : 3,
+ "backtrace" : 4,
"fragment" : "-Wall"
},
{
- "backtrace" : 3,
+ "backtrace" : 4,
"fragment" : "-Wextra"
},
{
- "backtrace" : 3,
+ "backtrace" : 4,
"fragment" : "-Wno-unused-parameter"
+ },
+ {
+ "backtrace" : 4,
+ "fragment" : "-Wno-deprecated-declarations"
}
],
"defines" :
@@ -80,22 +91,33 @@
"includes" :
[
{
- "backtrace" : 4,
+ "backtrace" : 5,
+ "path" : "D:/MyProject/kcompressor/app/src/main/cpp"
+ },
+ {
+ "backtrace" : 5,
"path" : "D:/MyProject/kcompressor/app/src/main/cpp/third_party/ffmpeg-android/x86/include"
},
{
- "backtrace" : 4,
+ "backtrace" : 5,
"path" : "D:/MyProject/kcompressor/app/src/main/cpp/third_party/ffmpeg-android/x86/include/x264"
},
{
- "backtrace" : 4,
+ "backtrace" : 5,
"path" : "D:/MyProject/kcompressor/app/src/main/cpp/third_party/ffmpeg-android/x86/include/x265"
+ },
+ {
+ "backtrace" : 5,
+ "path" : "D:/MyProject/kcompressor/app/src/main/cpp/third_party/android-image-compres/x86/include"
}
],
"language" : "CXX",
"sourceIndexes" :
[
- 0
+ 0,
+ 1,
+ 2,
+ 3
],
"sysroot" :
{
@@ -114,81 +136,151 @@
},
{
"backtrace" : 2,
+ "fragment" : "-Wl,--allow-multiple-definition",
+ "role" : "flags"
+ },
+ {
+ "backtrace" : 2,
+ "fragment" : "-Wl,--exclude-libs,libimagequant.a",
+ "role" : "flags"
+ },
+ {
+ "backtrace" : 2,
+ "fragment" : "-Wl,--exclude-libs,liboxipng_ffi.a",
+ "role" : "flags"
+ },
+ {
+ "backtrace" : 3,
"fragment" : "-Wl,--start-group",
"role" : "libraries"
},
{
- "backtrace" : 2,
+ "backtrace" : 3,
"fragment" : "D:\\MyProject\\kcompressor\\app\\src\\main\\cpp\\third_party\\ffmpeg-android\\x86\\lib\\libavfilter.a",
"role" : "libraries"
},
{
- "backtrace" : 2,
+ "backtrace" : 3,
"fragment" : "D:\\MyProject\\kcompressor\\app\\src\\main\\cpp\\third_party\\ffmpeg-android\\x86\\lib\\libavformat.a",
"role" : "libraries"
},
{
- "backtrace" : 2,
+ "backtrace" : 3,
"fragment" : "D:\\MyProject\\kcompressor\\app\\src\\main\\cpp\\third_party\\ffmpeg-android\\x86\\lib\\libavcodec.a",
"role" : "libraries"
},
{
- "backtrace" : 2,
+ "backtrace" : 3,
"fragment" : "D:\\MyProject\\kcompressor\\app\\src\\main\\cpp\\third_party\\ffmpeg-android\\x86\\lib\\libswscale.a",
"role" : "libraries"
},
{
- "backtrace" : 2,
+ "backtrace" : 3,
"fragment" : "D:\\MyProject\\kcompressor\\app\\src\\main\\cpp\\third_party\\ffmpeg-android\\x86\\lib\\libswresample.a",
"role" : "libraries"
},
{
- "backtrace" : 2,
+ "backtrace" : 3,
"fragment" : "D:\\MyProject\\kcompressor\\app\\src\\main\\cpp\\third_party\\ffmpeg-android\\x86\\lib\\libavutil.a",
"role" : "libraries"
},
{
- "backtrace" : 2,
+ "backtrace" : 3,
"fragment" : "D:\\MyProject\\kcompressor\\app\\src\\main\\cpp\\third_party\\ffmpeg-android\\x86\\lib\\libx264.a",
"role" : "libraries"
},
{
- "backtrace" : 2,
+ "backtrace" : 3,
"fragment" : "D:\\MyProject\\kcompressor\\app\\src\\main\\cpp\\third_party\\ffmpeg-android\\x86\\lib\\libx265.a",
"role" : "libraries"
},
{
- "backtrace" : 2,
+ "backtrace" : 3,
+ "fragment" : "D:\\MyProject\\kcompressor\\app\\src\\main\\cpp\\third_party\\android-image-compres\\x86\\lib\\libturbojpeg.a",
+ "role" : "libraries"
+ },
+ {
+ "backtrace" : 3,
+ "fragment" : "D:\\MyProject\\kcompressor\\app\\src\\main\\cpp\\third_party\\android-image-compres\\x86\\lib\\libjpeg.a",
+ "role" : "libraries"
+ },
+ {
+ "backtrace" : 3,
+ "fragment" : "D:\\MyProject\\kcompressor\\app\\src\\main\\cpp\\third_party\\android-image-compres\\x86\\lib\\libwebp.a",
+ "role" : "libraries"
+ },
+ {
+ "backtrace" : 3,
+ "fragment" : "D:\\MyProject\\kcompressor\\app\\src\\main\\cpp\\third_party\\android-image-compres\\x86\\lib\\libsharpyuv.a",
+ "role" : "libraries"
+ },
+ {
+ "backtrace" : 3,
+ "fragment" : "D:\\MyProject\\kcompressor\\app\\src\\main\\cpp\\third_party\\android-image-compres\\x86\\lib\\libavif.a",
+ "role" : "libraries"
+ },
+ {
+ "backtrace" : 3,
+ "fragment" : "D:\\MyProject\\kcompressor\\app\\src\\main\\cpp\\third_party\\android-image-compres\\x86\\lib\\libaom.a",
+ "role" : "libraries"
+ },
+ {
+ "backtrace" : 3,
+ "fragment" : "D:\\MyProject\\kcompressor\\app\\src\\main\\cpp\\third_party\\android-image-compres\\x86\\lib\\libyuv.a",
+ "role" : "libraries"
+ },
+ {
+ "backtrace" : 3,
+ "fragment" : "D:\\MyProject\\kcompressor\\app\\src\\main\\cpp\\third_party\\android-image-compres\\x86\\lib\\libimagequant.a",
+ "role" : "libraries"
+ },
+ {
+ "backtrace" : 3,
+ "fragment" : "D:\\MyProject\\kcompressor\\app\\src\\main\\cpp\\third_party\\android-image-compres\\x86\\lib\\liboxipng_ffi.a",
+ "role" : "libraries"
+ },
+ {
+ "backtrace" : 3,
+ "fragment" : "D:\\MyProject\\kcompressor\\app\\src\\main\\cpp\\third_party\\android-image-compres\\x86\\lib\\libkimage_png.a",
+ "role" : "libraries"
+ },
+ {
+ "backtrace" : 3,
"fragment" : "-Wl,--end-group",
"role" : "libraries"
},
{
- "backtrace" : 2,
+ "backtrace" : 3,
"fragment" : "-landroid",
"role" : "libraries"
},
{
- "backtrace" : 2,
+ "backtrace" : 3,
"fragment" : "-llog",
"role" : "libraries"
},
{
- "backtrace" : 2,
+ "backtrace" : 3,
"fragment" : "-lz",
"role" : "libraries"
},
{
- "backtrace" : 2,
+ "backtrace" : 3,
"fragment" : "-lm",
"role" : "libraries"
},
{
- "backtrace" : 2,
+ "backtrace" : 3,
"fragment" : "-ldl",
"role" : "libraries"
},
{
- "backtrace" : 2,
+ "backtrace" : 3,
+ "fragment" : "-latomic",
+ "role" : "libraries"
+ },
+ {
+ "backtrace" : 3,
"fragment" : "-lc++_static",
"role" : "libraries"
},
@@ -216,7 +308,10 @@
"name" : "Source Files",
"sourceIndexes" :
[
- 0
+ 0,
+ 1,
+ 2,
+ 3
]
}
],
@@ -227,6 +322,24 @@
"compileGroupIndex" : 0,
"path" : "native_compressor.cpp",
"sourceGroupIndex" : 0
+ },
+ {
+ "backtrace" : 1,
+ "compileGroupIndex" : 0,
+ "path" : "compressor_common.cpp",
+ "sourceGroupIndex" : 0
+ },
+ {
+ "backtrace" : 1,
+ "compileGroupIndex" : 0,
+ "path" : "video_compressor.cpp",
+ "sourceGroupIndex" : 0
+ },
+ {
+ "backtrace" : 1,
+ "compileGroupIndex" : 0,
+ "path" : "image_compressor.cpp",
+ "sourceGroupIndex" : 0
}
],
"type" : "SHARED_LIBRARY"
diff --git a/app/.cxx/RelWithDebInfo/1j3m5w6j/x86/.ninja_deps b/app/.cxx/RelWithDebInfo/1j3m5w6j/x86/.ninja_deps
new file mode 100644
index 0000000..e5675ec
Binary files /dev/null and b/app/.cxx/RelWithDebInfo/1j3m5w6j/x86/.ninja_deps differ
diff --git a/app/.cxx/RelWithDebInfo/1j3m5w6j/x86/.ninja_log b/app/.cxx/RelWithDebInfo/1j3m5w6j/x86/.ninja_log
index 16bb236..c98d520 100644
--- a/app/.cxx/RelWithDebInfo/1j3m5w6j/x86/.ninja_log
+++ b/app/.cxx/RelWithDebInfo/1j3m5w6j/x86/.ninja_log
@@ -1,9 +1,7 @@
# ninja log v5
0 9 0 clean 267b28daf0e986
-0 9 0 clean 267b28daf0e986
-0 9 0 clean 267b28daf0e986
+0 92 8029096599849065 build.ninja af12574c3879f389
+1 8 0 clean 267b28daf0e986
0 8 0 clean 267b28daf0e986
0 8 0 clean 267b28daf0e986
-1 11 0 clean 267b28daf0e986
-1 9 0 clean 267b28daf0e986
-1 12 0 clean 267b28daf0e986
+0 9 0 clean 267b28daf0e986
diff --git a/app/.cxx/RelWithDebInfo/1j3m5w6j/x86/build.ninja b/app/.cxx/RelWithDebInfo/1j3m5w6j/x86/build.ninja
index fd5f680..b7d8745 100644
--- a/app/.cxx/RelWithDebInfo/1j3m5w6j/x86/build.ninja
+++ b/app/.cxx/RelWithDebInfo/1j3m5w6j/x86/build.ninja
@@ -52,12 +52,34 @@ build cmake_object_order_depends_target_kcompressor: phony || CMakeFiles/kcompre
build CMakeFiles/kcompressor.dir/native_compressor.cpp.o: CXX_COMPILER__kcompressor_RelWithDebInfo D$:/MyProject/kcompressor/app/src/main/cpp/native_compressor.cpp || cmake_object_order_depends_target_kcompressor
DEFINES = -Dkcompressor_EXPORTS
DEP_FILE = CMakeFiles\kcompressor.dir\native_compressor.cpp.o.d
- FLAGS = -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -mstackrealign -D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -std=c++17 -fexceptions -frtti -O2 -g -DNDEBUG -fPIC -Wall -Wextra -Wno-unused-parameter
- INCLUDES = -ID:/MyProject/kcompressor/app/src/main/cpp/third_party/ffmpeg-android/x86/include -ID:/MyProject/kcompressor/app/src/main/cpp/third_party/ffmpeg-android/x86/include/x264 -ID:/MyProject/kcompressor/app/src/main/cpp/third_party/ffmpeg-android/x86/include/x265
+ FLAGS = -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -mstackrealign -D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -std=c++17 -fexceptions -frtti -O2 -g -DNDEBUG -fPIC -Wall -Wextra -Wno-unused-parameter -Wno-deprecated-declarations
+ INCLUDES = -ID:/MyProject/kcompressor/app/src/main/cpp -ID:/MyProject/kcompressor/app/src/main/cpp/third_party/ffmpeg-android/x86/include -ID:/MyProject/kcompressor/app/src/main/cpp/third_party/ffmpeg-android/x86/include/x264 -ID:/MyProject/kcompressor/app/src/main/cpp/third_party/ffmpeg-android/x86/include/x265 -ID:/MyProject/kcompressor/app/src/main/cpp/third_party/android-image-compres/x86/include
+ OBJECT_DIR = CMakeFiles\kcompressor.dir
+ OBJECT_FILE_DIR = CMakeFiles\kcompressor.dir
+
+build CMakeFiles/kcompressor.dir/compressor_common.cpp.o: CXX_COMPILER__kcompressor_RelWithDebInfo D$:/MyProject/kcompressor/app/src/main/cpp/compressor_common.cpp || cmake_object_order_depends_target_kcompressor
+ DEFINES = -Dkcompressor_EXPORTS
+ DEP_FILE = CMakeFiles\kcompressor.dir\compressor_common.cpp.o.d
+ FLAGS = -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -mstackrealign -D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -std=c++17 -fexceptions -frtti -O2 -g -DNDEBUG -fPIC -Wall -Wextra -Wno-unused-parameter -Wno-deprecated-declarations
+ INCLUDES = -ID:/MyProject/kcompressor/app/src/main/cpp -ID:/MyProject/kcompressor/app/src/main/cpp/third_party/ffmpeg-android/x86/include -ID:/MyProject/kcompressor/app/src/main/cpp/third_party/ffmpeg-android/x86/include/x264 -ID:/MyProject/kcompressor/app/src/main/cpp/third_party/ffmpeg-android/x86/include/x265 -ID:/MyProject/kcompressor/app/src/main/cpp/third_party/android-image-compres/x86/include
+ OBJECT_DIR = CMakeFiles\kcompressor.dir
+ OBJECT_FILE_DIR = CMakeFiles\kcompressor.dir
+
+build CMakeFiles/kcompressor.dir/video_compressor.cpp.o: CXX_COMPILER__kcompressor_RelWithDebInfo D$:/MyProject/kcompressor/app/src/main/cpp/video_compressor.cpp || cmake_object_order_depends_target_kcompressor
+ DEFINES = -Dkcompressor_EXPORTS
+ DEP_FILE = CMakeFiles\kcompressor.dir\video_compressor.cpp.o.d
+ FLAGS = -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -mstackrealign -D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -std=c++17 -fexceptions -frtti -O2 -g -DNDEBUG -fPIC -Wall -Wextra -Wno-unused-parameter -Wno-deprecated-declarations
+ INCLUDES = -ID:/MyProject/kcompressor/app/src/main/cpp -ID:/MyProject/kcompressor/app/src/main/cpp/third_party/ffmpeg-android/x86/include -ID:/MyProject/kcompressor/app/src/main/cpp/third_party/ffmpeg-android/x86/include/x264 -ID:/MyProject/kcompressor/app/src/main/cpp/third_party/ffmpeg-android/x86/include/x265 -ID:/MyProject/kcompressor/app/src/main/cpp/third_party/android-image-compres/x86/include
+ OBJECT_DIR = CMakeFiles\kcompressor.dir
+ OBJECT_FILE_DIR = CMakeFiles\kcompressor.dir
+
+build CMakeFiles/kcompressor.dir/image_compressor.cpp.o: CXX_COMPILER__kcompressor_RelWithDebInfo D$:/MyProject/kcompressor/app/src/main/cpp/image_compressor.cpp || cmake_object_order_depends_target_kcompressor
+ DEFINES = -Dkcompressor_EXPORTS
+ DEP_FILE = CMakeFiles\kcompressor.dir\image_compressor.cpp.o.d
+ FLAGS = -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -mstackrealign -D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -std=c++17 -fexceptions -frtti -O2 -g -DNDEBUG -fPIC -Wall -Wextra -Wno-unused-parameter -Wno-deprecated-declarations
+ INCLUDES = -ID:/MyProject/kcompressor/app/src/main/cpp -ID:/MyProject/kcompressor/app/src/main/cpp/third_party/ffmpeg-android/x86/include -ID:/MyProject/kcompressor/app/src/main/cpp/third_party/ffmpeg-android/x86/include/x264 -ID:/MyProject/kcompressor/app/src/main/cpp/third_party/ffmpeg-android/x86/include/x265 -ID:/MyProject/kcompressor/app/src/main/cpp/third_party/android-image-compres/x86/include
OBJECT_DIR = CMakeFiles\kcompressor.dir
OBJECT_FILE_DIR = CMakeFiles\kcompressor.dir
- TARGET_COMPILE_PDB = CMakeFiles\kcompressor.dir\
- TARGET_PDB = D:\MyProject\kcompressor\app\build\intermediates\cxx\RelWithDebInfo\1j3m5w6j\obj\x86\libkcompressor.pdb
# =============================================================================
@@ -67,18 +89,17 @@ build CMakeFiles/kcompressor.dir/native_compressor.cpp.o: CXX_COMPILER__kcompres
#############################################
# Link the shared library D:\MyProject\kcompressor\app\build\intermediates\cxx\RelWithDebInfo\1j3m5w6j\obj\x86\libkcompressor.so
-build D$:/MyProject/kcompressor/app/build/intermediates/cxx/RelWithDebInfo/1j3m5w6j/obj/x86/libkcompressor.so: CXX_SHARED_LIBRARY_LINKER__kcompressor_RelWithDebInfo CMakeFiles/kcompressor.dir/native_compressor.cpp.o | D$:/MyProject/kcompressor/app/src/main/cpp/third_party/ffmpeg-android/x86/lib/libavfilter.a D$:/MyProject/kcompressor/app/src/main/cpp/third_party/ffmpeg-android/x86/lib/libavformat.a D$:/MyProject/kcompressor/app/src/main/cpp/third_party/ffmpeg-android/x86/lib/libavcodec.a D$:/MyProject/kcompressor/app/src/main/cpp/third_party/ffmpeg-android/x86/lib/libswscale.a D$:/MyProject/kcompressor/app/src/main/cpp/third_party/ffmpeg-android/x86/lib/libswresample.a D$:/MyProject/kcompressor/app/src/main/cpp/third_party/ffmpeg-android/x86/lib/libavutil.a D$:/MyProject/kcompressor/app/src/main/cpp/third_party/ffmpeg-android/x86/lib/libx264.a D$:/MyProject/kcompressor/app/src/main/cpp/third_party/ffmpeg-android/x86/lib/libx265.a
+build D$:/MyProject/kcompressor/app/build/intermediates/cxx/RelWithDebInfo/1j3m5w6j/obj/x86/libkcompressor.so: CXX_SHARED_LIBRARY_LINKER__kcompressor_RelWithDebInfo CMakeFiles/kcompressor.dir/native_compressor.cpp.o CMakeFiles/kcompressor.dir/compressor_common.cpp.o CMakeFiles/kcompressor.dir/video_compressor.cpp.o CMakeFiles/kcompressor.dir/image_compressor.cpp.o | D$:/MyProject/kcompressor/app/src/main/cpp/third_party/ffmpeg-android/x86/lib/libavfilter.a D$:/MyProject/kcompressor/app/src/main/cpp/third_party/ffmpeg-android/x86/lib/libavformat.a D$:/MyProject/kcompressor/app/src/main/cpp/third_party/ffmpeg-android/x86/lib/libavcodec.a D$:/MyProject/kcompressor/app/src/main/cpp/third_party/ffmpeg-android/x86/lib/libswscale.a D$:/MyProject/kcompressor/app/src/main/cpp/third_party/ffmpeg-android/x86/lib/libswresample.a D$:/MyProject/kcompressor/app/src/main/cpp/third_party/ffmpeg-android/x86/lib/libavutil.a D$:/MyProject/kcompressor/app/src/main/cpp/third_party/ffmpeg-android/x86/lib/libx264.a D$:/MyProject/kcompressor/app/src/main/cpp/third_party/ffmpeg-android/x86/lib/libx265.a D$:/MyProject/kcompressor/app/src/main/cpp/third_party/android-image-compres/x86/lib/libturbojpeg.a D$:/MyProject/kcompressor/app/src/main/cpp/third_party/android-image-compres/x86/lib/libjpeg.a D$:/MyProject/kcompressor/app/src/main/cpp/third_party/android-image-compres/x86/lib/libwebp.a D$:/MyProject/kcompressor/app/src/main/cpp/third_party/android-image-compres/x86/lib/libsharpyuv.a D$:/MyProject/kcompressor/app/src/main/cpp/third_party/android-image-compres/x86/lib/libavif.a D$:/MyProject/kcompressor/app/src/main/cpp/third_party/android-image-compres/x86/lib/libaom.a D$:/MyProject/kcompressor/app/src/main/cpp/third_party/android-image-compres/x86/lib/libyuv.a D$:/MyProject/kcompressor/app/src/main/cpp/third_party/android-image-compres/x86/lib/libimagequant.a D$:/MyProject/kcompressor/app/src/main/cpp/third_party/android-image-compres/x86/lib/liboxipng_ffi.a D$:/MyProject/kcompressor/app/src/main/cpp/third_party/android-image-compres/x86/lib/libkimage_png.a
LANGUAGE_COMPILE_FLAGS = -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -mstackrealign -D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -std=c++17 -fexceptions -frtti -O2 -g -DNDEBUG
- LINK_FLAGS = -static-libstdc++ -Wl,--build-id=sha1 -Wl,--no-rosegment -Wl,--no-undefined-version -Wl,--fatal-warnings -Wl,--no-undefined -Qunused-arguments -Wl,--gc-sections
- LINK_LIBRARIES = -Wl,--start-group D:/MyProject/kcompressor/app/src/main/cpp/third_party/ffmpeg-android/x86/lib/libavfilter.a D:/MyProject/kcompressor/app/src/main/cpp/third_party/ffmpeg-android/x86/lib/libavformat.a D:/MyProject/kcompressor/app/src/main/cpp/third_party/ffmpeg-android/x86/lib/libavcodec.a D:/MyProject/kcompressor/app/src/main/cpp/third_party/ffmpeg-android/x86/lib/libswscale.a D:/MyProject/kcompressor/app/src/main/cpp/third_party/ffmpeg-android/x86/lib/libswresample.a D:/MyProject/kcompressor/app/src/main/cpp/third_party/ffmpeg-android/x86/lib/libavutil.a D:/MyProject/kcompressor/app/src/main/cpp/third_party/ffmpeg-android/x86/lib/libx264.a D:/MyProject/kcompressor/app/src/main/cpp/third_party/ffmpeg-android/x86/lib/libx265.a -Wl,--end-group -landroid -llog -lz -lm -ldl -lc++_static -latomic -lm
+ LINK_FLAGS = -static-libstdc++ -Wl,--build-id=sha1 -Wl,--no-rosegment -Wl,--no-undefined-version -Wl,--fatal-warnings -Wl,--no-undefined -Qunused-arguments -Wl,--gc-sections -Wl,--allow-multiple-definition -Wl,--exclude-libs,libimagequant.a -Wl,--exclude-libs,liboxipng_ffi.a
+ LINK_LIBRARIES = -Wl,--start-group D:/MyProject/kcompressor/app/src/main/cpp/third_party/ffmpeg-android/x86/lib/libavfilter.a D:/MyProject/kcompressor/app/src/main/cpp/third_party/ffmpeg-android/x86/lib/libavformat.a D:/MyProject/kcompressor/app/src/main/cpp/third_party/ffmpeg-android/x86/lib/libavcodec.a D:/MyProject/kcompressor/app/src/main/cpp/third_party/ffmpeg-android/x86/lib/libswscale.a D:/MyProject/kcompressor/app/src/main/cpp/third_party/ffmpeg-android/x86/lib/libswresample.a D:/MyProject/kcompressor/app/src/main/cpp/third_party/ffmpeg-android/x86/lib/libavutil.a D:/MyProject/kcompressor/app/src/main/cpp/third_party/ffmpeg-android/x86/lib/libx264.a D:/MyProject/kcompressor/app/src/main/cpp/third_party/ffmpeg-android/x86/lib/libx265.a D:/MyProject/kcompressor/app/src/main/cpp/third_party/android-image-compres/x86/lib/libturbojpeg.a D:/MyProject/kcompressor/app/src/main/cpp/third_party/android-image-compres/x86/lib/libjpeg.a D:/MyProject/kcompressor/app/src/main/cpp/third_party/android-image-compres/x86/lib/libwebp.a D:/MyProject/kcompressor/app/src/main/cpp/third_party/android-image-compres/x86/lib/libsharpyuv.a D:/MyProject/kcompressor/app/src/main/cpp/third_party/android-image-compres/x86/lib/libavif.a D:/MyProject/kcompressor/app/src/main/cpp/third_party/android-image-compres/x86/lib/libaom.a D:/MyProject/kcompressor/app/src/main/cpp/third_party/android-image-compres/x86/lib/libyuv.a D:/MyProject/kcompressor/app/src/main/cpp/third_party/android-image-compres/x86/lib/libimagequant.a D:/MyProject/kcompressor/app/src/main/cpp/third_party/android-image-compres/x86/lib/liboxipng_ffi.a D:/MyProject/kcompressor/app/src/main/cpp/third_party/android-image-compres/x86/lib/libkimage_png.a -Wl,--end-group -landroid -llog -lz -lm -ldl -latomic -lc++_static -latomic -lm
OBJECT_DIR = CMakeFiles\kcompressor.dir
POST_BUILD = cd .
PRE_LINK = cd .
SONAME = libkcompressor.so
SONAME_FLAG = -Wl,-soname,
- TARGET_COMPILE_PDB = CMakeFiles\kcompressor.dir\
TARGET_FILE = D:\MyProject\kcompressor\app\build\intermediates\cxx\RelWithDebInfo\1j3m5w6j\obj\x86\libkcompressor.so
- TARGET_PDB = D:\MyProject\kcompressor\app\build\intermediates\cxx\RelWithDebInfo\1j3m5w6j\obj\x86\libkcompressor.pdb
+ TARGET_PDB = kcompressor.so.dbg
#############################################
@@ -127,14 +148,14 @@ build all: phony D$:/MyProject/kcompressor/app/build/intermediates/cxx/RelWithDe
#############################################
# Re-run CMake if any of its inputs changed.
-build build.ninja: RERUN_CMAKE | CMakeCache.txt CMakeFiles/3.22.1-g37088a8-dirty/CMakeCCompiler.cmake CMakeFiles/3.22.1-g37088a8-dirty/CMakeCXXCompiler.cmake CMakeFiles/3.22.1-g37088a8-dirty/CMakeSystem.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCCompiler.cmake.in D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCCompilerABI.c D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCInformation.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCXXCompiler.cmake.in D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCXXCompilerABI.cpp D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCXXInformation.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCommonLanguageInclude.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCompilerIdDetection.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCXXCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCompileFeatures.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCompilerABI.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCompilerId.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineSystem.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeFindBinUtils.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeGenericSystem.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeInitializeConfigs.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeLanguageInformation.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeParseImplicitIncludeInfo.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeParseImplicitLinkInfo.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeParseLibraryArchitecture.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeSystem.cmake.in D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeSystemSpecificInformation.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeSystemSpecificInitialize.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeTestCCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeTestCXXCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeTestCompilerCommon.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/ADSP-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/ARMCC-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/ARMClang-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/AppleClang-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Borland-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Bruce-C-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/CMakeCommonCompilerMacros.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-C.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-CXX.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-DetermineCompilerInternal.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-FindBinUtils.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Comeau-CXX-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Compaq-C-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Compaq-CXX-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Cray-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Embarcadero-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Fujitsu-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/FujitsuClang-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/GHS-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/GNU-C-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/GNU-CXX-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/GNU.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/HP-C-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/HP-CXX-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/IAR-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/IBMCPP-C-DetermineVersionInternal.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/IBMCPP-CXX-DetermineVersionInternal.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Intel-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/IntelLLVM-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/MSVC-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/NVHPC-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/NVIDIA-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/OpenWatcom-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/PGI-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/PathScale-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/SCO-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/SDCC-C-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/SunPro-C-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/SunPro-CXX-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/TI-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/TinyCC-C-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/VisualAge-C-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/VisualAge-CXX-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Watcom-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/XL-C-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/XL-CXX-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/XLClang-C-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/XLClang-CXX-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/zOS-C-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/zOS-CXX-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Internal/FeatureTesting.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Clang-C.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Clang-CXX.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Clang.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Determine-C.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Determine-CXX.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Determine.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Initialize.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android/Determine-Compiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Linux.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/UnixPaths.cmake D$:/Android/sdk/ndk/28.2.13676358/build/cmake/abis.cmake D$:/Android/sdk/ndk/28.2.13676358/build/cmake/android-legacy.toolchain.cmake D$:/Android/sdk/ndk/28.2.13676358/build/cmake/android.toolchain.cmake D$:/Android/sdk/ndk/28.2.13676358/build/cmake/flags.cmake D$:/Android/sdk/ndk/28.2.13676358/build/cmake/hooks/pre/Android-Clang.cmake D$:/Android/sdk/ndk/28.2.13676358/build/cmake/hooks/pre/Android-Determine.cmake D$:/Android/sdk/ndk/28.2.13676358/build/cmake/hooks/pre/Android-Initialize.cmake D$:/Android/sdk/ndk/28.2.13676358/build/cmake/hooks/pre/Android.cmake D$:/Android/sdk/ndk/28.2.13676358/build/cmake/hooks/pre/Determine-Compiler.cmake D$:/Android/sdk/ndk/28.2.13676358/build/cmake/platforms.cmake D$:/MyProject/kcompressor/app/src/main/cpp/CMakeLists.txt
+build build.ninja: RERUN_CMAKE | CMakeCache.txt CMakeFiles/3.22.1-g37088a8-dirty/CMakeCCompiler.cmake CMakeFiles/3.22.1-g37088a8-dirty/CMakeCXXCompiler.cmake CMakeFiles/3.22.1-g37088a8-dirty/CMakeSystem.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCInformation.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCXXInformation.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCommonLanguageInclude.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeGenericSystem.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeInitializeConfigs.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeLanguageInformation.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeSystemSpecificInformation.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeSystemSpecificInitialize.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/CMakeCommonCompilerMacros.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-C.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-CXX.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/GNU.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Clang-C.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Clang-CXX.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Clang.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Initialize.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Linux.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/UnixPaths.cmake D$:/Android/sdk/ndk/28.2.13676358/build/cmake/abis.cmake D$:/Android/sdk/ndk/28.2.13676358/build/cmake/android-legacy.toolchain.cmake D$:/Android/sdk/ndk/28.2.13676358/build/cmake/android.toolchain.cmake D$:/Android/sdk/ndk/28.2.13676358/build/cmake/flags.cmake D$:/Android/sdk/ndk/28.2.13676358/build/cmake/hooks/pre/Android-Clang.cmake D$:/Android/sdk/ndk/28.2.13676358/build/cmake/hooks/pre/Android-Initialize.cmake D$:/Android/sdk/ndk/28.2.13676358/build/cmake/hooks/pre/Android.cmake D$:/Android/sdk/ndk/28.2.13676358/build/cmake/platforms.cmake D$:/MyProject/kcompressor/app/src/main/cpp/CMakeLists.txt
pool = console
#############################################
# A missing CMake input file is not an error.
-build CMakeCache.txt CMakeFiles/3.22.1-g37088a8-dirty/CMakeCCompiler.cmake CMakeFiles/3.22.1-g37088a8-dirty/CMakeCXXCompiler.cmake CMakeFiles/3.22.1-g37088a8-dirty/CMakeSystem.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCCompiler.cmake.in D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCCompilerABI.c D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCInformation.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCXXCompiler.cmake.in D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCXXCompilerABI.cpp D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCXXInformation.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCommonLanguageInclude.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCompilerIdDetection.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCXXCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCompileFeatures.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCompilerABI.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineCompilerId.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeDetermineSystem.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeFindBinUtils.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeGenericSystem.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeInitializeConfigs.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeLanguageInformation.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeParseImplicitIncludeInfo.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeParseImplicitLinkInfo.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeParseLibraryArchitecture.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeSystem.cmake.in D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeSystemSpecificInformation.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeSystemSpecificInitialize.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeTestCCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeTestCXXCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeTestCompilerCommon.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/ADSP-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/ARMCC-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/ARMClang-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/AppleClang-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Borland-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Bruce-C-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/CMakeCommonCompilerMacros.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-C.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-CXX.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-DetermineCompilerInternal.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-FindBinUtils.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Comeau-CXX-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Compaq-C-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Compaq-CXX-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Cray-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Embarcadero-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Fujitsu-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/FujitsuClang-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/GHS-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/GNU-C-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/GNU-CXX-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/GNU.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/HP-C-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/HP-CXX-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/IAR-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/IBMCPP-C-DetermineVersionInternal.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/IBMCPP-CXX-DetermineVersionInternal.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Intel-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/IntelLLVM-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/MSVC-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/NVHPC-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/NVIDIA-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/OpenWatcom-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/PGI-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/PathScale-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/SCO-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/SDCC-C-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/SunPro-C-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/SunPro-CXX-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/TI-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/TinyCC-C-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/VisualAge-C-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/VisualAge-CXX-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Watcom-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/XL-C-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/XL-CXX-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/XLClang-C-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/XLClang-CXX-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/zOS-C-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/zOS-CXX-DetermineCompiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Internal/FeatureTesting.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Clang-C.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Clang-CXX.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Clang.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Determine-C.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Determine-CXX.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Determine.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Initialize.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android/Determine-Compiler.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Linux.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/UnixPaths.cmake D$:/Android/sdk/ndk/28.2.13676358/build/cmake/abis.cmake D$:/Android/sdk/ndk/28.2.13676358/build/cmake/android-legacy.toolchain.cmake D$:/Android/sdk/ndk/28.2.13676358/build/cmake/android.toolchain.cmake D$:/Android/sdk/ndk/28.2.13676358/build/cmake/flags.cmake D$:/Android/sdk/ndk/28.2.13676358/build/cmake/hooks/pre/Android-Clang.cmake D$:/Android/sdk/ndk/28.2.13676358/build/cmake/hooks/pre/Android-Determine.cmake D$:/Android/sdk/ndk/28.2.13676358/build/cmake/hooks/pre/Android-Initialize.cmake D$:/Android/sdk/ndk/28.2.13676358/build/cmake/hooks/pre/Android.cmake D$:/Android/sdk/ndk/28.2.13676358/build/cmake/hooks/pre/Determine-Compiler.cmake D$:/Android/sdk/ndk/28.2.13676358/build/cmake/platforms.cmake D$:/MyProject/kcompressor/app/src/main/cpp/CMakeLists.txt: phony
+build CMakeCache.txt CMakeFiles/3.22.1-g37088a8-dirty/CMakeCCompiler.cmake CMakeFiles/3.22.1-g37088a8-dirty/CMakeCXXCompiler.cmake CMakeFiles/3.22.1-g37088a8-dirty/CMakeSystem.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCInformation.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCXXInformation.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeCommonLanguageInclude.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeGenericSystem.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeInitializeConfigs.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeLanguageInformation.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeSystemSpecificInformation.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/CMakeSystemSpecificInitialize.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/CMakeCommonCompilerMacros.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-C.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang-CXX.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/Clang.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Compiler/GNU.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Clang-C.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Clang-CXX.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Clang.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android-Initialize.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Android.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/Linux.cmake D$:/Android/sdk/cmake/3.22.1/share/cmake-3.22/Modules/Platform/UnixPaths.cmake D$:/Android/sdk/ndk/28.2.13676358/build/cmake/abis.cmake D$:/Android/sdk/ndk/28.2.13676358/build/cmake/android-legacy.toolchain.cmake D$:/Android/sdk/ndk/28.2.13676358/build/cmake/android.toolchain.cmake D$:/Android/sdk/ndk/28.2.13676358/build/cmake/flags.cmake D$:/Android/sdk/ndk/28.2.13676358/build/cmake/hooks/pre/Android-Clang.cmake D$:/Android/sdk/ndk/28.2.13676358/build/cmake/hooks/pre/Android-Initialize.cmake D$:/Android/sdk/ndk/28.2.13676358/build/cmake/hooks/pre/Android.cmake D$:/Android/sdk/ndk/28.2.13676358/build/cmake/platforms.cmake D$:/MyProject/kcompressor/app/src/main/cpp/CMakeLists.txt: phony
#############################################
diff --git a/app/.cxx/RelWithDebInfo/1j3m5w6j/x86/compile_commands.json b/app/.cxx/RelWithDebInfo/1j3m5w6j/x86/compile_commands.json
index 85f0f81..43d9a00 100644
--- a/app/.cxx/RelWithDebInfo/1j3m5w6j/x86/compile_commands.json
+++ b/app/.cxx/RelWithDebInfo/1j3m5w6j/x86/compile_commands.json
@@ -1,7 +1,22 @@
[
{
"directory": "D:/MyProject/kcompressor/app/.cxx/RelWithDebInfo/1j3m5w6j/x86",
- "command": "D:\\Android\\sdk\\ndk\\28.2.13676358\\toolchains\\llvm\\prebuilt\\windows-x86_64\\bin\\clang++.exe --target=i686-none-linux-android21 --sysroot=D:/Android/sdk/ndk/28.2.13676358/toolchains/llvm/prebuilt/windows-x86_64/sysroot -Dkcompressor_EXPORTS -ID:/MyProject/kcompressor/app/src/main/cpp/third_party/ffmpeg-android/x86/include -ID:/MyProject/kcompressor/app/src/main/cpp/third_party/ffmpeg-android/x86/include/x264 -ID:/MyProject/kcompressor/app/src/main/cpp/third_party/ffmpeg-android/x86/include/x265 -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -mstackrealign -D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -std=c++17 -fexceptions -frtti -O2 -g -DNDEBUG -fPIC -Wall -Wextra -Wno-unused-parameter -o CMakeFiles\\kcompressor.dir\\native_compressor.cpp.o -c D:\\MyProject\\kcompressor\\app\\src\\main\\cpp\\native_compressor.cpp",
+ "command": "D:\\Android\\sdk\\ndk\\28.2.13676358\\toolchains\\llvm\\prebuilt\\windows-x86_64\\bin\\clang++.exe --target=i686-none-linux-android21 --sysroot=D:/Android/sdk/ndk/28.2.13676358/toolchains/llvm/prebuilt/windows-x86_64/sysroot -Dkcompressor_EXPORTS -ID:/MyProject/kcompressor/app/src/main/cpp -ID:/MyProject/kcompressor/app/src/main/cpp/third_party/ffmpeg-android/x86/include -ID:/MyProject/kcompressor/app/src/main/cpp/third_party/ffmpeg-android/x86/include/x264 -ID:/MyProject/kcompressor/app/src/main/cpp/third_party/ffmpeg-android/x86/include/x265 -ID:/MyProject/kcompressor/app/src/main/cpp/third_party/android-image-compres/x86/include -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -mstackrealign -D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -std=c++17 -fexceptions -frtti -O2 -g -DNDEBUG -fPIC -Wall -Wextra -Wno-unused-parameter -Wno-deprecated-declarations -o CMakeFiles\\kcompressor.dir\\native_compressor.cpp.o -c D:\\MyProject\\kcompressor\\app\\src\\main\\cpp\\native_compressor.cpp",
"file": "D:\\MyProject\\kcompressor\\app\\src\\main\\cpp\\native_compressor.cpp"
+},
+{
+ "directory": "D:/MyProject/kcompressor/app/.cxx/RelWithDebInfo/1j3m5w6j/x86",
+ "command": "D:\\Android\\sdk\\ndk\\28.2.13676358\\toolchains\\llvm\\prebuilt\\windows-x86_64\\bin\\clang++.exe --target=i686-none-linux-android21 --sysroot=D:/Android/sdk/ndk/28.2.13676358/toolchains/llvm/prebuilt/windows-x86_64/sysroot -Dkcompressor_EXPORTS -ID:/MyProject/kcompressor/app/src/main/cpp -ID:/MyProject/kcompressor/app/src/main/cpp/third_party/ffmpeg-android/x86/include -ID:/MyProject/kcompressor/app/src/main/cpp/third_party/ffmpeg-android/x86/include/x264 -ID:/MyProject/kcompressor/app/src/main/cpp/third_party/ffmpeg-android/x86/include/x265 -ID:/MyProject/kcompressor/app/src/main/cpp/third_party/android-image-compres/x86/include -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -mstackrealign -D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -std=c++17 -fexceptions -frtti -O2 -g -DNDEBUG -fPIC -Wall -Wextra -Wno-unused-parameter -Wno-deprecated-declarations -o CMakeFiles\\kcompressor.dir\\compressor_common.cpp.o -c D:\\MyProject\\kcompressor\\app\\src\\main\\cpp\\compressor_common.cpp",
+ "file": "D:\\MyProject\\kcompressor\\app\\src\\main\\cpp\\compressor_common.cpp"
+},
+{
+ "directory": "D:/MyProject/kcompressor/app/.cxx/RelWithDebInfo/1j3m5w6j/x86",
+ "command": "D:\\Android\\sdk\\ndk\\28.2.13676358\\toolchains\\llvm\\prebuilt\\windows-x86_64\\bin\\clang++.exe --target=i686-none-linux-android21 --sysroot=D:/Android/sdk/ndk/28.2.13676358/toolchains/llvm/prebuilt/windows-x86_64/sysroot -Dkcompressor_EXPORTS -ID:/MyProject/kcompressor/app/src/main/cpp -ID:/MyProject/kcompressor/app/src/main/cpp/third_party/ffmpeg-android/x86/include -ID:/MyProject/kcompressor/app/src/main/cpp/third_party/ffmpeg-android/x86/include/x264 -ID:/MyProject/kcompressor/app/src/main/cpp/third_party/ffmpeg-android/x86/include/x265 -ID:/MyProject/kcompressor/app/src/main/cpp/third_party/android-image-compres/x86/include -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -mstackrealign -D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -std=c++17 -fexceptions -frtti -O2 -g -DNDEBUG -fPIC -Wall -Wextra -Wno-unused-parameter -Wno-deprecated-declarations -o CMakeFiles\\kcompressor.dir\\video_compressor.cpp.o -c D:\\MyProject\\kcompressor\\app\\src\\main\\cpp\\video_compressor.cpp",
+ "file": "D:\\MyProject\\kcompressor\\app\\src\\main\\cpp\\video_compressor.cpp"
+},
+{
+ "directory": "D:/MyProject/kcompressor/app/.cxx/RelWithDebInfo/1j3m5w6j/x86",
+ "command": "D:\\Android\\sdk\\ndk\\28.2.13676358\\toolchains\\llvm\\prebuilt\\windows-x86_64\\bin\\clang++.exe --target=i686-none-linux-android21 --sysroot=D:/Android/sdk/ndk/28.2.13676358/toolchains/llvm/prebuilt/windows-x86_64/sysroot -Dkcompressor_EXPORTS -ID:/MyProject/kcompressor/app/src/main/cpp -ID:/MyProject/kcompressor/app/src/main/cpp/third_party/ffmpeg-android/x86/include -ID:/MyProject/kcompressor/app/src/main/cpp/third_party/ffmpeg-android/x86/include/x264 -ID:/MyProject/kcompressor/app/src/main/cpp/third_party/ffmpeg-android/x86/include/x265 -ID:/MyProject/kcompressor/app/src/main/cpp/third_party/android-image-compres/x86/include -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -mstackrealign -D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -std=c++17 -fexceptions -frtti -O2 -g -DNDEBUG -fPIC -Wall -Wextra -Wno-unused-parameter -Wno-deprecated-declarations -o CMakeFiles\\kcompressor.dir\\image_compressor.cpp.o -c D:\\MyProject\\kcompressor\\app\\src\\main\\cpp\\image_compressor.cpp",
+ "file": "D:\\MyProject\\kcompressor\\app\\src\\main\\cpp\\image_compressor.cpp"
}
]
\ No newline at end of file
diff --git a/app/.cxx/tools/debug/arm64-v8a/compile_commands.json b/app/.cxx/tools/debug/arm64-v8a/compile_commands.json
index 651bfb6..ede292a 100644
--- a/app/.cxx/tools/debug/arm64-v8a/compile_commands.json
+++ b/app/.cxx/tools/debug/arm64-v8a/compile_commands.json
@@ -1,7 +1,22 @@
[
{
"directory": "D:/MyProject/kcompressor/app/.cxx/Debug/j1t3m4l4/arm64-v8a",
- "command": "D:\\Android\\sdk\\ndk\\28.2.13676358\\toolchains\\llvm\\prebuilt\\windows-x86_64\\bin\\clang++.exe --target=aarch64-none-linux-android21 --sysroot=D:/Android/sdk/ndk/28.2.13676358/toolchains/llvm/prebuilt/windows-x86_64/sysroot -Dkcompressor_EXPORTS -ID:/MyProject/kcompressor/app/src/main/cpp/third_party/ffmpeg-android/arm64-v8a/include -ID:/MyProject/kcompressor/app/src/main/cpp/third_party/ffmpeg-android/arm64-v8a/include/x264 -ID:/MyProject/kcompressor/app/src/main/cpp/third_party/ffmpeg-android/arm64-v8a/include/x265 -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -std=c++17 -fexceptions -frtti -fno-limit-debug-info -fPIC -Wall -Wextra -Wno-unused-parameter -o CMakeFiles\\kcompressor.dir\\native_compressor.cpp.o -c D:\\MyProject\\kcompressor\\app\\src\\main\\cpp\\native_compressor.cpp",
+ "command": "D:\\Android\\sdk\\ndk\\28.2.13676358\\toolchains\\llvm\\prebuilt\\windows-x86_64\\bin\\clang++.exe --target=aarch64-none-linux-android21 --sysroot=D:/Android/sdk/ndk/28.2.13676358/toolchains/llvm/prebuilt/windows-x86_64/sysroot -Dkcompressor_EXPORTS -ID:/MyProject/kcompressor/app/src/main/cpp -ID:/MyProject/kcompressor/app/src/main/cpp/third_party/ffmpeg-android/arm64-v8a/include -ID:/MyProject/kcompressor/app/src/main/cpp/third_party/ffmpeg-android/arm64-v8a/include/x264 -ID:/MyProject/kcompressor/app/src/main/cpp/third_party/ffmpeg-android/arm64-v8a/include/x265 -ID:/MyProject/kcompressor/app/src/main/cpp/third_party/android-image-compres/arm64-v8a/include -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -std=c++17 -fexceptions -frtti -fno-limit-debug-info -fPIC -Wall -Wextra -Wno-unused-parameter -Wno-deprecated-declarations -o CMakeFiles\\kcompressor.dir\\native_compressor.cpp.o -c D:\\MyProject\\kcompressor\\app\\src\\main\\cpp\\native_compressor.cpp",
"file": "D:\\MyProject\\kcompressor\\app\\src\\main\\cpp\\native_compressor.cpp"
+},
+{
+ "directory": "D:/MyProject/kcompressor/app/.cxx/Debug/j1t3m4l4/arm64-v8a",
+ "command": "D:\\Android\\sdk\\ndk\\28.2.13676358\\toolchains\\llvm\\prebuilt\\windows-x86_64\\bin\\clang++.exe --target=aarch64-none-linux-android21 --sysroot=D:/Android/sdk/ndk/28.2.13676358/toolchains/llvm/prebuilt/windows-x86_64/sysroot -Dkcompressor_EXPORTS -ID:/MyProject/kcompressor/app/src/main/cpp -ID:/MyProject/kcompressor/app/src/main/cpp/third_party/ffmpeg-android/arm64-v8a/include -ID:/MyProject/kcompressor/app/src/main/cpp/third_party/ffmpeg-android/arm64-v8a/include/x264 -ID:/MyProject/kcompressor/app/src/main/cpp/third_party/ffmpeg-android/arm64-v8a/include/x265 -ID:/MyProject/kcompressor/app/src/main/cpp/third_party/android-image-compres/arm64-v8a/include -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -std=c++17 -fexceptions -frtti -fno-limit-debug-info -fPIC -Wall -Wextra -Wno-unused-parameter -Wno-deprecated-declarations -o CMakeFiles\\kcompressor.dir\\compressor_common.cpp.o -c D:\\MyProject\\kcompressor\\app\\src\\main\\cpp\\compressor_common.cpp",
+ "file": "D:\\MyProject\\kcompressor\\app\\src\\main\\cpp\\compressor_common.cpp"
+},
+{
+ "directory": "D:/MyProject/kcompressor/app/.cxx/Debug/j1t3m4l4/arm64-v8a",
+ "command": "D:\\Android\\sdk\\ndk\\28.2.13676358\\toolchains\\llvm\\prebuilt\\windows-x86_64\\bin\\clang++.exe --target=aarch64-none-linux-android21 --sysroot=D:/Android/sdk/ndk/28.2.13676358/toolchains/llvm/prebuilt/windows-x86_64/sysroot -Dkcompressor_EXPORTS -ID:/MyProject/kcompressor/app/src/main/cpp -ID:/MyProject/kcompressor/app/src/main/cpp/third_party/ffmpeg-android/arm64-v8a/include -ID:/MyProject/kcompressor/app/src/main/cpp/third_party/ffmpeg-android/arm64-v8a/include/x264 -ID:/MyProject/kcompressor/app/src/main/cpp/third_party/ffmpeg-android/arm64-v8a/include/x265 -ID:/MyProject/kcompressor/app/src/main/cpp/third_party/android-image-compres/arm64-v8a/include -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -std=c++17 -fexceptions -frtti -fno-limit-debug-info -fPIC -Wall -Wextra -Wno-unused-parameter -Wno-deprecated-declarations -o CMakeFiles\\kcompressor.dir\\video_compressor.cpp.o -c D:\\MyProject\\kcompressor\\app\\src\\main\\cpp\\video_compressor.cpp",
+ "file": "D:\\MyProject\\kcompressor\\app\\src\\main\\cpp\\video_compressor.cpp"
+},
+{
+ "directory": "D:/MyProject/kcompressor/app/.cxx/Debug/j1t3m4l4/arm64-v8a",
+ "command": "D:\\Android\\sdk\\ndk\\28.2.13676358\\toolchains\\llvm\\prebuilt\\windows-x86_64\\bin\\clang++.exe --target=aarch64-none-linux-android21 --sysroot=D:/Android/sdk/ndk/28.2.13676358/toolchains/llvm/prebuilt/windows-x86_64/sysroot -Dkcompressor_EXPORTS -ID:/MyProject/kcompressor/app/src/main/cpp -ID:/MyProject/kcompressor/app/src/main/cpp/third_party/ffmpeg-android/arm64-v8a/include -ID:/MyProject/kcompressor/app/src/main/cpp/third_party/ffmpeg-android/arm64-v8a/include/x264 -ID:/MyProject/kcompressor/app/src/main/cpp/third_party/ffmpeg-android/arm64-v8a/include/x265 -ID:/MyProject/kcompressor/app/src/main/cpp/third_party/android-image-compres/arm64-v8a/include -g -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -std=c++17 -fexceptions -frtti -fno-limit-debug-info -fPIC -Wall -Wextra -Wno-unused-parameter -Wno-deprecated-declarations -o CMakeFiles\\kcompressor.dir\\image_compressor.cpp.o -c D:\\MyProject\\kcompressor\\app\\src\\main\\cpp\\image_compressor.cpp",
+ "file": "D:\\MyProject\\kcompressor\\app\\src\\main\\cpp\\image_compressor.cpp"
}
]
\ No newline at end of file
diff --git a/app/build/intermediates/android_res_source_set_path_map/debug/mapDebugSourceSetPaths/file-map.txt b/app/build/intermediates/android_res_source_set_path_map/debug/mapDebugSourceSetPaths/file-map.txt
deleted file mode 100644
index 9d1fc6d..0000000
--- a/app/build/intermediates/android_res_source_set_path_map/debug/mapDebugSourceSetPaths/file-map.txt
+++ /dev/null
@@ -1,9 +0,0 @@
-com.kikyps.kcompressor.app-pngs-0 D:\MyProject\kcompressor\app\build\generated\res\pngs\debug
-com.kikyps.kcompressor.app-resValues-1 D:\MyProject\kcompressor\app\build\generated\res\resValues\debug
-com.kikyps.kcompressor.app-updated_navigation_xml-2 D:\MyProject\kcompressor\app\build\generated\updated_navigation_xml\debug
-com.kikyps.kcompressor.app-mergeDebugResources-3 D:\MyProject\kcompressor\app\build\intermediates\incremental\debug\mergeDebugResources\merged.dir
-com.kikyps.kcompressor.app-mergeDebugResources-4 D:\MyProject\kcompressor\app\build\intermediates\incremental\debug\mergeDebugResources\stripped.dir
-com.kikyps.kcompressor.app-debug-5 D:\MyProject\kcompressor\app\build\intermediates\merged_res\debug\mergeDebugResources
-com.kikyps.kcompressor.app-debug-6 D:\MyProject\kcompressor\app\src\debug\res
-com.kikyps.kcompressor.app-main-7 D:\MyProject\kcompressor\app\src\main\res
-gradleHome-0 C:\Users\Admin\.gradle
\ No newline at end of file
diff --git a/app/build/intermediates/annotation_processor_list/debug/javaPreCompileDebug/annotationProcessors.json b/app/build/intermediates/annotation_processor_list/debug/javaPreCompileDebug/annotationProcessors.json
deleted file mode 100644
index 9e26dfe..0000000
--- a/app/build/intermediates/annotation_processor_list/debug/javaPreCompileDebug/annotationProcessors.json
+++ /dev/null
@@ -1 +0,0 @@
-{}
\ No newline at end of file
diff --git a/app/build/intermediates/apk/debug/app-debug.apk b/app/build/intermediates/apk/debug/app-debug.apk
deleted file mode 100644
index 6f595c0..0000000
Binary files a/app/build/intermediates/apk/debug/app-debug.apk and /dev/null differ
diff --git a/app/build/intermediates/apk/debug/output-metadata.json b/app/build/intermediates/apk/debug/output-metadata.json
deleted file mode 100644
index 6410e3f..0000000
--- a/app/build/intermediates/apk/debug/output-metadata.json
+++ /dev/null
@@ -1,21 +0,0 @@
-{
- "version": 3,
- "artifactType": {
- "type": "APK",
- "kind": "Directory"
- },
- "applicationId": "com.kikyps.kcompressor",
- "variantName": "debug",
- "elements": [
- {
- "type": "SINGLE",
- "filters": [],
- "attributes": [],
- "versionCode": 1,
- "versionName": "1.0",
- "outputFile": "app-debug.apk"
- }
- ],
- "elementType": "File",
- "minSdkVersionForDexing": 24
-}
\ No newline at end of file
diff --git a/app/build/intermediates/apk_ide_redirect_file/debug/createDebugApkListingFileRedirect/redirect.txt b/app/build/intermediates/apk_ide_redirect_file/debug/createDebugApkListingFileRedirect/redirect.txt
deleted file mode 100644
index 54b8921..0000000
--- a/app/build/intermediates/apk_ide_redirect_file/debug/createDebugApkListingFileRedirect/redirect.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-#- File Locator -
-listingFile=../../../apk/debug/output-metadata.json
diff --git a/app/build/intermediates/app_metadata/debug/writeDebugAppMetadata/app-metadata.properties b/app/build/intermediates/app_metadata/debug/writeDebugAppMetadata/app-metadata.properties
deleted file mode 100644
index 7f8bd41..0000000
--- a/app/build/intermediates/app_metadata/debug/writeDebugAppMetadata/app-metadata.properties
+++ /dev/null
@@ -1,2 +0,0 @@
-appMetadataVersion=1.1
-androidGradlePluginVersion=9.2.1
diff --git a/app/build/intermediates/compatible_screen_manifest/debug/createDebugCompatibleScreenManifests/output-metadata.json b/app/build/intermediates/compatible_screen_manifest/debug/createDebugCompatibleScreenManifests/output-metadata.json
deleted file mode 100644
index e3e0aaf..0000000
--- a/app/build/intermediates/compatible_screen_manifest/debug/createDebugCompatibleScreenManifests/output-metadata.json
+++ /dev/null
@@ -1,10 +0,0 @@
-{
- "version": 3,
- "artifactType": {
- "type": "COMPATIBLE_SCREEN_MANIFEST",
- "kind": "Directory"
- },
- "applicationId": "com.kikyps.kcompressor",
- "variantName": "debug",
- "elements": []
-}
\ No newline at end of file
diff --git a/app/build/intermediates/compile_and_runtime_r_class_jar/debug/processDebugResources/R.jar b/app/build/intermediates/compile_and_runtime_r_class_jar/debug/processDebugResources/R.jar
deleted file mode 100644
index ff3aa9a..0000000
Binary files a/app/build/intermediates/compile_and_runtime_r_class_jar/debug/processDebugResources/R.jar and /dev/null differ
diff --git a/app/build/intermediates/cxx/Debug/j1t3m4l4/logs/arm64-v8a/build_command_kcompressor.bat b/app/build/intermediates/cxx/Debug/j1t3m4l4/logs/arm64-v8a/build_command_kcompressor.bat
deleted file mode 100644
index 8658d2a..0000000
--- a/app/build/intermediates/cxx/Debug/j1t3m4l4/logs/arm64-v8a/build_command_kcompressor.bat
+++ /dev/null
@@ -1,5 +0,0 @@
-@echo off
-"D:\\Android\\sdk\\cmake\\3.22.1\\bin\\ninja.exe" ^
- -C ^
- "D:\\MyProject\\kcompressor\\app\\.cxx\\Debug\\j1t3m4l4\\arm64-v8a" ^
- kcompressor
diff --git a/app/build/intermediates/cxx/Debug/j1t3m4l4/logs/arm64-v8a/build_model.json b/app/build/intermediates/cxx/Debug/j1t3m4l4/logs/arm64-v8a/build_model.json
deleted file mode 100644
index a84d0d2..0000000
--- a/app/build/intermediates/cxx/Debug/j1t3m4l4/logs/arm64-v8a/build_model.json
+++ /dev/null
@@ -1,200 +0,0 @@
-{
- "info": {
- "name": "arm64-v8a",
- "bitness": 64,
- "isDefault": true,
- "isDeprecated": false,
- "architecture": "arm64",
- "triple": "aarch64-linux-android",
- "llvmTriple": "aarch64-none-linux-android"
- },
- "cxxBuildFolder": "D:\\MyProject\\kcompressor\\app\\.cxx\\Debug\\j1t3m4l4\\arm64-v8a",
- "soFolder": "D:\\MyProject\\kcompressor\\app\\build\\intermediates\\cxx\\Debug\\j1t3m4l4\\obj\\arm64-v8a",
- "soRepublishFolder": "D:\\MyProject\\kcompressor\\app\\build\\intermediates\\cmake\\debug\\obj\\arm64-v8a",
- "abiPlatformVersion": 21,
- "cmake": {
- "effectiveConfiguration": {
- "inheritEnvironments": [],
- "variables": []
- }
- },
- "variant": {
- "buildSystemArgumentList": [
- "-DANDROID_STL\u003dc++_static"
- ],
- "cFlagsList": [],
- "cppFlagsList": [
- "-std\u003dc++17 -fexceptions -frtti"
- ],
- "variantName": "debug",
- "isDebuggableEnabled": true,
- "validAbiList": [
- "arm64-v8a"
- ],
- "buildTargetSet": [],
- "implicitBuildTargetSet": [],
- "cmakeSettingsConfiguration": "android-gradle-plugin-predetermined-name",
- "module": {
- "cxxFolder": "D:\\MyProject\\kcompressor\\app\\.cxx",
- "intermediatesBaseFolder": "D:\\MyProject\\kcompressor\\app\\build\\intermediates",
- "intermediatesFolder": "D:\\MyProject\\kcompressor\\app\\build\\intermediates\\cxx",
- "gradleModulePathName": ":app",
- "moduleRootFolder": "D:\\MyProject\\kcompressor\\app",
- "moduleBuildFile": "D:\\MyProject\\kcompressor\\app\\build.gradle",
- "makeFile": "D:\\MyProject\\kcompressor\\app\\src\\main\\cpp\\CMakeLists.txt",
- "buildSystem": "CMAKE",
- "ndkFolder": "D:\\Android\\sdk\\ndk\\28.2.13676358",
- "ndkFolderBeforeSymLinking": "D:\\Android\\sdk\\ndk\\28.2.13676358",
- "ndkVersion": "28.2.13676358",
- "ndkSupportedAbiList": [
- "armeabi-v7a",
- "arm64-v8a",
- "riscv64",
- "x86",
- "x86_64"
- ],
- "ndkDefaultAbiList": [
- "armeabi-v7a",
- "arm64-v8a",
- "x86",
- "x86_64"
- ],
- "ndkDefaultStl": "LIBCXX_STATIC",
- "ndkMetaPlatforms": {
- "min": 21,
- "max": 35,
- "aliases": {
- "20": 19,
- "25": 24,
- "J": 16,
- "J-MR1": 17,
- "J-MR2": 18,
- "K": 19,
- "L": 21,
- "L-MR1": 22,
- "M": 23,
- "N": 24,
- "N-MR1": 24,
- "O": 26,
- "O-MR1": 27,
- "P": 28,
- "Q": 29,
- "R": 30,
- "S": 31,
- "Sv2": 32,
- "Tiramisu": 33,
- "UpsideDownCake": 34,
- "VanillaIceCream": 35
- }
- },
- "ndkMetaAbiList": [
- {
- "name": "armeabi-v7a",
- "bitness": 32,
- "isDefault": true,
- "isDeprecated": false,
- "architecture": "arm",
- "triple": "arm-linux-androideabi",
- "llvmTriple": "armv7-none-linux-androideabi"
- },
- {
- "name": "arm64-v8a",
- "bitness": 64,
- "isDefault": true,
- "isDeprecated": false,
- "architecture": "arm64",
- "triple": "aarch64-linux-android",
- "llvmTriple": "aarch64-none-linux-android"
- },
- {
- "name": "riscv64",
- "bitness": 64,
- "isDefault": false,
- "isDeprecated": false,
- "architecture": "riscv64",
- "triple": "riscv64-linux-android",
- "llvmTriple": "riscv64-none-linux-android"
- },
- {
- "name": "x86",
- "bitness": 32,
- "isDefault": true,
- "isDeprecated": false,
- "architecture": "x86",
- "triple": "i686-linux-android",
- "llvmTriple": "i686-none-linux-android"
- },
- {
- "name": "x86_64",
- "bitness": 64,
- "isDefault": true,
- "isDeprecated": false,
- "architecture": "x86_64",
- "triple": "x86_64-linux-android",
- "llvmTriple": "x86_64-none-linux-android"
- }
- ],
- "cmakeToolchainFile": "D:\\Android\\sdk\\ndk\\28.2.13676358\\build\\cmake\\android.toolchain.cmake",
- "cmake": {
- "cmakeExe": "D:\\Android\\sdk\\cmake\\3.22.1\\bin\\cmake.exe",
- "cmakeVersionFromDsl": "3.22.1"
- },
- "stlSharedObjectMap": {
- "LIBCXX_SHARED": {
- "armeabi-v7a": "D:\\Android\\sdk\\ndk\\28.2.13676358\\toolchains\\llvm\\prebuilt\\windows-x86_64\\sysroot\\usr\\lib\\arm-linux-androideabi\\libc++_shared.so",
- "arm64-v8a": "D:\\Android\\sdk\\ndk\\28.2.13676358\\toolchains\\llvm\\prebuilt\\windows-x86_64\\sysroot\\usr\\lib\\aarch64-linux-android\\libc++_shared.so",
- "riscv64": "D:\\Android\\sdk\\ndk\\28.2.13676358\\toolchains\\llvm\\prebuilt\\windows-x86_64\\sysroot\\usr\\lib\\riscv64-linux-android\\libc++_shared.so",
- "x86": "D:\\Android\\sdk\\ndk\\28.2.13676358\\toolchains\\llvm\\prebuilt\\windows-x86_64\\sysroot\\usr\\lib\\i686-linux-android\\libc++_shared.so",
- "x86_64": "D:\\Android\\sdk\\ndk\\28.2.13676358\\toolchains\\llvm\\prebuilt\\windows-x86_64\\sysroot\\usr\\lib\\x86_64-linux-android\\libc++_shared.so"
- },
- "LIBCXX_STATIC": {},
- "NONE": {},
- "SYSTEM": {}
- },
- "project": {
- "rootBuildGradleFolder": "D:\\MyProject\\kcompressor",
- "sdkFolder": "D:\\Android\\sdk",
- "isBuildOnlyTargetAbiEnabled": true,
- "ideBuildTargetAbi": "arm64-v8a,armeabi-v7a,armeabi",
- "isCmakeBuildCohabitationEnabled": false,
- "isPrefabEnabled": false
- },
- "outputOptions": [],
- "ninjaExe": "D:\\Android\\sdk\\cmake\\3.22.1\\bin\\ninja.exe",
- "hasBuildTimeInformation": true
- },
- "prefabClassPaths": [],
- "prefabPackages": [],
- "prefabPackageConfigurations": [],
- "stlType": "c++_static",
- "optimizationTag": "Debug"
- },
- "buildSettings": {
- "environmentVariables": []
- },
- "prefabFolder": "D:\\MyProject\\kcompressor\\app\\.cxx\\Debug\\j1t3m4l4\\prefab\\arm64-v8a",
- "isActiveAbi": true,
- "fullConfigurationHash": "j1t3m4l441p464z402j1i42232s2d386c456f6m3t734j6624d1mc5x5",
- "fullConfigurationHashKey": "# Values used to calculate the hash in this folder name.\n# Should not depend on the absolute path of the project itself.\n# - AGP: 9.2.1.\n# - $NDK is the path to NDK 28.2.13676358.\n# - $PROJECT is the path to the parent folder of the root Gradle build file.\n# - $ABI is the ABI to be built with. The specific value doesn\u0027t contribute to the value of the hash.\n# - $HASH is the hash value computed from this text.\n# - $CMAKE is the path to CMake 3.22.1.\n# - $NINJA is the path to Ninja.\n-H$PROJECT/app/src/main/cpp\n-DCMAKE_SYSTEM_NAME\u003dAndroid\n-DCMAKE_EXPORT_COMPILE_COMMANDS\u003dON\n-DCMAKE_SYSTEM_VERSION\u003d21\n-DANDROID_PLATFORM\u003dandroid-21\n-DANDROID_ABI\u003d$ABI\n-DCMAKE_ANDROID_ARCH_ABI\u003d$ABI\n-DANDROID_NDK\u003d$NDK\n-DCMAKE_ANDROID_NDK\u003d$NDK\n-DCMAKE_TOOLCHAIN_FILE\u003d$NDK/build/cmake/android.toolchain.cmake\n-DCMAKE_MAKE_PROGRAM\u003d$NINJA\n-DCMAKE_CXX_FLAGS\u003d-std\u003dc++17 -fexceptions -frtti\n-DCMAKE_LIBRARY_OUTPUT_DIRECTORY\u003d$PROJECT/app/build/intermediates/cxx/Debug/$HASH/obj/$ABI\n-DCMAKE_RUNTIME_OUTPUT_DIRECTORY\u003d$PROJECT/app/build/intermediates/cxx/Debug/$HASH/obj/$ABI\n-DCMAKE_BUILD_TYPE\u003dDebug\n-B$PROJECT/app/.cxx/Debug/$HASH/$ABI\n-GNinja\n-DANDROID_STL\u003dc++_static",
- "configurationArguments": [
- "-HD:\\MyProject\\kcompressor\\app\\src\\main\\cpp",
- "-DCMAKE_SYSTEM_NAME\u003dAndroid",
- "-DCMAKE_EXPORT_COMPILE_COMMANDS\u003dON",
- "-DCMAKE_SYSTEM_VERSION\u003d21",
- "-DANDROID_PLATFORM\u003dandroid-21",
- "-DANDROID_ABI\u003darm64-v8a",
- "-DCMAKE_ANDROID_ARCH_ABI\u003darm64-v8a",
- "-DANDROID_NDK\u003dD:\\Android\\sdk\\ndk\\28.2.13676358",
- "-DCMAKE_ANDROID_NDK\u003dD:\\Android\\sdk\\ndk\\28.2.13676358",
- "-DCMAKE_TOOLCHAIN_FILE\u003dD:\\Android\\sdk\\ndk\\28.2.13676358\\build\\cmake\\android.toolchain.cmake",
- "-DCMAKE_MAKE_PROGRAM\u003dD:\\Android\\sdk\\cmake\\3.22.1\\bin\\ninja.exe",
- "-DCMAKE_CXX_FLAGS\u003d-std\u003dc++17 -fexceptions -frtti",
- "-DCMAKE_LIBRARY_OUTPUT_DIRECTORY\u003dD:\\MyProject\\kcompressor\\app\\build\\intermediates\\cxx\\Debug\\j1t3m4l4\\obj\\arm64-v8a",
- "-DCMAKE_RUNTIME_OUTPUT_DIRECTORY\u003dD:\\MyProject\\kcompressor\\app\\build\\intermediates\\cxx\\Debug\\j1t3m4l4\\obj\\arm64-v8a",
- "-DCMAKE_BUILD_TYPE\u003dDebug",
- "-BD:\\MyProject\\kcompressor\\app\\.cxx\\Debug\\j1t3m4l4\\arm64-v8a",
- "-GNinja",
- "-DANDROID_STL\u003dc++_static"
- ],
- "intermediatesParentFolder": "D:\\MyProject\\kcompressor\\app\\build\\intermediates\\cxx\\Debug\\j1t3m4l4"
-}
\ No newline at end of file
diff --git a/app/build/intermediates/cxx/Debug/j1t3m4l4/logs/arm64-v8a/build_stderr_kcompressor.txt b/app/build/intermediates/cxx/Debug/j1t3m4l4/logs/arm64-v8a/build_stderr_kcompressor.txt
deleted file mode 100644
index e69de29..0000000
diff --git a/app/build/intermediates/cxx/Debug/j1t3m4l4/logs/arm64-v8a/build_stdout_kcompressor.txt b/app/build/intermediates/cxx/Debug/j1t3m4l4/logs/arm64-v8a/build_stdout_kcompressor.txt
deleted file mode 100644
index 0c63ee1..0000000
--- a/app/build/intermediates/cxx/Debug/j1t3m4l4/logs/arm64-v8a/build_stdout_kcompressor.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-ninja: Entering directory `D:\MyProject\kcompressor\app\.cxx\Debug\j1t3m4l4\arm64-v8a'
-ninja: no work to do.
diff --git a/app/build/intermediates/cxx/Debug/j1t3m4l4/logs/arm64-v8a/generate_cxx_metadata_2501_timing.txt b/app/build/intermediates/cxx/Debug/j1t3m4l4/logs/arm64-v8a/generate_cxx_metadata_2501_timing.txt
deleted file mode 100644
index 9708df4..0000000
--- a/app/build/intermediates/cxx/Debug/j1t3m4l4/logs/arm64-v8a/generate_cxx_metadata_2501_timing.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-# C/C++ build system timings
-
diff --git a/app/build/intermediates/cxx/Debug/j1t3m4l4/logs/arm64-v8a/generate_cxx_metadata_2592_timing.txt b/app/build/intermediates/cxx/Debug/j1t3m4l4/logs/arm64-v8a/generate_cxx_metadata_2592_timing.txt
deleted file mode 100644
index 9708df4..0000000
--- a/app/build/intermediates/cxx/Debug/j1t3m4l4/logs/arm64-v8a/generate_cxx_metadata_2592_timing.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-# C/C++ build system timings
-
diff --git a/app/build/intermediates/cxx/Debug/j1t3m4l4/logs/arm64-v8a/generate_cxx_metadata_2668_timing.txt b/app/build/intermediates/cxx/Debug/j1t3m4l4/logs/arm64-v8a/generate_cxx_metadata_2668_timing.txt
deleted file mode 100644
index 9708df4..0000000
--- a/app/build/intermediates/cxx/Debug/j1t3m4l4/logs/arm64-v8a/generate_cxx_metadata_2668_timing.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-# C/C++ build system timings
-
diff --git a/app/build/intermediates/cxx/Debug/j1t3m4l4/logs/arm64-v8a/generate_cxx_metadata_2726_timing.txt b/app/build/intermediates/cxx/Debug/j1t3m4l4/logs/arm64-v8a/generate_cxx_metadata_2726_timing.txt
deleted file mode 100644
index 9708df4..0000000
--- a/app/build/intermediates/cxx/Debug/j1t3m4l4/logs/arm64-v8a/generate_cxx_metadata_2726_timing.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-# C/C++ build system timings
-
diff --git a/app/build/intermediates/cxx/Debug/j1t3m4l4/logs/arm64-v8a/metadata_generation_record.json b/app/build/intermediates/cxx/Debug/j1t3m4l4/logs/arm64-v8a/metadata_generation_record.json
deleted file mode 100644
index b84982f..0000000
--- a/app/build/intermediates/cxx/Debug/j1t3m4l4/logs/arm64-v8a/metadata_generation_record.json
+++ /dev/null
@@ -1,17 +0,0 @@
-[
-{
- "message": "Start JSON generation. Platform version: 21 min SDK version: arm64-v8a",
- "file": "D:\\MyProject\\kcompressor\\app\\src\\main\\cpp\\CMakeLists.txt",
- "tag": "debug|arm64-v8a"
-},
-{
- "message": "JSON \u0027D:\\MyProject\\kcompressor\\app\\.cxx\\Debug\\j1t3m4l4\\arm64-v8a\\android_gradle_build.json\u0027 was up-to-date",
- "file": "D:\\MyProject\\kcompressor\\app\\src\\main\\cpp\\CMakeLists.txt",
- "tag": "debug|arm64-v8a"
-},
-{
- "message": "JSON generation completed without problems",
- "file": "D:\\MyProject\\kcompressor\\app\\src\\main\\cpp\\CMakeLists.txt",
- "tag": "debug|arm64-v8a"
-}
-]
\ No newline at end of file
diff --git a/app/build/intermediates/cxx/Debug/j1t3m4l4/obj/arm64-v8a/libkcompressor.so b/app/build/intermediates/cxx/Debug/j1t3m4l4/obj/arm64-v8a/libkcompressor.so
deleted file mode 100644
index 8c70c43..0000000
Binary files a/app/build/intermediates/cxx/Debug/j1t3m4l4/obj/arm64-v8a/libkcompressor.so and /dev/null differ
diff --git a/app/build/intermediates/desugar_graph/debug/dexBuilderDebug/out/currentProject/dirs_bucket_0/graph.bin b/app/build/intermediates/desugar_graph/debug/dexBuilderDebug/out/currentProject/dirs_bucket_0/graph.bin
deleted file mode 100644
index fbd289f..0000000
Binary files a/app/build/intermediates/desugar_graph/debug/dexBuilderDebug/out/currentProject/dirs_bucket_0/graph.bin and /dev/null differ
diff --git a/app/build/intermediates/desugar_graph/debug/dexBuilderDebug/out/currentProject/dirs_bucket_1/graph.bin b/app/build/intermediates/desugar_graph/debug/dexBuilderDebug/out/currentProject/dirs_bucket_1/graph.bin
deleted file mode 100644
index 4c93416..0000000
Binary files a/app/build/intermediates/desugar_graph/debug/dexBuilderDebug/out/currentProject/dirs_bucket_1/graph.bin and /dev/null differ
diff --git a/app/build/intermediates/desugar_graph/debug/dexBuilderDebug/out/currentProject/dirs_bucket_2/graph.bin b/app/build/intermediates/desugar_graph/debug/dexBuilderDebug/out/currentProject/dirs_bucket_2/graph.bin
deleted file mode 100644
index dd8fd06..0000000
Binary files a/app/build/intermediates/desugar_graph/debug/dexBuilderDebug/out/currentProject/dirs_bucket_2/graph.bin and /dev/null differ
diff --git a/app/build/intermediates/desugar_graph/debug/dexBuilderDebug/out/currentProject/dirs_bucket_3/graph.bin b/app/build/intermediates/desugar_graph/debug/dexBuilderDebug/out/currentProject/dirs_bucket_3/graph.bin
deleted file mode 100644
index 0325693..0000000
Binary files a/app/build/intermediates/desugar_graph/debug/dexBuilderDebug/out/currentProject/dirs_bucket_3/graph.bin and /dev/null differ
diff --git a/app/build/intermediates/desugar_graph/debug/dexBuilderDebug/out/currentProject/dirs_bucket_4/graph.bin b/app/build/intermediates/desugar_graph/debug/dexBuilderDebug/out/currentProject/dirs_bucket_4/graph.bin
deleted file mode 100644
index 601f245..0000000
Binary files a/app/build/intermediates/desugar_graph/debug/dexBuilderDebug/out/currentProject/dirs_bucket_4/graph.bin and /dev/null differ
diff --git a/app/build/intermediates/desugar_graph/debug/dexBuilderDebug/out/currentProject/dirs_bucket_5/graph.bin b/app/build/intermediates/desugar_graph/debug/dexBuilderDebug/out/currentProject/dirs_bucket_5/graph.bin
deleted file mode 100644
index 9401398..0000000
Binary files a/app/build/intermediates/desugar_graph/debug/dexBuilderDebug/out/currentProject/dirs_bucket_5/graph.bin and /dev/null differ
diff --git a/app/build/intermediates/desugar_graph/debug/dexBuilderDebug/out/currentProject/jar_6f120068b490ddedeafc1f2c15589d608996a0c4d210b34f152904523886ddfa_bucket_0/graph.bin b/app/build/intermediates/desugar_graph/debug/dexBuilderDebug/out/currentProject/jar_6f120068b490ddedeafc1f2c15589d608996a0c4d210b34f152904523886ddfa_bucket_0/graph.bin
deleted file mode 100644
index 601f245..0000000
Binary files a/app/build/intermediates/desugar_graph/debug/dexBuilderDebug/out/currentProject/jar_6f120068b490ddedeafc1f2c15589d608996a0c4d210b34f152904523886ddfa_bucket_0/graph.bin and /dev/null differ
diff --git a/app/build/intermediates/desugar_graph/debug/dexBuilderDebug/out/currentProject/jar_6f120068b490ddedeafc1f2c15589d608996a0c4d210b34f152904523886ddfa_bucket_1/graph.bin b/app/build/intermediates/desugar_graph/debug/dexBuilderDebug/out/currentProject/jar_6f120068b490ddedeafc1f2c15589d608996a0c4d210b34f152904523886ddfa_bucket_1/graph.bin
deleted file mode 100644
index 601f245..0000000
Binary files a/app/build/intermediates/desugar_graph/debug/dexBuilderDebug/out/currentProject/jar_6f120068b490ddedeafc1f2c15589d608996a0c4d210b34f152904523886ddfa_bucket_1/graph.bin and /dev/null differ
diff --git a/app/build/intermediates/desugar_graph/debug/dexBuilderDebug/out/currentProject/jar_6f120068b490ddedeafc1f2c15589d608996a0c4d210b34f152904523886ddfa_bucket_2/graph.bin b/app/build/intermediates/desugar_graph/debug/dexBuilderDebug/out/currentProject/jar_6f120068b490ddedeafc1f2c15589d608996a0c4d210b34f152904523886ddfa_bucket_2/graph.bin
deleted file mode 100644
index 601f245..0000000
Binary files a/app/build/intermediates/desugar_graph/debug/dexBuilderDebug/out/currentProject/jar_6f120068b490ddedeafc1f2c15589d608996a0c4d210b34f152904523886ddfa_bucket_2/graph.bin and /dev/null differ
diff --git a/app/build/intermediates/desugar_graph/debug/dexBuilderDebug/out/currentProject/jar_6f120068b490ddedeafc1f2c15589d608996a0c4d210b34f152904523886ddfa_bucket_3/graph.bin b/app/build/intermediates/desugar_graph/debug/dexBuilderDebug/out/currentProject/jar_6f120068b490ddedeafc1f2c15589d608996a0c4d210b34f152904523886ddfa_bucket_3/graph.bin
deleted file mode 100644
index 601f245..0000000
Binary files a/app/build/intermediates/desugar_graph/debug/dexBuilderDebug/out/currentProject/jar_6f120068b490ddedeafc1f2c15589d608996a0c4d210b34f152904523886ddfa_bucket_3/graph.bin and /dev/null differ
diff --git a/app/build/intermediates/desugar_graph/debug/dexBuilderDebug/out/currentProject/jar_6f120068b490ddedeafc1f2c15589d608996a0c4d210b34f152904523886ddfa_bucket_4/graph.bin b/app/build/intermediates/desugar_graph/debug/dexBuilderDebug/out/currentProject/jar_6f120068b490ddedeafc1f2c15589d608996a0c4d210b34f152904523886ddfa_bucket_4/graph.bin
deleted file mode 100644
index 601f245..0000000
Binary files a/app/build/intermediates/desugar_graph/debug/dexBuilderDebug/out/currentProject/jar_6f120068b490ddedeafc1f2c15589d608996a0c4d210b34f152904523886ddfa_bucket_4/graph.bin and /dev/null differ
diff --git a/app/build/intermediates/desugar_graph/debug/dexBuilderDebug/out/currentProject/jar_6f120068b490ddedeafc1f2c15589d608996a0c4d210b34f152904523886ddfa_bucket_5/graph.bin b/app/build/intermediates/desugar_graph/debug/dexBuilderDebug/out/currentProject/jar_6f120068b490ddedeafc1f2c15589d608996a0c4d210b34f152904523886ddfa_bucket_5/graph.bin
deleted file mode 100644
index 601f245..0000000
Binary files a/app/build/intermediates/desugar_graph/debug/dexBuilderDebug/out/currentProject/jar_6f120068b490ddedeafc1f2c15589d608996a0c4d210b34f152904523886ddfa_bucket_5/graph.bin and /dev/null differ
diff --git a/app/build/intermediates/desugar_graph/debug/dexBuilderDebug/out/externalLibs/dirs_bucket_0/graph.bin b/app/build/intermediates/desugar_graph/debug/dexBuilderDebug/out/externalLibs/dirs_bucket_0/graph.bin
deleted file mode 100644
index 601f245..0000000
Binary files a/app/build/intermediates/desugar_graph/debug/dexBuilderDebug/out/externalLibs/dirs_bucket_0/graph.bin and /dev/null differ
diff --git a/app/build/intermediates/desugar_graph/debug/dexBuilderDebug/out/externalLibs/dirs_bucket_1/graph.bin b/app/build/intermediates/desugar_graph/debug/dexBuilderDebug/out/externalLibs/dirs_bucket_1/graph.bin
deleted file mode 100644
index 601f245..0000000
Binary files a/app/build/intermediates/desugar_graph/debug/dexBuilderDebug/out/externalLibs/dirs_bucket_1/graph.bin and /dev/null differ
diff --git a/app/build/intermediates/desugar_graph/debug/dexBuilderDebug/out/externalLibs/dirs_bucket_2/graph.bin b/app/build/intermediates/desugar_graph/debug/dexBuilderDebug/out/externalLibs/dirs_bucket_2/graph.bin
deleted file mode 100644
index 601f245..0000000
Binary files a/app/build/intermediates/desugar_graph/debug/dexBuilderDebug/out/externalLibs/dirs_bucket_2/graph.bin and /dev/null differ
diff --git a/app/build/intermediates/desugar_graph/debug/dexBuilderDebug/out/externalLibs/dirs_bucket_3/graph.bin b/app/build/intermediates/desugar_graph/debug/dexBuilderDebug/out/externalLibs/dirs_bucket_3/graph.bin
deleted file mode 100644
index 601f245..0000000
Binary files a/app/build/intermediates/desugar_graph/debug/dexBuilderDebug/out/externalLibs/dirs_bucket_3/graph.bin and /dev/null differ
diff --git a/app/build/intermediates/desugar_graph/debug/dexBuilderDebug/out/externalLibs/dirs_bucket_4/graph.bin b/app/build/intermediates/desugar_graph/debug/dexBuilderDebug/out/externalLibs/dirs_bucket_4/graph.bin
deleted file mode 100644
index 601f245..0000000
Binary files a/app/build/intermediates/desugar_graph/debug/dexBuilderDebug/out/externalLibs/dirs_bucket_4/graph.bin and /dev/null differ
diff --git a/app/build/intermediates/desugar_graph/debug/dexBuilderDebug/out/externalLibs/dirs_bucket_5/graph.bin b/app/build/intermediates/desugar_graph/debug/dexBuilderDebug/out/externalLibs/dirs_bucket_5/graph.bin
deleted file mode 100644
index 601f245..0000000
Binary files a/app/build/intermediates/desugar_graph/debug/dexBuilderDebug/out/externalLibs/dirs_bucket_5/graph.bin and /dev/null differ
diff --git a/app/build/intermediates/desugar_graph/debug/dexBuilderDebug/out/mixedScopes/dirs_bucket_0/graph.bin b/app/build/intermediates/desugar_graph/debug/dexBuilderDebug/out/mixedScopes/dirs_bucket_0/graph.bin
deleted file mode 100644
index 601f245..0000000
Binary files a/app/build/intermediates/desugar_graph/debug/dexBuilderDebug/out/mixedScopes/dirs_bucket_0/graph.bin and /dev/null differ
diff --git a/app/build/intermediates/desugar_graph/debug/dexBuilderDebug/out/mixedScopes/dirs_bucket_1/graph.bin b/app/build/intermediates/desugar_graph/debug/dexBuilderDebug/out/mixedScopes/dirs_bucket_1/graph.bin
deleted file mode 100644
index 601f245..0000000
Binary files a/app/build/intermediates/desugar_graph/debug/dexBuilderDebug/out/mixedScopes/dirs_bucket_1/graph.bin and /dev/null differ
diff --git a/app/build/intermediates/desugar_graph/debug/dexBuilderDebug/out/mixedScopes/dirs_bucket_2/graph.bin b/app/build/intermediates/desugar_graph/debug/dexBuilderDebug/out/mixedScopes/dirs_bucket_2/graph.bin
deleted file mode 100644
index 601f245..0000000
Binary files a/app/build/intermediates/desugar_graph/debug/dexBuilderDebug/out/mixedScopes/dirs_bucket_2/graph.bin and /dev/null differ
diff --git a/app/build/intermediates/desugar_graph/debug/dexBuilderDebug/out/mixedScopes/dirs_bucket_3/graph.bin b/app/build/intermediates/desugar_graph/debug/dexBuilderDebug/out/mixedScopes/dirs_bucket_3/graph.bin
deleted file mode 100644
index 601f245..0000000
Binary files a/app/build/intermediates/desugar_graph/debug/dexBuilderDebug/out/mixedScopes/dirs_bucket_3/graph.bin and /dev/null differ
diff --git a/app/build/intermediates/desugar_graph/debug/dexBuilderDebug/out/mixedScopes/dirs_bucket_4/graph.bin b/app/build/intermediates/desugar_graph/debug/dexBuilderDebug/out/mixedScopes/dirs_bucket_4/graph.bin
deleted file mode 100644
index 601f245..0000000
Binary files a/app/build/intermediates/desugar_graph/debug/dexBuilderDebug/out/mixedScopes/dirs_bucket_4/graph.bin and /dev/null differ
diff --git a/app/build/intermediates/desugar_graph/debug/dexBuilderDebug/out/mixedScopes/dirs_bucket_5/graph.bin b/app/build/intermediates/desugar_graph/debug/dexBuilderDebug/out/mixedScopes/dirs_bucket_5/graph.bin
deleted file mode 100644
index 601f245..0000000
Binary files a/app/build/intermediates/desugar_graph/debug/dexBuilderDebug/out/mixedScopes/dirs_bucket_5/graph.bin and /dev/null differ
diff --git a/app/build/intermediates/desugar_graph/debug/dexBuilderDebug/out/otherProjects/dirs_bucket_0/graph.bin b/app/build/intermediates/desugar_graph/debug/dexBuilderDebug/out/otherProjects/dirs_bucket_0/graph.bin
deleted file mode 100644
index 601f245..0000000
Binary files a/app/build/intermediates/desugar_graph/debug/dexBuilderDebug/out/otherProjects/dirs_bucket_0/graph.bin and /dev/null differ
diff --git a/app/build/intermediates/desugar_graph/debug/dexBuilderDebug/out/otherProjects/dirs_bucket_1/graph.bin b/app/build/intermediates/desugar_graph/debug/dexBuilderDebug/out/otherProjects/dirs_bucket_1/graph.bin
deleted file mode 100644
index 601f245..0000000
Binary files a/app/build/intermediates/desugar_graph/debug/dexBuilderDebug/out/otherProjects/dirs_bucket_1/graph.bin and /dev/null differ
diff --git a/app/build/intermediates/desugar_graph/debug/dexBuilderDebug/out/otherProjects/dirs_bucket_2/graph.bin b/app/build/intermediates/desugar_graph/debug/dexBuilderDebug/out/otherProjects/dirs_bucket_2/graph.bin
deleted file mode 100644
index 601f245..0000000
Binary files a/app/build/intermediates/desugar_graph/debug/dexBuilderDebug/out/otherProjects/dirs_bucket_2/graph.bin and /dev/null differ
diff --git a/app/build/intermediates/desugar_graph/debug/dexBuilderDebug/out/otherProjects/dirs_bucket_3/graph.bin b/app/build/intermediates/desugar_graph/debug/dexBuilderDebug/out/otherProjects/dirs_bucket_3/graph.bin
deleted file mode 100644
index 601f245..0000000
Binary files a/app/build/intermediates/desugar_graph/debug/dexBuilderDebug/out/otherProjects/dirs_bucket_3/graph.bin and /dev/null differ
diff --git a/app/build/intermediates/desugar_graph/debug/dexBuilderDebug/out/otherProjects/dirs_bucket_4/graph.bin b/app/build/intermediates/desugar_graph/debug/dexBuilderDebug/out/otherProjects/dirs_bucket_4/graph.bin
deleted file mode 100644
index 601f245..0000000
Binary files a/app/build/intermediates/desugar_graph/debug/dexBuilderDebug/out/otherProjects/dirs_bucket_4/graph.bin and /dev/null differ
diff --git a/app/build/intermediates/desugar_graph/debug/dexBuilderDebug/out/otherProjects/dirs_bucket_5/graph.bin b/app/build/intermediates/desugar_graph/debug/dexBuilderDebug/out/otherProjects/dirs_bucket_5/graph.bin
deleted file mode 100644
index 601f245..0000000
Binary files a/app/build/intermediates/desugar_graph/debug/dexBuilderDebug/out/otherProjects/dirs_bucket_5/graph.bin and /dev/null differ
diff --git a/app/build/intermediates/dex/debug/mergeProjectDexDebug/0/classes.dex b/app/build/intermediates/dex/debug/mergeProjectDexDebug/0/classes.dex
deleted file mode 100644
index e2fd0e9..0000000
Binary files a/app/build/intermediates/dex/debug/mergeProjectDexDebug/0/classes.dex and /dev/null differ
diff --git a/app/build/intermediates/dex/debug/mergeProjectDexDebug/15/classes.dex b/app/build/intermediates/dex/debug/mergeProjectDexDebug/15/classes.dex
deleted file mode 100644
index 2fb5dc1..0000000
Binary files a/app/build/intermediates/dex/debug/mergeProjectDexDebug/15/classes.dex and /dev/null differ
diff --git a/app/build/intermediates/dex_archive_input_jar_hashes/debug/dexBuilderDebug/out b/app/build/intermediates/dex_archive_input_jar_hashes/debug/dexBuilderDebug/out
deleted file mode 100644
index cbf37cb..0000000
Binary files a/app/build/intermediates/dex_archive_input_jar_hashes/debug/dexBuilderDebug/out and /dev/null differ
diff --git a/app/build/intermediates/dex_number_of_buckets_file/debug/dexBuilderDebug/out b/app/build/intermediates/dex_number_of_buckets_file/debug/dexBuilderDebug/out
deleted file mode 100644
index 62f9457..0000000
--- a/app/build/intermediates/dex_number_of_buckets_file/debug/dexBuilderDebug/out
+++ /dev/null
@@ -1 +0,0 @@
-6
\ No newline at end of file
diff --git a/app/build/intermediates/global_synthetics_dex/debug/generateDebugGlobalSynthetics/classes.dex b/app/build/intermediates/global_synthetics_dex/debug/generateDebugGlobalSynthetics/classes.dex
deleted file mode 100644
index 929ea64..0000000
Binary files a/app/build/intermediates/global_synthetics_dex/debug/generateDebugGlobalSynthetics/classes.dex and /dev/null differ
diff --git a/app/build/intermediates/incremental/debug-mergeJavaRes/merge-state b/app/build/intermediates/incremental/debug-mergeJavaRes/merge-state
deleted file mode 100644
index 1c983fc..0000000
Binary files a/app/build/intermediates/incremental/debug-mergeJavaRes/merge-state and /dev/null differ
diff --git a/app/build/intermediates/incremental/debug/mergeDebugResources/compile-file-map.properties b/app/build/intermediates/incremental/debug/mergeDebugResources/compile-file-map.properties
deleted file mode 100644
index 79c167c..0000000
--- a/app/build/intermediates/incremental/debug/mergeDebugResources/compile-file-map.properties
+++ /dev/null
@@ -1,11 +0,0 @@
-#Fri Jun 12 01:17:47 ICT 2026
-com.kikyps.kcompressor.app-main-6\:/drawable/bg_amoled_card.xml=D\:\\MyProject\\kcompressor\\app\\build\\intermediates\\merged_res\\debug\\mergeDebugResources\\drawable_bg_amoled_card.xml.flat
-com.kikyps.kcompressor.app-main-6\:/drawable/bg_amoled_screen.xml=D\:\\MyProject\\kcompressor\\app\\build\\intermediates\\merged_res\\debug\\mergeDebugResources\\drawable_bg_amoled_screen.xml.flat
-com.kikyps.kcompressor.app-main-6\:/drawable/bg_button_danger.xml=D\:\\MyProject\\kcompressor\\app\\build\\intermediates\\merged_res\\debug\\mergeDebugResources\\drawable_bg_button_danger.xml.flat
-com.kikyps.kcompressor.app-main-6\:/drawable/bg_button_dark_secondary.xml=D\:\\MyProject\\kcompressor\\app\\build\\intermediates\\merged_res\\debug\\mergeDebugResources\\drawable_bg_button_dark_secondary.xml.flat
-com.kikyps.kcompressor.app-main-6\:/drawable/bg_button_green.xml=D\:\\MyProject\\kcompressor\\app\\build\\intermediates\\merged_res\\debug\\mergeDebugResources\\drawable_bg_button_green.xml.flat
-com.kikyps.kcompressor.app-main-6\:/drawable/bg_spinner_dark.xml=D\:\\MyProject\\kcompressor\\app\\build\\intermediates\\merged_res\\debug\\mergeDebugResources\\drawable_bg_spinner_dark.xml.flat
-com.kikyps.kcompressor.app-main-6\:/drawable/ic_share_black_24.xml=D\:\\MyProject\\kcompressor\\app\\build\\intermediates\\merged_res\\debug\\mergeDebugResources\\drawable_ic_share_black_24.xml.flat
-com.kikyps.kcompressor.app-main-6\:/drawable/ic_share_white_24.xml=D\:\\MyProject\\kcompressor\\app\\build\\intermediates\\merged_res\\debug\\mergeDebugResources\\drawable_ic_share_white_24.xml.flat
-com.kikyps.kcompressor.app-main-6\:/layout/activity_main_amoled.xml=D\:\\MyProject\\kcompressor\\app\\build\\intermediates\\merged_res\\debug\\mergeDebugResources\\layout_activity_main_amoled.xml.flat
-com.kikyps.kcompressor.app-main-6\:/layout/activity_processing.xml=D\:\\MyProject\\kcompressor\\app\\build\\intermediates\\merged_res\\debug\\mergeDebugResources\\layout_activity_processing.xml.flat
diff --git a/app/build/intermediates/incremental/debug/mergeDebugResources/merger.xml b/app/build/intermediates/incremental/debug/mergeDebugResources/merger.xml
deleted file mode 100644
index 4943c4e..0000000
--- a/app/build/intermediates/incremental/debug/mergeDebugResources/merger.xml
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
\ No newline at end of file
diff --git a/app/build/intermediates/incremental/mergeDebugAssets/merger.xml b/app/build/intermediates/incremental/mergeDebugAssets/merger.xml
deleted file mode 100644
index cd22e7c..0000000
--- a/app/build/intermediates/incremental/mergeDebugAssets/merger.xml
+++ /dev/null
@@ -1,2 +0,0 @@
-
-
\ No newline at end of file
diff --git a/app/build/intermediates/incremental/mergeDebugJniLibFolders/merger.xml b/app/build/intermediates/incremental/mergeDebugJniLibFolders/merger.xml
deleted file mode 100644
index e6c1c21..0000000
--- a/app/build/intermediates/incremental/mergeDebugJniLibFolders/merger.xml
+++ /dev/null
@@ -1,2 +0,0 @@
-
-
\ No newline at end of file
diff --git a/app/build/intermediates/incremental/packageDebug/tmp/debug/dex-renamer-state.txt b/app/build/intermediates/incremental/packageDebug/tmp/debug/dex-renamer-state.txt
deleted file mode 100644
index 9e8653e..0000000
--- a/app/build/intermediates/incremental/packageDebug/tmp/debug/dex-renamer-state.txt
+++ /dev/null
@@ -1,10 +0,0 @@
-#Fri Jun 12 01:17:47 ICT 2026
-base.0=D\:\\MyProject\\kcompressor\\app\\build\\intermediates\\dex\\debug\\mergeProjectDexDebug\\0\\classes.dex
-base.1=D\:\\MyProject\\kcompressor\\app\\build\\intermediates\\dex\\debug\\mergeProjectDexDebug\\15\\classes.dex
-base.2=D\:\\MyProject\\kcompressor\\app\\build\\intermediates\\global_synthetics_dex\\debug\\generateDebugGlobalSynthetics\\classes.dex
-path.0=0/classes.dex
-path.1=15/classes.dex
-path.2=classes.dex
-renamed.0=classes.dex
-renamed.1=classes2.dex
-renamed.2=classes3.dex
diff --git a/app/build/intermediates/incremental/packageDebug/tmp/debug/zip-cache/androidResources b/app/build/intermediates/incremental/packageDebug/tmp/debug/zip-cache/androidResources
deleted file mode 100644
index 7654a3f..0000000
--- a/app/build/intermediates/incremental/packageDebug/tmp/debug/zip-cache/androidResources
+++ /dev/null
@@ -1 +0,0 @@
-[{"key":"AndroidManifest.xml","name":"AndroidManifest.xml","size":2724,"crc":-884972420},{"key":"res/drawable/bg_amoled_card.xml","name":"res/drawable/bg_amoled_card.xml","size":576,"crc":976577943},{"key":"res/drawable/bg_amoled_screen.xml","name":"res/drawable/bg_amoled_screen.xml","size":336,"crc":294814073},{"key":"res/drawable/bg_button_danger.xml","name":"res/drawable/bg_button_danger.xml","size":448,"crc":-648130019},{"key":"res/drawable/bg_button_dark_secondary.xml","name":"res/drawable/bg_button_dark_secondary.xml","size":576,"crc":1917542432},{"key":"res/drawable/bg_button_green.xml","name":"res/drawable/bg_button_green.xml","size":448,"crc":1934327109},{"key":"res/drawable/bg_spinner_dark.xml","name":"res/drawable/bg_spinner_dark.xml","size":576,"crc":1917542432},{"key":"res/drawable/ic_share_black_24.xml","name":"res/drawable/ic_share_black_24.xml","size":1032,"crc":-1156002168},{"key":"res/drawable/ic_share_white_24.xml","name":"res/drawable/ic_share_white_24.xml","size":1032,"crc":1788265723},{"key":"res/layout/activity_main_amoled.xml","name":"res/layout/activity_main_amoled.xml","size":6344,"crc":1006393801},{"key":"res/layout/activity_processing.xml","name":"res/layout/activity_processing.xml","size":4056,"crc":-1358936579},{"key":"resources.arsc","name":"resources.arsc","size":3252,"crc":-1532980291}]
\ No newline at end of file
diff --git a/app/build/intermediates/incremental/packageDebug/tmp/debug/zip-cache/javaResources0 b/app/build/intermediates/incremental/packageDebug/tmp/debug/zip-cache/javaResources0
deleted file mode 100644
index 0637a08..0000000
--- a/app/build/intermediates/incremental/packageDebug/tmp/debug/zip-cache/javaResources0
+++ /dev/null
@@ -1 +0,0 @@
-[]
\ No newline at end of file
diff --git a/app/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/kikyps/kcompressor/CircleProgressView.class b/app/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/kikyps/kcompressor/CircleProgressView.class
deleted file mode 100644
index 3410fba..0000000
Binary files a/app/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/kikyps/kcompressor/CircleProgressView.class and /dev/null differ
diff --git a/app/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/kikyps/kcompressor/MainActivity$1.class b/app/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/kikyps/kcompressor/MainActivity$1.class
deleted file mode 100644
index a03b8e4..0000000
Binary files a/app/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/kikyps/kcompressor/MainActivity$1.class and /dev/null differ
diff --git a/app/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/kikyps/kcompressor/MainActivity$2.class b/app/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/kikyps/kcompressor/MainActivity$2.class
deleted file mode 100644
index 050fad9..0000000
Binary files a/app/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/kikyps/kcompressor/MainActivity$2.class and /dev/null differ
diff --git a/app/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/kikyps/kcompressor/MainActivity$3.class b/app/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/kikyps/kcompressor/MainActivity$3.class
deleted file mode 100644
index a87687a..0000000
Binary files a/app/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/kikyps/kcompressor/MainActivity$3.class and /dev/null differ
diff --git a/app/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/kikyps/kcompressor/MainActivity$AudioOption.class b/app/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/kikyps/kcompressor/MainActivity$AudioOption.class
deleted file mode 100644
index fdd96fe..0000000
Binary files a/app/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/kikyps/kcompressor/MainActivity$AudioOption.class and /dev/null differ
diff --git a/app/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/kikyps/kcompressor/MainActivity$CodecOption.class b/app/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/kikyps/kcompressor/MainActivity$CodecOption.class
deleted file mode 100644
index 8c9ceba..0000000
Binary files a/app/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/kikyps/kcompressor/MainActivity$CodecOption.class and /dev/null differ
diff --git a/app/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/kikyps/kcompressor/MainActivity$ResolutionOption.class b/app/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/kikyps/kcompressor/MainActivity$ResolutionOption.class
deleted file mode 100644
index 00f354a..0000000
Binary files a/app/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/kikyps/kcompressor/MainActivity$ResolutionOption.class and /dev/null differ
diff --git a/app/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/kikyps/kcompressor/MainActivity$VideoInfo.class b/app/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/kikyps/kcompressor/MainActivity$VideoInfo.class
deleted file mode 100644
index 41f6a4c..0000000
Binary files a/app/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/kikyps/kcompressor/MainActivity$VideoInfo.class and /dev/null differ
diff --git a/app/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/kikyps/kcompressor/MainActivity.class b/app/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/kikyps/kcompressor/MainActivity.class
deleted file mode 100644
index 25f31c8..0000000
Binary files a/app/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/kikyps/kcompressor/MainActivity.class and /dev/null differ
diff --git a/app/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/kikyps/kcompressor/NativeCompressor$ProgressCallback.class b/app/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/kikyps/kcompressor/NativeCompressor$ProgressCallback.class
deleted file mode 100644
index 1a2b3be..0000000
Binary files a/app/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/kikyps/kcompressor/NativeCompressor$ProgressCallback.class and /dev/null differ
diff --git a/app/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/kikyps/kcompressor/NativeCompressor.class b/app/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/kikyps/kcompressor/NativeCompressor.class
deleted file mode 100644
index e6e307a..0000000
Binary files a/app/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/kikyps/kcompressor/NativeCompressor.class and /dev/null differ
diff --git a/app/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/kikyps/kcompressor/ProcessingActivity$1.class b/app/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/kikyps/kcompressor/ProcessingActivity$1.class
deleted file mode 100644
index 519dc16..0000000
Binary files a/app/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/kikyps/kcompressor/ProcessingActivity$1.class and /dev/null differ
diff --git a/app/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/kikyps/kcompressor/ProcessingActivity$2.class b/app/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/kikyps/kcompressor/ProcessingActivity$2.class
deleted file mode 100644
index 0a6acbe..0000000
Binary files a/app/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/kikyps/kcompressor/ProcessingActivity$2.class and /dev/null differ
diff --git a/app/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/kikyps/kcompressor/ProcessingActivity$3.class b/app/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/kikyps/kcompressor/ProcessingActivity$3.class
deleted file mode 100644
index e859bd8..0000000
Binary files a/app/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/kikyps/kcompressor/ProcessingActivity$3.class and /dev/null differ
diff --git a/app/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/kikyps/kcompressor/ProcessingActivity.class b/app/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/kikyps/kcompressor/ProcessingActivity.class
deleted file mode 100644
index b45ac72..0000000
Binary files a/app/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/kikyps/kcompressor/ProcessingActivity.class and /dev/null differ
diff --git a/app/build/intermediates/linked_resources_binary_format/debug/processDebugResources/linked-resources-binary-format-debug.ap_ b/app/build/intermediates/linked_resources_binary_format/debug/processDebugResources/linked-resources-binary-format-debug.ap_
deleted file mode 100644
index 8890261..0000000
Binary files a/app/build/intermediates/linked_resources_binary_format/debug/processDebugResources/linked-resources-binary-format-debug.ap_ and /dev/null differ
diff --git a/app/build/intermediates/linked_resources_binary_format/debug/processDebugResources/output-metadata.json b/app/build/intermediates/linked_resources_binary_format/debug/processDebugResources/output-metadata.json
deleted file mode 100644
index 1bc3d3c..0000000
--- a/app/build/intermediates/linked_resources_binary_format/debug/processDebugResources/output-metadata.json
+++ /dev/null
@@ -1,20 +0,0 @@
-{
- "version": 3,
- "artifactType": {
- "type": "LINKED_RESOURCES_BINARY_FORMAT",
- "kind": "Directory"
- },
- "applicationId": "com.kikyps.kcompressor",
- "variantName": "debug",
- "elements": [
- {
- "type": "SINGLE",
- "filters": [],
- "attributes": [],
- "versionCode": 1,
- "versionName": "1.0",
- "outputFile": "linked-resources-binary-format-debug.ap_"
- }
- ],
- "elementType": "File"
-}
\ No newline at end of file
diff --git a/app/build/intermediates/manifest_merge_blame_file/debug/processDebugMainManifest/manifest-merger-blame-debug-report.txt b/app/build/intermediates/manifest_merge_blame_file/debug/processDebugMainManifest/manifest-merger-blame-debug-report.txt
deleted file mode 100644
index 002035a..0000000
--- a/app/build/intermediates/manifest_merge_blame_file/debug/processDebugMainManifest/manifest-merger-blame-debug-report.txt
+++ /dev/null
@@ -1,64 +0,0 @@
-1
-2
-6
-7 INJECTED
-8 android:minSdkVersion="21"
-8-->INJECTED
-9 android:targetSdkVersion="37" />
-9-->INJECTED
-10
-11 D:\MyProject\kcompressor\app\src\main\AndroidManifest.xml:4:5-6:38
-12 android:name="android.permission.WRITE_EXTERNAL_STORAGE"
-12-->D:\MyProject\kcompressor\app\src\main\AndroidManifest.xml:5:9-65
-13 android:maxSdkVersion="28" />
-13-->D:\MyProject\kcompressor\app\src\main\AndroidManifest.xml:6:9-35
-14
-15 D:\MyProject\kcompressor\app\src\main\AndroidManifest.xml:8:5-30:19
-16 android:allowBackup="true"
-16-->D:\MyProject\kcompressor\app\src\main\AndroidManifest.xml:9:9-35
-17 android:debuggable="true"
-18 android:extractNativeLibs="true"
-18-->INJECTED
-19 android:label="KCompressor"
-19-->D:\MyProject\kcompressor\app\src\main\AndroidManifest.xml:10:9-36
-20 android:supportsRtl="true"
-20-->D:\MyProject\kcompressor\app\src\main\AndroidManifest.xml:11:9-35
-21 android:testOnly="true"
-22 android:theme="@style/AppTheme" >
-22-->D:\MyProject\kcompressor\app\src\main\AndroidManifest.xml:12:9-40
-23 D:\MyProject\kcompressor\app\src\main\AndroidManifest.xml:14:9-17:52
-24 android:name="com.kikyps.kcompressor.ProcessingActivity"
-24-->D:\MyProject\kcompressor\app\src\main\AndroidManifest.xml:15:13-47
-25 android:exported="false"
-25-->D:\MyProject\kcompressor\app\src\main\AndroidManifest.xml:16:13-37
-26 android:screenOrientation="portrait" />
-26-->D:\MyProject\kcompressor\app\src\main\AndroidManifest.xml:17:13-49
-27 D:\MyProject\kcompressor\app\src\main\AndroidManifest.xml:19:9-29:20
-28 android:name="com.kikyps.kcompressor.MainActivity"
-28-->D:\MyProject\kcompressor\app\src\main\AndroidManifest.xml:20:13-41
-29 android:exported="true"
-29-->D:\MyProject\kcompressor\app\src\main\AndroidManifest.xml:21:13-36
-30 android:screenOrientation="portrait" >
-30-->D:\MyProject\kcompressor\app\src\main\AndroidManifest.xml:22:13-49
-31
-31-->D:\MyProject\kcompressor\app\src\main\AndroidManifest.xml:24:13-27:29
-32
-32-->D:\MyProject\kcompressor\app\src\main\AndroidManifest.xml:25:17-69
-32-->D:\MyProject\kcompressor\app\src\main\AndroidManifest.xml:25:25-66
-33
-34
-34-->D:\MyProject\kcompressor\app\src\main\AndroidManifest.xml:26:17-77
-34-->D:\MyProject\kcompressor\app\src\main\AndroidManifest.xml:26:27-74
-35
-36
-37
-38
-39
diff --git a/app/build/intermediates/merged_java_res/debug/mergeDebugJavaResource/base.jar b/app/build/intermediates/merged_java_res/debug/mergeDebugJavaResource/base.jar
deleted file mode 100644
index 15cb0ec..0000000
Binary files a/app/build/intermediates/merged_java_res/debug/mergeDebugJavaResource/base.jar and /dev/null differ
diff --git a/app/build/intermediates/merged_manifest/debug/processDebugMainManifest/AndroidManifest.xml b/app/build/intermediates/merged_manifest/debug/processDebugMainManifest/AndroidManifest.xml
deleted file mode 100644
index cccf8d7..0000000
--- a/app/build/intermediates/merged_manifest/debug/processDebugMainManifest/AndroidManifest.xml
+++ /dev/null
@@ -1,39 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/app/build/intermediates/merged_manifests/debug/processDebugManifest/AndroidManifest.xml b/app/build/intermediates/merged_manifests/debug/processDebugManifest/AndroidManifest.xml
deleted file mode 100644
index cccf8d7..0000000
--- a/app/build/intermediates/merged_manifests/debug/processDebugManifest/AndroidManifest.xml
+++ /dev/null
@@ -1,39 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/app/build/intermediates/merged_manifests/debug/processDebugManifest/output-metadata.json b/app/build/intermediates/merged_manifests/debug/processDebugManifest/output-metadata.json
deleted file mode 100644
index 9ef53a1..0000000
--- a/app/build/intermediates/merged_manifests/debug/processDebugManifest/output-metadata.json
+++ /dev/null
@@ -1,20 +0,0 @@
-{
- "version": 3,
- "artifactType": {
- "type": "MERGED_MANIFESTS",
- "kind": "Directory"
- },
- "applicationId": "com.kikyps.kcompressor",
- "variantName": "debug",
- "elements": [
- {
- "type": "SINGLE",
- "filters": [],
- "attributes": [],
- "versionCode": 1,
- "versionName": "1.0",
- "outputFile": "AndroidManifest.xml"
- }
- ],
- "elementType": "File"
-}
\ No newline at end of file
diff --git a/app/build/intermediates/merged_native_libs/debug/mergeDebugNativeLibs/out/lib/arm64-v8a/libkcompressor.so b/app/build/intermediates/merged_native_libs/debug/mergeDebugNativeLibs/out/lib/arm64-v8a/libkcompressor.so
deleted file mode 100644
index 8c70c43..0000000
Binary files a/app/build/intermediates/merged_native_libs/debug/mergeDebugNativeLibs/out/lib/arm64-v8a/libkcompressor.so and /dev/null differ
diff --git a/app/build/intermediates/merged_res/debug/mergeDebugResources/drawable_bg_amoled_card.xml.flat b/app/build/intermediates/merged_res/debug/mergeDebugResources/drawable_bg_amoled_card.xml.flat
deleted file mode 100644
index 31a9a07..0000000
Binary files a/app/build/intermediates/merged_res/debug/mergeDebugResources/drawable_bg_amoled_card.xml.flat and /dev/null differ
diff --git a/app/build/intermediates/merged_res/debug/mergeDebugResources/drawable_bg_amoled_screen.xml.flat b/app/build/intermediates/merged_res/debug/mergeDebugResources/drawable_bg_amoled_screen.xml.flat
deleted file mode 100644
index a8952ac..0000000
Binary files a/app/build/intermediates/merged_res/debug/mergeDebugResources/drawable_bg_amoled_screen.xml.flat and /dev/null differ
diff --git a/app/build/intermediates/merged_res/debug/mergeDebugResources/drawable_bg_button_danger.xml.flat b/app/build/intermediates/merged_res/debug/mergeDebugResources/drawable_bg_button_danger.xml.flat
deleted file mode 100644
index a848bde..0000000
Binary files a/app/build/intermediates/merged_res/debug/mergeDebugResources/drawable_bg_button_danger.xml.flat and /dev/null differ
diff --git a/app/build/intermediates/merged_res/debug/mergeDebugResources/drawable_bg_button_dark_secondary.xml.flat b/app/build/intermediates/merged_res/debug/mergeDebugResources/drawable_bg_button_dark_secondary.xml.flat
deleted file mode 100644
index 99f6f10..0000000
Binary files a/app/build/intermediates/merged_res/debug/mergeDebugResources/drawable_bg_button_dark_secondary.xml.flat and /dev/null differ
diff --git a/app/build/intermediates/merged_res/debug/mergeDebugResources/drawable_bg_button_green.xml.flat b/app/build/intermediates/merged_res/debug/mergeDebugResources/drawable_bg_button_green.xml.flat
deleted file mode 100644
index 69dadd1..0000000
Binary files a/app/build/intermediates/merged_res/debug/mergeDebugResources/drawable_bg_button_green.xml.flat and /dev/null differ
diff --git a/app/build/intermediates/merged_res/debug/mergeDebugResources/drawable_bg_spinner_dark.xml.flat b/app/build/intermediates/merged_res/debug/mergeDebugResources/drawable_bg_spinner_dark.xml.flat
deleted file mode 100644
index c66a234..0000000
Binary files a/app/build/intermediates/merged_res/debug/mergeDebugResources/drawable_bg_spinner_dark.xml.flat and /dev/null differ
diff --git a/app/build/intermediates/merged_res/debug/mergeDebugResources/drawable_ic_share_black_24.xml.flat b/app/build/intermediates/merged_res/debug/mergeDebugResources/drawable_ic_share_black_24.xml.flat
deleted file mode 100644
index 9aa3ad3..0000000
Binary files a/app/build/intermediates/merged_res/debug/mergeDebugResources/drawable_ic_share_black_24.xml.flat and /dev/null differ
diff --git a/app/build/intermediates/merged_res/debug/mergeDebugResources/drawable_ic_share_white_24.xml.flat b/app/build/intermediates/merged_res/debug/mergeDebugResources/drawable_ic_share_white_24.xml.flat
deleted file mode 100644
index 1510ac2..0000000
Binary files a/app/build/intermediates/merged_res/debug/mergeDebugResources/drawable_ic_share_white_24.xml.flat and /dev/null differ
diff --git a/app/build/intermediates/merged_res/debug/mergeDebugResources/layout_activity_main_amoled.xml.flat b/app/build/intermediates/merged_res/debug/mergeDebugResources/layout_activity_main_amoled.xml.flat
deleted file mode 100644
index 9e7558c..0000000
Binary files a/app/build/intermediates/merged_res/debug/mergeDebugResources/layout_activity_main_amoled.xml.flat and /dev/null differ
diff --git a/app/build/intermediates/merged_res/debug/mergeDebugResources/layout_activity_processing.xml.flat b/app/build/intermediates/merged_res/debug/mergeDebugResources/layout_activity_processing.xml.flat
deleted file mode 100644
index 202ac9a..0000000
Binary files a/app/build/intermediates/merged_res/debug/mergeDebugResources/layout_activity_processing.xml.flat and /dev/null differ
diff --git a/app/build/intermediates/merged_res/debug/mergeDebugResources/values_values.arsc.flat b/app/build/intermediates/merged_res/debug/mergeDebugResources/values_values.arsc.flat
deleted file mode 100644
index 4df4644..0000000
Binary files a/app/build/intermediates/merged_res/debug/mergeDebugResources/values_values.arsc.flat and /dev/null differ
diff --git a/app/build/intermediates/merged_res_blame_folder/debug/mergeDebugResources/out/multi-v2/mergeDebugResources.json b/app/build/intermediates/merged_res_blame_folder/debug/mergeDebugResources/out/multi-v2/mergeDebugResources.json
deleted file mode 100644
index 2e02103..0000000
--- a/app/build/intermediates/merged_res_blame_folder/debug/mergeDebugResources/out/multi-v2/mergeDebugResources.json
+++ /dev/null
@@ -1,20 +0,0 @@
-{
- "logs": [
- {
- "outputFile": "com.kikyps.kcompressor.app-debug-4:/values_values.arsc.flat",
- "map": [
- {
- "source": "D:\\MyProject\\kcompressor\\app\\src\\main\\res\\values\\styles.xml",
- "from": {
- "startLines": "2",
- "startColumns": "4",
- "startOffsets": "55",
- "endLines": "9",
- "endColumns": "12",
- "endOffsets": "496"
- }
- }
- ]
- }
- ]
-}
\ No newline at end of file
diff --git a/app/build/intermediates/merged_res_blame_folder/debug/mergeDebugResources/out/multi-v2/values.json b/app/build/intermediates/merged_res_blame_folder/debug/mergeDebugResources/out/multi-v2/values.json
deleted file mode 100644
index c175275..0000000
--- a/app/build/intermediates/merged_res_blame_folder/debug/mergeDebugResources/out/multi-v2/values.json
+++ /dev/null
@@ -1,20 +0,0 @@
-{
- "logs": [
- {
- "outputFile": "com.kikyps.kcompressor.app-mergeDebugResources-2:/values/values.xml",
- "map": [
- {
- "source": "D:\\MyProject\\kcompressor\\app\\src\\main\\res\\values\\styles.xml",
- "from": {
- "startLines": "2",
- "startColumns": "4",
- "startOffsets": "55",
- "endLines": "9",
- "endColumns": "12",
- "endOffsets": "496"
- }
- }
- ]
- }
- ]
-}
\ No newline at end of file
diff --git a/app/build/intermediates/merged_res_blame_folder/debug/mergeDebugResources/out/single/mergeDebugResources.json b/app/build/intermediates/merged_res_blame_folder/debug/mergeDebugResources/out/single/mergeDebugResources.json
deleted file mode 100644
index 53724e1..0000000
--- a/app/build/intermediates/merged_res_blame_folder/debug/mergeDebugResources/out/single/mergeDebugResources.json
+++ /dev/null
@@ -1,46 +0,0 @@
-[
- {
- "merged": "C:\\Users\\Admin\\.gradle\\daemon\\9.4.1\\com.kikyps.kcompressor.app-debug-4:\\drawable_bg_amoled_screen.xml.flat",
- "source": "C:\\Users\\Admin\\.gradle\\daemon\\9.4.1\\com.kikyps.kcompressor.app-main-6:\\drawable\\bg_amoled_screen.xml"
- },
- {
- "merged": "C:\\Users\\Admin\\.gradle\\daemon\\9.4.1\\com.kikyps.kcompressor.app-debug-4:\\drawable_ic_share_white_24.xml.flat",
- "source": "C:\\Users\\Admin\\.gradle\\daemon\\9.4.1\\com.kikyps.kcompressor.app-main-6:\\drawable\\ic_share_white_24.xml"
- },
- {
- "merged": "C:\\Users\\Admin\\.gradle\\daemon\\9.4.1\\com.kikyps.kcompressor.app-debug-4:\\layout_activity_main_amoled.xml.flat",
- "source": "C:\\Users\\Admin\\.gradle\\daemon\\9.4.1\\com.kikyps.kcompressor.app-main-6:\\layout\\activity_main_amoled.xml"
- },
- {
- "merged": "C:\\Users\\Admin\\.gradle\\daemon\\9.4.1\\com.kikyps.kcompressor.app-debug-4:\\layout_activity_processing.xml.flat",
- "source": "C:\\Users\\Admin\\.gradle\\daemon\\9.4.1\\com.kikyps.kcompressor.app-main-6:\\layout\\activity_processing.xml"
- },
- {
- "merged": "C:\\Users\\Admin\\.gradle\\daemon\\9.4.1\\com.kikyps.kcompressor.app-debug-4:\\drawable_ic_share_black_24.xml.flat",
- "source": "C:\\Users\\Admin\\.gradle\\daemon\\9.4.1\\com.kikyps.kcompressor.app-main-6:\\drawable\\ic_share_black_24.xml"
- },
- {
- "merged": "C:\\Users\\Admin\\.gradle\\daemon\\9.4.1\\com.kikyps.kcompressor.app-debug-4:\\drawable_bg_button_danger.xml.flat",
- "source": "C:\\Users\\Admin\\.gradle\\daemon\\9.4.1\\com.kikyps.kcompressor.app-main-6:\\drawable\\bg_button_danger.xml"
- },
- {
- "merged": "C:\\Users\\Admin\\.gradle\\daemon\\9.4.1\\com.kikyps.kcompressor.app-debug-4:\\drawable_bg_button_green.xml.flat",
- "source": "C:\\Users\\Admin\\.gradle\\daemon\\9.4.1\\com.kikyps.kcompressor.app-main-6:\\drawable\\bg_button_green.xml"
- },
- {
- "merged": "C:\\Users\\Admin\\.gradle\\daemon\\9.4.1\\com.kikyps.kcompressor.app-debug-4:\\drawable_bg_spinner_dark.xml.flat",
- "source": "C:\\Users\\Admin\\.gradle\\daemon\\9.4.1\\com.kikyps.kcompressor.app-main-6:\\drawable\\bg_spinner_dark.xml"
- },
- {
- "merged": "C:\\Users\\Admin\\.gradle\\daemon\\9.4.1\\com.kikyps.kcompressor.app-debug-4:\\drawable_bg_amoled_card.xml.flat",
- "source": "C:\\Users\\Admin\\.gradle\\daemon\\9.4.1\\com.kikyps.kcompressor.app-main-6:\\drawable\\bg_amoled_card.xml"
- },
- {
- "merged": "C:\\Users\\Admin\\.gradle\\daemon\\9.4.1\\com.kikyps.kcompressor.app-debug-4:\\drawable_bg_button_dark_secondary.xml.flat",
- "source": "C:\\Users\\Admin\\.gradle\\daemon\\9.4.1\\com.kikyps.kcompressor.app-main-6:\\drawable\\bg_button_dark_secondary.xml"
- },
- {
- "merged": "com.kikyps.kcompressor.app-debug-4:/layout_activity_main_amoled.xml.flat",
- "source": "com.kikyps.kcompressor.app-main-6:/layout/activity_main_amoled.xml"
- }
-]
\ No newline at end of file
diff --git a/app/build/intermediates/navigation_json/debug/extractDeepLinksDebug/navigation.json b/app/build/intermediates/navigation_json/debug/extractDeepLinksDebug/navigation.json
deleted file mode 100644
index 0637a08..0000000
--- a/app/build/intermediates/navigation_json/debug/extractDeepLinksDebug/navigation.json
+++ /dev/null
@@ -1 +0,0 @@
-[]
\ No newline at end of file
diff --git a/app/build/intermediates/nested_resources_validation_report/debug/generateDebugResources/nestedResourcesValidationReport.txt b/app/build/intermediates/nested_resources_validation_report/debug/generateDebugResources/nestedResourcesValidationReport.txt
deleted file mode 100644
index 08f4ebe..0000000
--- a/app/build/intermediates/nested_resources_validation_report/debug/generateDebugResources/nestedResourcesValidationReport.txt
+++ /dev/null
@@ -1 +0,0 @@
-0 Warning/Error
\ No newline at end of file
diff --git a/app/build/intermediates/packaged_manifests/debug/processDebugManifestForPackage/AndroidManifest.xml b/app/build/intermediates/packaged_manifests/debug/processDebugManifestForPackage/AndroidManifest.xml
deleted file mode 100644
index cccf8d7..0000000
--- a/app/build/intermediates/packaged_manifests/debug/processDebugManifestForPackage/AndroidManifest.xml
+++ /dev/null
@@ -1,39 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/app/build/intermediates/packaged_manifests/debug/processDebugManifestForPackage/output-metadata.json b/app/build/intermediates/packaged_manifests/debug/processDebugManifestForPackage/output-metadata.json
deleted file mode 100644
index 47243bc..0000000
--- a/app/build/intermediates/packaged_manifests/debug/processDebugManifestForPackage/output-metadata.json
+++ /dev/null
@@ -1,20 +0,0 @@
-{
- "version": 3,
- "artifactType": {
- "type": "PACKAGED_MANIFESTS",
- "kind": "Directory"
- },
- "applicationId": "com.kikyps.kcompressor",
- "variantName": "debug",
- "elements": [
- {
- "type": "SINGLE",
- "filters": [],
- "attributes": [],
- "versionCode": 1,
- "versionName": "1.0",
- "outputFile": "AndroidManifest.xml"
- }
- ],
- "elementType": "File"
-}
\ No newline at end of file
diff --git a/app/build/intermediates/project_dex_archive/debug/dexBuilderDebug/out/8ed2b0ffb1fc5751674c7c9871fb0298dc8e83734d13d146dd27f9fa15079896_2.jar b/app/build/intermediates/project_dex_archive/debug/dexBuilderDebug/out/8ed2b0ffb1fc5751674c7c9871fb0298dc8e83734d13d146dd27f9fa15079896_2.jar
deleted file mode 100644
index b14d091..0000000
Binary files a/app/build/intermediates/project_dex_archive/debug/dexBuilderDebug/out/8ed2b0ffb1fc5751674c7c9871fb0298dc8e83734d13d146dd27f9fa15079896_2.jar and /dev/null differ
diff --git a/app/build/intermediates/project_dex_archive/debug/dexBuilderDebug/out/com/kikyps/kcompressor/CircleProgressView.dex b/app/build/intermediates/project_dex_archive/debug/dexBuilderDebug/out/com/kikyps/kcompressor/CircleProgressView.dex
deleted file mode 100644
index fd124ca..0000000
Binary files a/app/build/intermediates/project_dex_archive/debug/dexBuilderDebug/out/com/kikyps/kcompressor/CircleProgressView.dex and /dev/null differ
diff --git a/app/build/intermediates/project_dex_archive/debug/dexBuilderDebug/out/com/kikyps/kcompressor/MainActivity$1.dex b/app/build/intermediates/project_dex_archive/debug/dexBuilderDebug/out/com/kikyps/kcompressor/MainActivity$1.dex
deleted file mode 100644
index e2e9f98..0000000
Binary files a/app/build/intermediates/project_dex_archive/debug/dexBuilderDebug/out/com/kikyps/kcompressor/MainActivity$1.dex and /dev/null differ
diff --git a/app/build/intermediates/project_dex_archive/debug/dexBuilderDebug/out/com/kikyps/kcompressor/MainActivity$2.dex b/app/build/intermediates/project_dex_archive/debug/dexBuilderDebug/out/com/kikyps/kcompressor/MainActivity$2.dex
deleted file mode 100644
index 319505c..0000000
Binary files a/app/build/intermediates/project_dex_archive/debug/dexBuilderDebug/out/com/kikyps/kcompressor/MainActivity$2.dex and /dev/null differ
diff --git a/app/build/intermediates/project_dex_archive/debug/dexBuilderDebug/out/com/kikyps/kcompressor/MainActivity$3.dex b/app/build/intermediates/project_dex_archive/debug/dexBuilderDebug/out/com/kikyps/kcompressor/MainActivity$3.dex
deleted file mode 100644
index c4c454e..0000000
Binary files a/app/build/intermediates/project_dex_archive/debug/dexBuilderDebug/out/com/kikyps/kcompressor/MainActivity$3.dex and /dev/null differ
diff --git a/app/build/intermediates/project_dex_archive/debug/dexBuilderDebug/out/com/kikyps/kcompressor/MainActivity$AudioOption.dex b/app/build/intermediates/project_dex_archive/debug/dexBuilderDebug/out/com/kikyps/kcompressor/MainActivity$AudioOption.dex
deleted file mode 100644
index cb91125..0000000
Binary files a/app/build/intermediates/project_dex_archive/debug/dexBuilderDebug/out/com/kikyps/kcompressor/MainActivity$AudioOption.dex and /dev/null differ
diff --git a/app/build/intermediates/project_dex_archive/debug/dexBuilderDebug/out/com/kikyps/kcompressor/MainActivity$CodecOption.dex b/app/build/intermediates/project_dex_archive/debug/dexBuilderDebug/out/com/kikyps/kcompressor/MainActivity$CodecOption.dex
deleted file mode 100644
index 4d463cd..0000000
Binary files a/app/build/intermediates/project_dex_archive/debug/dexBuilderDebug/out/com/kikyps/kcompressor/MainActivity$CodecOption.dex and /dev/null differ
diff --git a/app/build/intermediates/project_dex_archive/debug/dexBuilderDebug/out/com/kikyps/kcompressor/MainActivity$ResolutionOption.dex b/app/build/intermediates/project_dex_archive/debug/dexBuilderDebug/out/com/kikyps/kcompressor/MainActivity$ResolutionOption.dex
deleted file mode 100644
index d663cda..0000000
Binary files a/app/build/intermediates/project_dex_archive/debug/dexBuilderDebug/out/com/kikyps/kcompressor/MainActivity$ResolutionOption.dex and /dev/null differ
diff --git a/app/build/intermediates/project_dex_archive/debug/dexBuilderDebug/out/com/kikyps/kcompressor/MainActivity$VideoInfo.dex b/app/build/intermediates/project_dex_archive/debug/dexBuilderDebug/out/com/kikyps/kcompressor/MainActivity$VideoInfo.dex
deleted file mode 100644
index c5d4832..0000000
Binary files a/app/build/intermediates/project_dex_archive/debug/dexBuilderDebug/out/com/kikyps/kcompressor/MainActivity$VideoInfo.dex and /dev/null differ
diff --git a/app/build/intermediates/project_dex_archive/debug/dexBuilderDebug/out/com/kikyps/kcompressor/MainActivity.dex b/app/build/intermediates/project_dex_archive/debug/dexBuilderDebug/out/com/kikyps/kcompressor/MainActivity.dex
deleted file mode 100644
index bc7f82a..0000000
Binary files a/app/build/intermediates/project_dex_archive/debug/dexBuilderDebug/out/com/kikyps/kcompressor/MainActivity.dex and /dev/null differ
diff --git a/app/build/intermediates/project_dex_archive/debug/dexBuilderDebug/out/com/kikyps/kcompressor/NativeCompressor$ProgressCallback.dex b/app/build/intermediates/project_dex_archive/debug/dexBuilderDebug/out/com/kikyps/kcompressor/NativeCompressor$ProgressCallback.dex
deleted file mode 100644
index 24b4112..0000000
Binary files a/app/build/intermediates/project_dex_archive/debug/dexBuilderDebug/out/com/kikyps/kcompressor/NativeCompressor$ProgressCallback.dex and /dev/null differ
diff --git a/app/build/intermediates/project_dex_archive/debug/dexBuilderDebug/out/com/kikyps/kcompressor/NativeCompressor.dex b/app/build/intermediates/project_dex_archive/debug/dexBuilderDebug/out/com/kikyps/kcompressor/NativeCompressor.dex
deleted file mode 100644
index dbeba22..0000000
Binary files a/app/build/intermediates/project_dex_archive/debug/dexBuilderDebug/out/com/kikyps/kcompressor/NativeCompressor.dex and /dev/null differ
diff --git a/app/build/intermediates/project_dex_archive/debug/dexBuilderDebug/out/com/kikyps/kcompressor/ProcessingActivity$1.dex b/app/build/intermediates/project_dex_archive/debug/dexBuilderDebug/out/com/kikyps/kcompressor/ProcessingActivity$1.dex
deleted file mode 100644
index b015ecf..0000000
Binary files a/app/build/intermediates/project_dex_archive/debug/dexBuilderDebug/out/com/kikyps/kcompressor/ProcessingActivity$1.dex and /dev/null differ
diff --git a/app/build/intermediates/project_dex_archive/debug/dexBuilderDebug/out/com/kikyps/kcompressor/ProcessingActivity$2.dex b/app/build/intermediates/project_dex_archive/debug/dexBuilderDebug/out/com/kikyps/kcompressor/ProcessingActivity$2.dex
deleted file mode 100644
index 994ec23..0000000
Binary files a/app/build/intermediates/project_dex_archive/debug/dexBuilderDebug/out/com/kikyps/kcompressor/ProcessingActivity$2.dex and /dev/null differ
diff --git a/app/build/intermediates/project_dex_archive/debug/dexBuilderDebug/out/com/kikyps/kcompressor/ProcessingActivity$3.dex b/app/build/intermediates/project_dex_archive/debug/dexBuilderDebug/out/com/kikyps/kcompressor/ProcessingActivity$3.dex
deleted file mode 100644
index 9249e79..0000000
Binary files a/app/build/intermediates/project_dex_archive/debug/dexBuilderDebug/out/com/kikyps/kcompressor/ProcessingActivity$3.dex and /dev/null differ
diff --git a/app/build/intermediates/project_dex_archive/debug/dexBuilderDebug/out/com/kikyps/kcompressor/ProcessingActivity.dex b/app/build/intermediates/project_dex_archive/debug/dexBuilderDebug/out/com/kikyps/kcompressor/ProcessingActivity.dex
deleted file mode 100644
index 5af4f86..0000000
Binary files a/app/build/intermediates/project_dex_archive/debug/dexBuilderDebug/out/com/kikyps/kcompressor/ProcessingActivity.dex and /dev/null differ
diff --git a/app/build/intermediates/runtime_symbol_list/debug/processDebugResources/R.txt b/app/build/intermediates/runtime_symbol_list/debug/processDebugResources/R.txt
deleted file mode 100644
index c92294d..0000000
--- a/app/build/intermediates/runtime_symbol_list/debug/processDebugResources/R.txt
+++ /dev/null
@@ -1,39 +0,0 @@
-int drawable bg_amoled_card 0x7f010000
-int drawable bg_amoled_screen 0x7f010001
-int drawable bg_button_danger 0x7f010002
-int drawable bg_button_dark_secondary 0x7f010003
-int drawable bg_button_green 0x7f010004
-int drawable bg_spinner_dark 0x7f010005
-int drawable ic_share_black_24 0x7f010006
-int drawable ic_share_white_24 0x7f010007
-int id btnCancel 0x7f020000
-int id btnCompress 0x7f020001
-int id btnPick 0x7f020002
-int id btnShareDoc 0x7f020003
-int id btnShareVideo 0x7f020004
-int id cardVideoCompression 0x7f020005
-int id circleProgress 0x7f020006
-int id layoutAdvancedSettings 0x7f020007
-int id layoutCompressionSettings 0x7f020008
-int id seekCrf 0x7f020009
-int id shareButtonRow 0x7f02000a
-int id spAudio 0x7f02000b
-int id spCodec 0x7f02000c
-int id spPreset 0x7f02000d
-int id spResolution 0x7f02000e
-int id txtCompressionSummary 0x7f02000f
-int id txtConfig 0x7f020010
-int id txtCrfValue 0x7f020011
-int id txtElapsed 0x7f020012
-int id txtOutput 0x7f020013
-int id txtProcessingTitle 0x7f020014
-int id txtProgress 0x7f020015
-int id txtSelected 0x7f020016
-int id txtSettingsToggle 0x7f020017
-int id txtStatus 0x7f020018
-int id txtSubtitle 0x7f020019
-int id txtTitle 0x7f02001a
-int id txtVideoInfo 0x7f02001b
-int layout activity_main_amoled 0x7f030000
-int layout activity_processing 0x7f030001
-int style AppTheme 0x7f040000
diff --git a/app/build/intermediates/signing_config_versions/debug/writeDebugSigningConfigVersions/signing-config-versions.json b/app/build/intermediates/signing_config_versions/debug/writeDebugSigningConfigVersions/signing-config-versions.json
deleted file mode 100644
index 51f6368..0000000
--- a/app/build/intermediates/signing_config_versions/debug/writeDebugSigningConfigVersions/signing-config-versions.json
+++ /dev/null
@@ -1 +0,0 @@
-{"enableV1Signing":false,"enableV2Signing":true,"enableV3Signing":false,"enableV4Signing":false}
\ No newline at end of file
diff --git a/app/build/intermediates/stable_resource_ids_file/debug/processDebugResources/stableIds.txt b/app/build/intermediates/stable_resource_ids_file/debug/processDebugResources/stableIds.txt
deleted file mode 100644
index 15eebdb..0000000
--- a/app/build/intermediates/stable_resource_ids_file/debug/processDebugResources/stableIds.txt
+++ /dev/null
@@ -1,39 +0,0 @@
-com.kikyps.kcompressor:layout/activity_processing = 0x7f030001
-com.kikyps.kcompressor:id/txtSelected = 0x7f020016
-com.kikyps.kcompressor:layout/activity_main_amoled = 0x7f030000
-com.kikyps.kcompressor:id/txtElapsed = 0x7f020012
-com.kikyps.kcompressor:id/txtOutput = 0x7f020013
-com.kikyps.kcompressor:id/txtSettingsToggle = 0x7f020017
-com.kikyps.kcompressor:id/txtTitle = 0x7f02001a
-com.kikyps.kcompressor:id/btnCompress = 0x7f020001
-com.kikyps.kcompressor:drawable/bg_spinner_dark = 0x7f010005
-com.kikyps.kcompressor:id/seekCrf = 0x7f020009
-com.kikyps.kcompressor:id/txtProcessingTitle = 0x7f020014
-com.kikyps.kcompressor:id/txtCrfValue = 0x7f020011
-com.kikyps.kcompressor:id/txtConfig = 0x7f020010
-com.kikyps.kcompressor:id/txtSubtitle = 0x7f020019
-com.kikyps.kcompressor:id/shareButtonRow = 0x7f02000a
-com.kikyps.kcompressor:id/txtStatus = 0x7f020018
-com.kikyps.kcompressor:id/txtCompressionSummary = 0x7f02000f
-com.kikyps.kcompressor:drawable/bg_amoled_screen = 0x7f010001
-com.kikyps.kcompressor:id/spCodec = 0x7f02000c
-com.kikyps.kcompressor:id/spResolution = 0x7f02000e
-com.kikyps.kcompressor:id/spPreset = 0x7f02000d
-com.kikyps.kcompressor:id/cardVideoCompression = 0x7f020005
-com.kikyps.kcompressor:drawable/bg_button_danger = 0x7f010002
-com.kikyps.kcompressor:id/spAudio = 0x7f02000b
-com.kikyps.kcompressor:id/txtVideoInfo = 0x7f02001b
-com.kikyps.kcompressor:id/layoutCompressionSettings = 0x7f020008
-com.kikyps.kcompressor:id/btnShareVideo = 0x7f020004
-com.kikyps.kcompressor:style/AppTheme = 0x7f040000
-com.kikyps.kcompressor:drawable/ic_share_black_24 = 0x7f010006
-com.kikyps.kcompressor:id/btnPick = 0x7f020002
-com.kikyps.kcompressor:id/layoutAdvancedSettings = 0x7f020007
-com.kikyps.kcompressor:drawable/bg_button_green = 0x7f010004
-com.kikyps.kcompressor:id/btnCancel = 0x7f020000
-com.kikyps.kcompressor:id/txtProgress = 0x7f020015
-com.kikyps.kcompressor:id/btnShareDoc = 0x7f020003
-com.kikyps.kcompressor:drawable/bg_button_dark_secondary = 0x7f010003
-com.kikyps.kcompressor:drawable/ic_share_white_24 = 0x7f010007
-com.kikyps.kcompressor:id/circleProgress = 0x7f020006
-com.kikyps.kcompressor:drawable/bg_amoled_card = 0x7f010000
diff --git a/app/build/intermediates/stripped_native_libs/debug/stripDebugDebugSymbols/out/lib/arm64-v8a/libkcompressor.so b/app/build/intermediates/stripped_native_libs/debug/stripDebugDebugSymbols/out/lib/arm64-v8a/libkcompressor.so
deleted file mode 100644
index 8b1676a..0000000
Binary files a/app/build/intermediates/stripped_native_libs/debug/stripDebugDebugSymbols/out/lib/arm64-v8a/libkcompressor.so and /dev/null differ
diff --git a/app/build/outputs/logs/manifest-merger-debug-report.txt b/app/build/outputs/logs/manifest-merger-debug-report.txt
deleted file mode 100644
index c47e0e6..0000000
--- a/app/build/outputs/logs/manifest-merger-debug-report.txt
+++ /dev/null
@@ -1,67 +0,0 @@
--- Merging decision tree log ---
-manifest
-ADDED from D:\MyProject\kcompressor\app\src\main\AndroidManifest.xml:2:1-31:12
-INJECTED from D:\MyProject\kcompressor\app\src\main\AndroidManifest.xml:2:1-31:12
-INJECTED from D:\MyProject\kcompressor\app\src\main\AndroidManifest.xml:2:1-31:12
-INJECTED from D:\MyProject\kcompressor\app\src\main\AndroidManifest.xml:2:1-31:12
- package
- INJECTED from D:\MyProject\kcompressor\app\src\main\AndroidManifest.xml
- android:versionName
- INJECTED from D:\MyProject\kcompressor\app\src\main\AndroidManifest.xml
- android:versionCode
- INJECTED from D:\MyProject\kcompressor\app\src\main\AndroidManifest.xml
- xmlns:android
- ADDED from D:\MyProject\kcompressor\app\src\main\AndroidManifest.xml:2:11-69
-uses-permission#android.permission.WRITE_EXTERNAL_STORAGE
-ADDED from D:\MyProject\kcompressor\app\src\main\AndroidManifest.xml:4:5-6:38
- android:maxSdkVersion
- ADDED from D:\MyProject\kcompressor\app\src\main\AndroidManifest.xml:6:9-35
- android:name
- ADDED from D:\MyProject\kcompressor\app\src\main\AndroidManifest.xml:5:9-65
-application
-ADDED from D:\MyProject\kcompressor\app\src\main\AndroidManifest.xml:8:5-30:19
-INJECTED from D:\MyProject\kcompressor\app\src\main\AndroidManifest.xml:8:5-30:19
- android:extractNativeLibs
- INJECTED from D:\MyProject\kcompressor\app\src\main\AndroidManifest.xml
- android:supportsRtl
- ADDED from D:\MyProject\kcompressor\app\src\main\AndroidManifest.xml:11:9-35
- android:label
- ADDED from D:\MyProject\kcompressor\app\src\main\AndroidManifest.xml:10:9-36
- android:allowBackup
- ADDED from D:\MyProject\kcompressor\app\src\main\AndroidManifest.xml:9:9-35
- android:theme
- ADDED from D:\MyProject\kcompressor\app\src\main\AndroidManifest.xml:12:9-40
-activity#com.kikyps.kcompressor.ProcessingActivity
-ADDED from D:\MyProject\kcompressor\app\src\main\AndroidManifest.xml:14:9-17:52
- android:screenOrientation
- ADDED from D:\MyProject\kcompressor\app\src\main\AndroidManifest.xml:17:13-49
- android:exported
- ADDED from D:\MyProject\kcompressor\app\src\main\AndroidManifest.xml:16:13-37
- android:name
- ADDED from D:\MyProject\kcompressor\app\src\main\AndroidManifest.xml:15:13-47
-activity#com.kikyps.kcompressor.MainActivity
-ADDED from D:\MyProject\kcompressor\app\src\main\AndroidManifest.xml:19:9-29:20
- android:screenOrientation
- ADDED from D:\MyProject\kcompressor\app\src\main\AndroidManifest.xml:22:13-49
- android:exported
- ADDED from D:\MyProject\kcompressor\app\src\main\AndroidManifest.xml:21:13-36
- android:name
- ADDED from D:\MyProject\kcompressor\app\src\main\AndroidManifest.xml:20:13-41
-intent-filter#action:name:android.intent.action.MAIN+category:name:android.intent.category.LAUNCHER
-ADDED from D:\MyProject\kcompressor\app\src\main\AndroidManifest.xml:24:13-27:29
-action#android.intent.action.MAIN
-ADDED from D:\MyProject\kcompressor\app\src\main\AndroidManifest.xml:25:17-69
- android:name
- ADDED from D:\MyProject\kcompressor\app\src\main\AndroidManifest.xml:25:25-66
-category#android.intent.category.LAUNCHER
-ADDED from D:\MyProject\kcompressor\app\src\main\AndroidManifest.xml:26:17-77
- android:name
- ADDED from D:\MyProject\kcompressor\app\src\main\AndroidManifest.xml:26:27-74
-uses-sdk
-INJECTED from D:\MyProject\kcompressor\app\src\main\AndroidManifest.xml reason: use-sdk injection requested
-INJECTED from D:\MyProject\kcompressor\app\src\main\AndroidManifest.xml
-INJECTED from D:\MyProject\kcompressor\app\src\main\AndroidManifest.xml
- android:targetSdkVersion
- INJECTED from D:\MyProject\kcompressor\app\src\main\AndroidManifest.xml
- android:minSdkVersion
- INJECTED from D:\MyProject\kcompressor\app\src\main\AndroidManifest.xml
diff --git a/app/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/MainActivity$1.class.uniqueId5 b/app/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/MainActivity$1.class.uniqueId5
deleted file mode 100644
index 5809e2b..0000000
Binary files a/app/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/MainActivity$1.class.uniqueId5 and /dev/null differ
diff --git a/app/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/MainActivity$2.class.uniqueId0 b/app/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/MainActivity$2.class.uniqueId0
deleted file mode 100644
index 68be7a3..0000000
Binary files a/app/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/MainActivity$2.class.uniqueId0 and /dev/null differ
diff --git a/app/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/MainActivity$3.class.uniqueId8 b/app/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/MainActivity$3.class.uniqueId8
deleted file mode 100644
index e7309f8..0000000
Binary files a/app/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/MainActivity$3.class.uniqueId8 and /dev/null differ
diff --git a/app/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/MainActivity$AudioOption.class.uniqueId1 b/app/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/MainActivity$AudioOption.class.uniqueId1
deleted file mode 100644
index fdd96fe..0000000
Binary files a/app/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/MainActivity$AudioOption.class.uniqueId1 and /dev/null differ
diff --git a/app/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/MainActivity$CodecOption.class.uniqueId6 b/app/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/MainActivity$CodecOption.class.uniqueId6
deleted file mode 100644
index 8c9ceba..0000000
Binary files a/app/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/MainActivity$CodecOption.class.uniqueId6 and /dev/null differ
diff --git a/app/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/MainActivity$ResolutionOption.class.uniqueId7 b/app/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/MainActivity$ResolutionOption.class.uniqueId7
deleted file mode 100644
index 00f354a..0000000
Binary files a/app/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/MainActivity$ResolutionOption.class.uniqueId7 and /dev/null differ
diff --git a/app/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/MainActivity$VideoInfo.class.uniqueId4 b/app/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/MainActivity$VideoInfo.class.uniqueId4
deleted file mode 100644
index 41f6a4c..0000000
Binary files a/app/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/MainActivity$VideoInfo.class.uniqueId4 and /dev/null differ
diff --git a/app/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/MainActivity.class.uniqueId10 b/app/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/MainActivity.class.uniqueId10
deleted file mode 100644
index 9909cd6..0000000
Binary files a/app/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/MainActivity.class.uniqueId10 and /dev/null differ
diff --git a/app/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/ProcessingActivity$1.class.uniqueId2 b/app/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/ProcessingActivity$1.class.uniqueId2
deleted file mode 100644
index 519dc16..0000000
Binary files a/app/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/ProcessingActivity$1.class.uniqueId2 and /dev/null differ
diff --git a/app/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/ProcessingActivity$2.class.uniqueId11 b/app/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/ProcessingActivity$2.class.uniqueId11
deleted file mode 100644
index 0a6acbe..0000000
Binary files a/app/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/ProcessingActivity$2.class.uniqueId11 and /dev/null differ
diff --git a/app/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/ProcessingActivity$3.class.uniqueId9 b/app/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/ProcessingActivity$3.class.uniqueId9
deleted file mode 100644
index e859bd8..0000000
Binary files a/app/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/ProcessingActivity$3.class.uniqueId9 and /dev/null differ
diff --git a/app/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/ProcessingActivity.class.uniqueId3 b/app/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/ProcessingActivity.class.uniqueId3
deleted file mode 100644
index b45ac72..0000000
Binary files a/app/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/ProcessingActivity.class.uniqueId3 and /dev/null differ
diff --git a/app/build/tmp/compileDebugJavaWithJavac/previous-compilation-data.bin b/app/build/tmp/compileDebugJavaWithJavac/previous-compilation-data.bin
deleted file mode 100644
index f0ed9c0..0000000
Binary files a/app/build/tmp/compileDebugJavaWithJavac/previous-compilation-data.bin and /dev/null differ
diff --git a/app/src/main/cpp/CMakeLists.txt b/app/src/main/cpp/CMakeLists.txt
index cbac310..f081aea 100644
--- a/app/src/main/cpp/CMakeLists.txt
+++ b/app/src/main/cpp/CMakeLists.txt
@@ -11,36 +11,79 @@ set(FFMPEG_INCLUDE_DIR
set(FFMPEG_LIB_DIR
${FFMPEG_ROOT}/lib)
+# Output dari setup_image_compressor_android_*.sh:
+# cpp/third_party/android-image-compres//include
+# cpp/third_party/android-image-compres//lib
+set(IMAGE_COMPRESS_ROOT
+ ${CMAKE_SOURCE_DIR}/third_party/android-image-compres/${ANDROID_ABI})
+
+set(IMAGE_COMPRESS_INCLUDE_DIR
+ ${IMAGE_COMPRESS_ROOT}/include)
+
+set(IMAGE_COMPRESS_LIB_DIR
+ ${IMAGE_COMPRESS_ROOT}/lib)
+
add_library(kcompressor SHARED
- native_compressor.cpp)
+ native_compressor.cpp
+ compressor_common.cpp
+ video_compressor.cpp
+ image_compressor.cpp)
+
+target_link_options(kcompressor PRIVATE
+ -Wl,--allow-multiple-definition
+ -Wl,--exclude-libs,libimagequant.a
+ -Wl,--exclude-libs,liboxipng_ffi.a)
target_include_directories(kcompressor PRIVATE
+ ${CMAKE_CURRENT_SOURCE_DIR}
${FFMPEG_INCLUDE_DIR}
${FFMPEG_INCLUDE_DIR}/x264
- ${FFMPEG_INCLUDE_DIR}/x265)
+ ${FFMPEG_INCLUDE_DIR}/x265
+ ${IMAGE_COMPRESS_INCLUDE_DIR})
+
+function(import_static_required target_name lib_dir lib_name)
+ set(full_path ${lib_dir}/${lib_name})
+ if (NOT EXISTS ${full_path})
+ message(FATAL_ERROR "Missing static library: ${full_path}")
+ endif()
-function(import_ffmpeg_static target_name lib_name)
add_library(${target_name} STATIC IMPORTED)
set_target_properties(${target_name} PROPERTIES
- IMPORTED_LOCATION ${FFMPEG_LIB_DIR}/${lib_name})
+ IMPORTED_LOCATION ${full_path})
endfunction()
-import_ffmpeg_static(avcodec libavcodec.a)
-import_ffmpeg_static(avfilter libavfilter.a)
-import_ffmpeg_static(avformat libavformat.a)
-import_ffmpeg_static(avutil libavutil.a)
-import_ffmpeg_static(swresample libswresample.a)
-import_ffmpeg_static(swscale libswscale.a)
-import_ffmpeg_static(x264 libx264.a)
-import_ffmpeg_static(x265 libx265.a)
+import_static_required(avcodec ${FFMPEG_LIB_DIR} libavcodec.a)
+import_static_required(avfilter ${FFMPEG_LIB_DIR} libavfilter.a)
+import_static_required(avformat ${FFMPEG_LIB_DIR} libavformat.a)
+import_static_required(avutil ${FFMPEG_LIB_DIR} libavutil.a)
+import_static_required(swresample ${FFMPEG_LIB_DIR} libswresample.a)
+import_static_required(swscale ${FFMPEG_LIB_DIR} libswscale.a)
+import_static_required(x264 ${FFMPEG_LIB_DIR} libx264.a)
+import_static_required(x265 ${FFMPEG_LIB_DIR} libx265.a)
+
+import_static_required(mozjpeg_jpeg ${IMAGE_COMPRESS_LIB_DIR} libjpeg.a)
+import_static_required(mozjpeg_turbojpeg ${IMAGE_COMPRESS_LIB_DIR} libturbojpeg.a)
+import_static_required(webp ${IMAGE_COMPRESS_LIB_DIR} libwebp.a)
+import_static_required(sharpyuv ${IMAGE_COMPRESS_LIB_DIR} libsharpyuv.a)
+import_static_required(avif ${IMAGE_COMPRESS_LIB_DIR} libavif.a)
+import_static_required(aom ${IMAGE_COMPRESS_LIB_DIR} libaom.a)
+import_static_required(yuv ${IMAGE_COMPRESS_LIB_DIR} libyuv.a)
+import_static_required(imagequant ${IMAGE_COMPRESS_LIB_DIR} libimagequant.a)
+import_static_required(oxipng_ffi ${IMAGE_COMPRESS_LIB_DIR} liboxipng_ffi.a)
+import_static_required(kimage_png ${IMAGE_COMPRESS_LIB_DIR} libkimage_png.a)
+
+target_compile_features(kcompressor PRIVATE cxx_std_17)
target_compile_options(kcompressor PRIVATE
-Wall
-Wextra
- -Wno-unused-parameter)
+ -Wno-unused-parameter
+ -Wno-deprecated-declarations)
+# --start-group penting karena semua dependency berupa static archive.
target_link_libraries(kcompressor
-Wl,--start-group
+
avfilter
avformat
avcodec
@@ -49,6 +92,18 @@ target_link_libraries(kcompressor
avutil
x264
x265
+
+ mozjpeg_turbojpeg
+ mozjpeg_jpeg
+ webp
+ sharpyuv
+ avif
+ aom
+ yuv
+ imagequant
+ oxipng_ffi
+ kimage_png
+
-Wl,--end-group
android
@@ -56,4 +111,5 @@ target_link_libraries(kcompressor
z
m
dl
+ atomic
c++_static)
diff --git a/app/src/main/cpp/compressor_common.cpp b/app/src/main/cpp/compressor_common.cpp
new file mode 100644
index 0000000..fc97be1
--- /dev/null
+++ b/app/src/main/cpp/compressor_common.cpp
@@ -0,0 +1,38 @@
+#include "compressor_common.h"
+
+#include
+
+static std::atomic_bool g_cancel_requested(false);
+
+void set_cancel_requested(bool value) {
+ g_cancel_requested.store(value, std::memory_order_release);
+}
+
+void reset_cancel_requested() {
+ set_cancel_requested(false);
+}
+
+bool is_cancel_requested() {
+ return g_cancel_requested.load(std::memory_order_acquire);
+}
+
+void callback_progress(JNIEnv *env, jobject callback, int percent, const std::string &message) {
+ if (!env || !callback) return;
+
+ jclass cls = env->GetObjectClass(callback);
+ if (!cls) return;
+
+ jmethodID mid = env->GetMethodID(cls, "onProgress", "(ILjava/lang/String;)V");
+ if (!mid) {
+ env->DeleteLocalRef(cls);
+ return;
+ }
+
+ jstring jmsg = env->NewStringUTF(message.c_str());
+ if (jmsg) {
+ env->CallVoidMethod(callback, mid, static_cast(percent), jmsg);
+ env->DeleteLocalRef(jmsg);
+ }
+
+ env->DeleteLocalRef(cls);
+}
diff --git a/app/src/main/cpp/compressor_common.h b/app/src/main/cpp/compressor_common.h
new file mode 100644
index 0000000..b024b33
--- /dev/null
+++ b/app/src/main/cpp/compressor_common.h
@@ -0,0 +1,10 @@
+#pragma once
+
+#include
+#include
+
+void set_cancel_requested(bool value);
+void reset_cancel_requested();
+bool is_cancel_requested();
+
+void callback_progress(JNIEnv *env, jobject callback, int percent, const std::string &message);
diff --git a/app/src/main/cpp/image_compressor.cpp b/app/src/main/cpp/image_compressor.cpp
new file mode 100644
index 0000000..a2916cc
--- /dev/null
+++ b/app/src/main/cpp/image_compressor.cpp
@@ -0,0 +1,735 @@
+#include "image_compressor.h"
+#include "compressor_common.h"
+
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+
+#include
+#include
+#include
+#include
+#include
+
+#include
+#include
+#include
+#include
+
+extern "C" {
+#include
+#include
+#include
+}
+
+#include
+
+#define LOG_TAG "KCompressorImage"
+#define LOGD(...) __android_log_print(ANDROID_LOG_DEBUG, LOG_TAG, __VA_ARGS__)
+#define LOGE(...) __android_log_print(ANDROID_LOG_ERROR, LOG_TAG, __VA_ARGS__)
+
+struct RgbaImage {
+ int width = 0;
+ int height = 0;
+ std::vector pixels;
+};
+
+static bool read_all_fd(int fd, std::vector &out) {
+ if (fd < 0) return false;
+
+ int owned_fd = dup(fd);
+ if (owned_fd < 0) return false;
+
+ if (lseek64(owned_fd, 0, SEEK_SET) < 0) {
+ LOGD("input image fd is not seekable at start: %s", strerror(errno));
+ }
+
+ struct stat st {};
+ if (fstat(owned_fd, &st) == 0 && st.st_size > 0 && st.st_size < 1024LL * 1024LL * 1024LL) {
+ out.reserve(static_cast(st.st_size));
+ }
+
+ uint8_t buffer[64 * 1024];
+ while (true) {
+ if (is_cancel_requested()) {
+ close(owned_fd);
+ return false;
+ }
+
+ ssize_t ret = read(owned_fd, buffer, sizeof(buffer));
+ if (ret == 0) break;
+ if (ret < 0) {
+ if (errno == EINTR) continue;
+ close(owned_fd);
+ return false;
+ }
+
+ out.insert(out.end(), buffer, buffer + ret);
+ }
+
+ close(owned_fd);
+ return !out.empty();
+}
+
+static bool write_all_fd(int fd, const std::vector &data) {
+ if (fd < 0 || data.empty()) return false;
+
+ int owned_fd = dup(fd);
+ if (owned_fd < 0) return false;
+
+ if (lseek64(owned_fd, 0, SEEK_SET) < 0) {
+ LOGD("output image fd is not seekable at start: %s", strerror(errno));
+ }
+ if (ftruncate(owned_fd, 0) < 0) {
+ LOGD("ftruncate image output failed or unsupported: %s", strerror(errno));
+ }
+
+ size_t total = 0;
+ while (total < data.size()) {
+ if (is_cancel_requested()) {
+ close(owned_fd);
+ return false;
+ }
+
+ ssize_t ret = write(owned_fd, data.data() + total, data.size() - total);
+ if (ret < 0) {
+ if (errno == EINTR) continue;
+ close(owned_fd);
+ return false;
+ }
+ if (ret == 0) {
+ close(owned_fd);
+ return false;
+ }
+
+ total += static_cast(ret);
+ }
+
+ fsync(owned_fd);
+ close(owned_fd);
+ return true;
+}
+
+static int clamp_int(int value, int min_value, int max_value) {
+ return std::max(min_value, std::min(max_value, value));
+}
+
+static bool has_prefix(const std::vector &data, const uint8_t *magic, size_t magic_len) {
+ return data.size() >= magic_len && memcmp(data.data(), magic, magic_len) == 0;
+}
+
+static bool looks_like_jpeg(const std::vector &data) {
+ static const uint8_t magic[] = {0xFF, 0xD8};
+ return has_prefix(data, magic, sizeof(magic));
+}
+
+static bool looks_like_png(const std::vector &data) {
+ static const uint8_t magic[] = {0x89, 'P', 'N', 'G', 0x0D, 0x0A, 0x1A, 0x0A};
+ return has_prefix(data, magic, sizeof(magic));
+}
+
+static bool looks_like_webp(const std::vector &data) {
+ return data.size() >= 12 &&
+ memcmp(data.data(), "RIFF", 4) == 0 &&
+ memcmp(data.data() + 8, "WEBP", 4) == 0;
+}
+
+static bool looks_like_avif(const std::vector &data) {
+ if (data.size() < 16) return false;
+ const size_t max_scan = std::min(data.size(), 64);
+ for (size_t i = 0; i + 8 <= max_scan; ++i) {
+ if (memcmp(data.data() + i, "ftyp", 4) == 0) {
+ const char *brand = reinterpret_cast(data.data() + i + 4);
+ return memcmp(brand, "avif", 4) == 0 ||
+ memcmp(brand, "avis", 4) == 0 ||
+ memcmp(brand, "mif1", 4) == 0 ||
+ memcmp(brand, "msf1", 4) == 0;
+ }
+ }
+ return false;
+}
+
+static bool decode_jpeg_rgba(const std::vector &input, RgbaImage &out) {
+ tjhandle handle = tjInitDecompress();
+ if (!handle) return false;
+
+ int width = 0;
+ int height = 0;
+ int subsamp = 0;
+ int colorspace = 0;
+
+ int ret = tjDecompressHeader3(
+ handle,
+ const_cast(input.data()),
+ static_cast(input.size()),
+ &width,
+ &height,
+ &subsamp,
+ &colorspace
+ );
+
+ if (ret != 0 || width <= 0 || height <= 0) {
+ tjDestroy(handle);
+ return false;
+ }
+
+ out.width = width;
+ out.height = height;
+ out.pixels.assign(static_cast(width) * height * 4, 255);
+
+ ret = tjDecompress2(
+ handle,
+ const_cast(input.data()),
+ static_cast(input.size()),
+ out.pixels.data(),
+ width,
+ width * 4,
+ height,
+ TJPF_RGBA,
+ TJFLAG_FASTDCT
+ );
+
+ tjDestroy(handle);
+ return ret == 0;
+}
+
+static bool decode_png_rgba(const std::vector &input, RgbaImage &out) {
+ uint8_t *rgba = nullptr;
+ unsigned width = 0;
+ unsigned height = 0;
+
+ int ret = kimg_png_decode_rgba(
+ input.data(),
+ input.size(),
+ &rgba,
+ &width,
+ &height
+ );
+
+ if (ret != 0 || !rgba || width == 0 || height == 0) {
+ if (rgba) kimg_free(rgba);
+ return false;
+ }
+
+ out.width = static_cast(width);
+ out.height = static_cast(height);
+ out.pixels.assign(rgba, rgba + static_cast(width) * height * 4);
+ kimg_free(rgba);
+ return true;
+}
+
+static bool decode_webp_rgba(const std::vector &input, RgbaImage &out) {
+ int width = 0;
+ int height = 0;
+ if (!WebPGetInfo(input.data(), input.size(), &width, &height) || width <= 0 || height <= 0) {
+ return false;
+ }
+
+ uint8_t *rgba = WebPDecodeRGBA(input.data(), input.size(), &width, &height);
+ if (!rgba) return false;
+
+ out.width = width;
+ out.height = height;
+ out.pixels.assign(rgba, rgba + static_cast(width) * height * 4);
+ WebPFree(rgba);
+ return true;
+}
+
+static bool decode_avif_rgba(const std::vector &input, RgbaImage &out) {
+ avifDecoder *decoder = avifDecoderCreate();
+ if (!decoder) return false;
+
+ avifImage *image = avifImageCreateEmpty();
+ if (!image) {
+ avifDecoderDestroy(decoder);
+ return false;
+ }
+
+ avifResult result = avifDecoderReadMemory(decoder, image, input.data(), input.size());
+ if (result != AVIF_RESULT_OK || image->width == 0 || image->height == 0) {
+ avifImageDestroy(image);
+ avifDecoderDestroy(decoder);
+ return false;
+ }
+
+ avifRGBImage rgb;
+ avifRGBImageSetDefaults(&rgb, image);
+ rgb.format = AVIF_RGB_FORMAT_RGBA;
+ rgb.depth = 8;
+
+ if (avifRGBImageAllocatePixels(&rgb) != AVIF_RESULT_OK) {
+ avifImageDestroy(image);
+ avifDecoderDestroy(decoder);
+ return false;
+ }
+
+ result = avifImageYUVToRGB(image, &rgb);
+ if (result != AVIF_RESULT_OK) {
+ avifRGBImageFreePixels(&rgb);
+ avifImageDestroy(image);
+ avifDecoderDestroy(decoder);
+ return false;
+ }
+
+ out.width = static_cast(image->width);
+ out.height = static_cast(image->height);
+ out.pixels.assign(rgb.pixels, rgb.pixels + static_cast(rgb.rowBytes) * image->height);
+
+ // Pastikan buffer contiguous width * height * 4, karena rowBytes bisa lebih besar.
+ if (rgb.rowBytes != image->width * 4) {
+ std::vector compact(static_cast(image->width) * image->height * 4);
+ for (uint32_t y = 0; y < image->height; ++y) {
+ memcpy(compact.data() + static_cast(y) * image->width * 4,
+ rgb.pixels + static_cast(y) * rgb.rowBytes,
+ static_cast(image->width) * 4);
+ }
+ out.pixels.swap(compact);
+ }
+
+ avifRGBImageFreePixels(&rgb);
+ avifImageDestroy(image);
+ avifDecoderDestroy(decoder);
+ return true;
+}
+
+static bool decode_input_rgba(const std::vector &input,
+ const std::string &input_mime,
+ RgbaImage &out) {
+ std::string mime = input_mime;
+ std::transform(mime.begin(), mime.end(), mime.begin(), ::tolower);
+
+ if (mime.find("jpeg") != std::string::npos || mime.find("jpg") != std::string::npos || looks_like_jpeg(input)) {
+ return decode_jpeg_rgba(input, out);
+ }
+
+ if (mime.find("png") != std::string::npos || looks_like_png(input)) {
+ return decode_png_rgba(input, out);
+ }
+
+ if (mime.find("webp") != std::string::npos || looks_like_webp(input)) {
+ return decode_webp_rgba(input, out);
+ }
+
+ if (mime.find("avif") != std::string::npos || looks_like_avif(input)) {
+ return decode_avif_rgba(input, out);
+ }
+
+ // Fallback by magic.
+ if (looks_like_jpeg(input)) return decode_jpeg_rgba(input, out);
+ if (looks_like_png(input)) return decode_png_rgba(input, out);
+ if (looks_like_webp(input)) return decode_webp_rgba(input, out);
+ if (looks_like_avif(input)) return decode_avif_rgba(input, out);
+
+ return false;
+}
+
+static RgbaImage resize_rgba_if_needed(const RgbaImage &src, int max_long_side) {
+ if (src.width <= 0 || src.height <= 0 || src.pixels.empty()) {
+ return src;
+ }
+
+ int long_side = std::max(src.width, src.height);
+ if (max_long_side <= 0 || max_long_side >= long_side) {
+ return src;
+ }
+
+ double scale = static_cast(max_long_side) / static_cast(long_side);
+ int dst_w = std::max(1, static_cast(std::llround(src.width * scale)));
+ int dst_h = std::max(1, static_cast(std::llround(src.height * scale)));
+
+ RgbaImage dst;
+ dst.width = dst_w;
+ dst.height = dst_h;
+ dst.pixels.assign(static_cast(dst_w) * dst_h * 4, 0);
+
+ const double inv_x = static_cast(src.width) / static_cast(dst_w);
+ const double inv_y = static_cast(src.height) / static_cast(dst_h);
+
+ for (int y = 0; y < dst_h; ++y) {
+ int sy = std::min(src.height - 1, static_cast(y * inv_y));
+ for (int x = 0; x < dst_w; ++x) {
+ int sx = std::min(src.width - 1, static_cast(x * inv_x));
+
+ const uint8_t *sp = src.pixels.data() + (static_cast(sy) * src.width + sx) * 4;
+ uint8_t *dp = dst.pixels.data() + (static_cast(y) * dst_w + x) * 4;
+
+ dp[0] = sp[0];
+ dp[1] = sp[1];
+ dp[2] = sp[2];
+ dp[3] = sp[3];
+ }
+ }
+
+ return dst;
+}
+
+static bool encode_jpeg_rgba(const RgbaImage &image, int quality, std::vector &out) {
+ tjhandle handle = tjInitCompress();
+ if (!handle) return false;
+
+ unsigned char *jpeg_buf = nullptr;
+ unsigned long jpeg_size = 0;
+
+ int ret = tjCompress2(
+ handle,
+ const_cast(image.pixels.data()),
+ image.width,
+ image.width * 4,
+ image.height,
+ TJPF_RGBA,
+ &jpeg_buf,
+ &jpeg_size,
+ TJSAMP_420,
+ clamp_int(quality, 1, 100),
+ TJFLAG_FASTDCT
+ );
+
+ if (ret != 0 || !jpeg_buf || jpeg_size == 0) {
+ if (jpeg_buf) tjFree(jpeg_buf);
+ tjDestroy(handle);
+ return false;
+ }
+
+ out.assign(jpeg_buf, jpeg_buf + jpeg_size);
+ tjFree(jpeg_buf);
+ tjDestroy(handle);
+ return true;
+}
+
+static bool oxipng_optimize_vector(const std::vector &png, std::vector &out, uint8_t level) {
+ uint8_t *optimized = nullptr;
+ size_t optimized_len = 0;
+
+ int ret = oxipng_optimize_memory(
+ png.data(),
+ png.size(),
+ level,
+ 1,
+ 0,
+ &optimized,
+ &optimized_len
+ );
+
+ if (ret == 0 && optimized && optimized_len > 0) {
+ out.assign(optimized, optimized + optimized_len);
+ oxipng_free(optimized, optimized_len);
+ return true;
+ }
+
+ if (optimized) {
+ oxipng_free(optimized, optimized_len);
+ }
+
+ out = png;
+ return true;
+}
+
+static bool encode_png_lossless_rgba(const RgbaImage &image, std::vector &out) {
+ uint8_t *png = nullptr;
+ size_t png_len = 0;
+
+ int ret = kimg_png_encode_rgba(
+ image.pixels.data(),
+ static_cast(image.width),
+ static_cast(image.height),
+ &png,
+ &png_len
+ );
+
+ if (ret != 0 || !png || png_len == 0) {
+ if (png) kimg_free(png);
+ return false;
+ }
+
+ std::vector encoded(png, png + png_len);
+ kimg_free(png);
+
+ return oxipng_optimize_vector(encoded, out, 3);
+}
+
+static bool encode_png_lossy_quantized(const RgbaImage &image, int quality, std::vector &out) {
+ liq_attr *attr = liq_attr_create();
+ if (!attr) return false;
+
+ const int max_quality = clamp_int(quality, 1, 100);
+ const int min_quality = std::max(0, max_quality - 25);
+
+ liq_set_max_colors(attr, 256);
+ liq_set_quality(attr, min_quality, max_quality);
+ liq_set_speed(attr, 4);
+
+ liq_image *liq_img = liq_image_create_rgba(
+ attr,
+ const_cast(image.pixels.data()),
+ image.width,
+ image.height,
+ 0.0
+ );
+
+ if (!liq_img) {
+ liq_attr_destroy(attr);
+ return false;
+ }
+
+ liq_result *result = nullptr;
+ liq_error err = liq_image_quantize(liq_img, attr, &result);
+ if (err != LIQ_OK || !result) {
+ liq_image_destroy(liq_img);
+ liq_attr_destroy(attr);
+ return false;
+ }
+
+ liq_set_dithering_level(result, 0.7f);
+
+ std::vector indexed(static_cast(image.width) * image.height);
+ err = liq_write_remapped_image(result, liq_img, indexed.data(), indexed.size());
+ if (err != LIQ_OK) {
+ liq_result_destroy(result);
+ liq_image_destroy(liq_img);
+ liq_attr_destroy(attr);
+ return false;
+ }
+
+ const liq_palette *palette = liq_get_palette(result);
+ if (!palette || palette->count <= 0) {
+ liq_result_destroy(result);
+ liq_image_destroy(liq_img);
+ liq_attr_destroy(attr);
+ return false;
+ }
+
+ lodepng::State state;
+ state.encoder.auto_convert = 0;
+ state.info_raw.colortype = LCT_PALETTE;
+ state.info_raw.bitdepth = 8;
+ state.info_png.color.colortype = LCT_PALETTE;
+ state.info_png.color.bitdepth = 8;
+
+ for (unsigned int i = 0; i < palette->count; ++i) {
+ const liq_color &c = palette->entries[i];
+ lodepng_palette_add(&state.info_raw, c.r, c.g, c.b, c.a);
+ lodepng_palette_add(&state.info_png.color, c.r, c.g, c.b, c.a);
+ }
+
+ std::vector png;
+ unsigned lode_err = lodepng::encode(
+ png,
+ indexed,
+ static_cast(image.width),
+ static_cast(image.height),
+ state
+ );
+
+ liq_result_destroy(result);
+ liq_image_destroy(liq_img);
+ liq_attr_destroy(attr);
+
+ if (lode_err != 0 || png.empty()) {
+ return false;
+ }
+
+ std::vector encoded(png.begin(), png.end());
+ return oxipng_optimize_vector(encoded, out, 4);
+}
+
+static bool encode_webp_rgba(const RgbaImage &image, int quality, bool lossless, std::vector &out) {
+ uint8_t *webp = nullptr;
+ size_t webp_size = 0;
+
+ if (lossless) {
+ webp_size = WebPEncodeLosslessRGBA(
+ image.pixels.data(),
+ image.width,
+ image.height,
+ image.width * 4,
+ &webp
+ );
+ } else {
+ webp_size = WebPEncodeRGBA(
+ image.pixels.data(),
+ image.width,
+ image.height,
+ image.width * 4,
+ static_cast(clamp_int(quality, 1, 100)),
+ &webp
+ );
+ }
+
+ if (!webp || webp_size == 0) {
+ if (webp) WebPFree(webp);
+ return false;
+ }
+
+ out.assign(webp, webp + webp_size);
+ WebPFree(webp);
+ return true;
+}
+
+static bool encode_avif_rgba(const RgbaImage &image, int quality, std::vector &out) {
+ avifImage *avif = avifImageCreate(
+ static_cast(image.width),
+ static_cast(image.height),
+ 8,
+ AVIF_PIXEL_FORMAT_YUV444
+ );
+
+ if (!avif) return false;
+
+ avifRGBImage rgb;
+ avifRGBImageSetDefaults(&rgb, avif);
+ rgb.format = AVIF_RGB_FORMAT_RGBA;
+ rgb.depth = 8;
+ rgb.pixels = const_cast(image.pixels.data());
+ rgb.rowBytes = static_cast(image.width * 4);
+
+ avifResult result = avifImageRGBToYUV(avif, &rgb);
+ if (result != AVIF_RESULT_OK) {
+ avifImageDestroy(avif);
+ return false;
+ }
+
+ avifEncoder *encoder = avifEncoderCreate();
+ if (!encoder) {
+ avifImageDestroy(avif);
+ return false;
+ }
+
+ encoder->maxThreads = 0;
+ encoder->speed = 6;
+ encoder->quality = clamp_int(quality, 1, 100);
+ encoder->qualityAlpha = clamp_int(quality, 1, 100);
+
+ avifRWData encoded = AVIF_DATA_EMPTY;
+ result = avifEncoderWrite(encoder, avif, &encoded);
+
+ if (result == AVIF_RESULT_OK && encoded.data && encoded.size > 0) {
+ out.assign(encoded.data, encoded.data + encoded.size);
+ avifRWDataFree(&encoded);
+ avifEncoderDestroy(encoder);
+ avifImageDestroy(avif);
+ return true;
+ }
+
+ avifRWDataFree(&encoded);
+ avifEncoderDestroy(encoder);
+ avifImageDestroy(avif);
+ return false;
+}
+
+static bool encode_output(const RgbaImage &image,
+ const std::string &output_format,
+ int quality,
+ std::vector &out) {
+ std::string fmt = output_format;
+ std::transform(fmt.begin(), fmt.end(), fmt.begin(), ::tolower);
+
+ if (fmt == "jpeg" || fmt == "jpg") {
+ return encode_jpeg_rgba(image, quality, out);
+ }
+
+ if (fmt == "png_lossy") {
+ if (encode_png_lossy_quantized(image, quality, out)) {
+ return true;
+ }
+
+ LOGD("PNG lossy quantize failed, fallback to PNG lossless");
+ return encode_png_lossless_rgba(image, out);
+ }
+
+ if (fmt == "png" || fmt == "png_lossless") {
+ return encode_png_lossless_rgba(image, out);
+ }
+
+ if (fmt == "webp_lossless") {
+ return encode_webp_rgba(image, quality, true, out);
+ }
+
+ if (fmt == "webp") {
+ return encode_webp_rgba(image, quality, false, out);
+ }
+
+ if (fmt == "avif") {
+ return encode_avif_rgba(image, quality, out);
+ }
+
+ return false;
+}
+
+int compress_image_fd_impl(JNIEnv *env,
+ int input_fd,
+ int output_fd,
+ const std::string &input_mime,
+ const std::string &output_format,
+ int quality,
+ int max_long_side,
+ jobject callback) {
+ if (input_fd < 0 || output_fd < 0) {
+ callback_progress(env, callback, 0, "FD gambar tidak valid");
+ return -1;
+ }
+
+ quality = clamp_int(quality, 1, 100);
+ if (max_long_side < 0) max_long_side = 0;
+
+ callback_progress(env, callback, 0, "Membaca gambar...");
+
+ std::vector input;
+ if (!read_all_fd(input_fd, input)) {
+ callback_progress(env, callback, 0, is_cancel_requested() ? "Canceled" : "Gagal membaca gambar");
+ return is_cancel_requested() ? -125 : -2;
+ }
+
+ if (is_cancel_requested()) {
+ callback_progress(env, callback, 0, "Canceled");
+ return -125;
+ }
+
+ callback_progress(env, callback, 15, "Decode gambar...");
+
+ RgbaImage decoded;
+ if (!decode_input_rgba(input, input_mime, decoded)) {
+ callback_progress(env, callback, 0, "Format gambar tidak didukung");
+ return -3;
+ }
+
+ if (is_cancel_requested()) {
+ callback_progress(env, callback, 0, "Canceled");
+ return -125;
+ }
+
+ callback_progress(env, callback, 35, "Resize gambar...");
+
+ RgbaImage work = resize_rgba_if_needed(decoded, max_long_side);
+
+ if (is_cancel_requested()) {
+ callback_progress(env, callback, 0, "Canceled");
+ return -125;
+ }
+
+ callback_progress(env, callback, 60, "Encode gambar...");
+
+ std::vector encoded;
+ if (!encode_output(work, output_format, quality, encoded)) {
+ callback_progress(env, callback, 0, "Gagal encode gambar");
+ return -4;
+ }
+
+ if (is_cancel_requested()) {
+ callback_progress(env, callback, 0, "Canceled");
+ return -125;
+ }
+
+ callback_progress(env, callback, 92, "Menyimpan gambar...");
+
+ if (!write_all_fd(output_fd, encoded)) {
+ callback_progress(env, callback, 0, "Gagal menulis output gambar");
+ return -5;
+ }
+
+ callback_progress(env, callback, 100, "Done");
+ return 0;
+}
diff --git a/app/src/main/cpp/image_compressor.h b/app/src/main/cpp/image_compressor.h
new file mode 100644
index 0000000..8a6346c
--- /dev/null
+++ b/app/src/main/cpp/image_compressor.h
@@ -0,0 +1,13 @@
+#pragma once
+
+#include
+#include
+
+int compress_image_fd_impl(JNIEnv *env,
+ int input_fd,
+ int output_fd,
+ const std::string &input_mime,
+ const std::string &output_format,
+ int quality,
+ int max_long_side,
+ jobject callback);
diff --git a/app/src/main/cpp/native_compressor.cpp b/app/src/main/cpp/native_compressor.cpp
index 94acc0b..9b50922 100644
--- a/app/src/main/cpp/native_compressor.cpp
+++ b/app/src/main/cpp/native_compressor.cpp
@@ -1,1458 +1,29 @@
#include
#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
+#include "compressor_common.h"
+#include "video_compressor.h"
+#include "image_compressor.h"
-extern "C" {
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
-#include
+static std::string jstring_to_string(JNIEnv *env, jstring value, const char *fallback) {
+ if (!env || !value) {
+ return fallback ? std::string(fallback) : std::string();
+ }
+
+ const char *chars = env->GetStringUTFChars(value, nullptr);
+ if (!chars) {
+ return fallback ? std::string(fallback) : std::string();
+ }
+
+ std::string result(chars);
+ env->ReleaseStringUTFChars(value, chars);
+ return result;
}
-#define LOG_TAG "KCompressorNative"
-#define LOGD(...) __android_log_print(ANDROID_LOG_DEBUG, LOG_TAG, __VA_ARGS__)
-#define LOGE(...) __android_log_print(ANDROID_LOG_ERROR, LOG_TAG, __VA_ARGS__)
-
-static std::atomic_bool g_cancel_requested(false);
-
-static bool is_cancel_requested() {
- return g_cancel_requested.load(std::memory_order_acquire);
-}
-
-
-/*
- * Native compressor:
- * - Input/output memakai fd langsung dari Java melalui custom AVIOContext.
- * - Tidak membuka ulang /proc/self/fd/, agar aman untuk SAF/MediaStore.
- * - Rotasi video dipertahankan dengan copy AV_PKT_DATA_DISPLAYMATRIX.
- * - target_short_side:
- * 0 = Original, tidak downgrade resolusi.
- * >0 = target sisi pendek display, contoh:
- * landscape 1920x1080 -> 720 menghasilkan 1280x720
- * portrait 1080x1920 dengan rotation 90 -> 720 menghasilkan coded 1280x720
- * lalu rotation metadata tetap disalin, sehingga tampil portrait 720x1280.
- */
-
-struct FdAvio {
- int fd = -1;
- uint8_t *buffer = nullptr;
- AVIOContext *ctx = nullptr;
-};
-
-static std::string av_err_to_string(int err) {
- char buf[AV_ERROR_MAX_STRING_SIZE] = {0};
- av_strerror(err, buf, sizeof(buf));
- return std::string(buf);
-}
-
-static void callback_progress(JNIEnv *env, jobject callback, int percent, const std::string &message) {
- if (!env || !callback) return;
-
- jclass cls = env->GetObjectClass(callback);
- if (!cls) return;
-
- jmethodID mid = env->GetMethodID(cls, "onProgress", "(ILjava/lang/String;)V");
- if (!mid) {
- env->DeleteLocalRef(cls);
- return;
- }
-
- jstring jmsg = env->NewStringUTF(message.c_str());
- if (jmsg) {
- env->CallVoidMethod(callback, mid, static_cast(percent), jmsg);
- env->DeleteLocalRef(jmsg);
- }
-
- env->DeleteLocalRef(cls);
-}
-
-static int fd_read_packet(void *opaque, uint8_t *buf, int buf_size) {
- FdAvio *fio = static_cast(opaque);
- if (!fio || fio->fd < 0 || !buf || buf_size <= 0) {
- return AVERROR(EINVAL);
- }
-
- while (true) {
- ssize_t ret = read(fio->fd, buf, static_cast(buf_size));
-
- if (ret == 0) {
- return AVERROR_EOF;
- }
-
- if (ret < 0) {
- if (errno == EINTR) continue;
- return AVERROR(errno);
- }
-
- return static_cast(ret);
- }
-}
-
-static int fd_write_packet(void *opaque, const uint8_t *buf, int buf_size) {
- FdAvio *fio = static_cast(opaque);
- if (!fio || fio->fd < 0 || !buf || buf_size <= 0) {
- return AVERROR(EINVAL);
- }
-
- int total = 0;
-
- while (total < buf_size) {
- ssize_t ret = write(
- fio->fd,
- buf + total,
- static_cast(buf_size - total)
- );
-
- if (ret < 0) {
- if (errno == EINTR) continue;
- return AVERROR(errno);
- }
-
- if (ret == 0) {
- return AVERROR(EIO);
- }
-
- total += static_cast(ret);
- }
-
- return total;
-}
-
-static int64_t fd_seek(void *opaque, int64_t offset, int whence) {
- FdAvio *fio = static_cast(opaque);
- if (!fio || fio->fd < 0) {
- return AVERROR(EINVAL);
- }
-
- if (whence == AVSEEK_SIZE) {
- off64_t current = lseek64(fio->fd, 0, SEEK_CUR);
- if (current < 0) return AVERROR(errno);
-
- off64_t end = lseek64(fio->fd, 0, SEEK_END);
- if (end < 0) return AVERROR(errno);
-
- if (lseek64(fio->fd, current, SEEK_SET) < 0) {
- return AVERROR(errno);
- }
-
- return static_cast(end);
- }
-
- whence &= ~AVSEEK_FORCE;
-
- int real_whence;
- if (whence == SEEK_CUR) {
- real_whence = SEEK_CUR;
- } else if (whence == SEEK_END) {
- real_whence = SEEK_END;
- } else {
- real_whence = SEEK_SET;
- }
-
- off64_t ret = lseek64(fio->fd, static_cast(offset), real_whence);
- if (ret < 0) {
- return AVERROR(errno);
- }
-
- return static_cast(ret);
-}
-
-static FdAvio *create_fd_avio(int original_fd, bool write_mode) {
- if (original_fd < 0) {
- errno = EBADF;
- return nullptr;
- }
-
- int owned_fd = dup(original_fd);
- if (owned_fd < 0) {
- return nullptr;
- }
-
- if (write_mode) {
- if (lseek64(owned_fd, 0, SEEK_SET) < 0) {
- LOGD("output fd is not seekable at start: %s", strerror(errno));
- }
- if (ftruncate(owned_fd, 0) < 0) {
- LOGD("ftruncate output failed or unsupported: %s", strerror(errno));
- }
- } else {
- if (lseek64(owned_fd, 0, SEEK_SET) < 0) {
- LOGD("input fd is not seekable at start: %s", strerror(errno));
- }
- }
-
- constexpr int buffer_size = 64 * 1024;
-
- FdAvio *fio = new FdAvio();
- fio->fd = owned_fd;
- fio->buffer = static_cast(av_malloc(buffer_size));
-
- if (!fio->buffer) {
- close(owned_fd);
- delete fio;
- errno = ENOMEM;
- return nullptr;
- }
-
- fio->ctx = avio_alloc_context(
- fio->buffer,
- buffer_size,
- write_mode ? 1 : 0,
- fio,
- write_mode ? nullptr : fd_read_packet,
- write_mode ? fd_write_packet : nullptr,
- fd_seek
- );
-
- if (!fio->ctx) {
- av_free(fio->buffer);
- close(owned_fd);
- delete fio;
- errno = ENOMEM;
- return nullptr;
- }
-
- fio->ctx->seekable = AVIO_SEEKABLE_NORMAL;
- return fio;
-}
-
-static void free_fd_avio(FdAvio *fio) {
- if (!fio) return;
-
- if (fio->ctx) {
- av_freep(&fio->ctx->buffer);
- avio_context_free(&fio->ctx);
- fio->buffer = nullptr;
- } else if (fio->buffer) {
- av_free(fio->buffer);
- fio->buffer = nullptr;
- }
-
- if (fio->fd >= 0) {
- close(fio->fd);
- fio->fd = -1;
- }
-
- delete fio;
-}
-
-static int even_int(int value) {
- if (value < 2) return 2;
- return value & ~1;
-}
-
-static int normalize_rotation_degrees(double rotation) {
- if (std::isnan(rotation) || std::isinf(rotation)) {
- return 0;
- }
-
- int r = static_cast(std::llround(rotation));
- r %= 360;
- if (r < 0) r += 360;
-
- // Snap ke kelipatan 90 supaya aman.
- if (r >= 315 || r < 45) return 0;
- if (r >= 45 && r < 135) return 90;
- if (r >= 135 && r < 225) return 180;
- return 270;
-}
-
-
-
-
-static void compute_oriented_output_size(int src_w,
- int src_h,
- int rotation_degrees,
- int target_short_side,
- int *out_w,
- int *out_h,
- int *convert_w,
- int *convert_h) {
- int display_w = src_w;
- int display_h = src_h;
-
- if (rotation_degrees == 90 || rotation_degrees == 270) {
- display_w = src_h;
- display_h = src_w;
- }
-
- const int display_short = std::min(display_w, display_h);
-
- double scale = 1.0;
- if (target_short_side > 0 && target_short_side < display_short) {
- scale = static_cast(target_short_side) /
- static_cast(display_short);
- }
-
- int final_w = even_int(static_cast(std::llround(static_cast(display_w) * scale)));
- int final_h = even_int(static_cast(std::llround(static_cast(display_h) * scale)));
-
- if (rotation_degrees == 90 || rotation_degrees == 270) {
- // Frame decoded masih dalam coded orientation landscape.
- // Kita scale dulu dalam orientasi coded, lalu rotate fisik menjadi portrait.
- *convert_w = final_h;
- *convert_h = final_w;
- } else {
- *convert_w = final_w;
- *convert_h = final_h;
- }
-
- *out_w = final_w;
- *out_h = final_h;
-}
-
-static void copy_plane_8bit(const uint8_t *src,
- int src_stride,
- uint8_t *dst,
- int dst_stride,
- int width,
- int height) {
- for (int y = 0; y < height; ++y) {
- memcpy(dst + y * dst_stride, src + y * src_stride, static_cast(width));
- }
-}
-
-static void rotate_plane_180_8bit(const uint8_t *src,
- int src_stride,
- uint8_t *dst,
- int dst_stride,
- int width,
- int height) {
- for (int y = 0; y < height; ++y) {
- const uint8_t *src_row = src + y * src_stride;
- uint8_t *dst_row = dst + (height - 1 - y) * dst_stride;
-
- for (int x = 0; x < width; ++x) {
- dst_row[width - 1 - x] = src_row[x];
- }
- }
-}
-
-static void rotate_plane_90_cw_8bit(const uint8_t *src,
- int src_stride,
- uint8_t *dst,
- int dst_stride,
- int src_w,
- int src_h) {
- // Destinasi: width=src_h, height=src_w.
- for (int y = 0; y < src_h; ++y) {
- const uint8_t *src_row = src + y * src_stride;
-
- for (int x = 0; x < src_w; ++x) {
- const int dst_x = src_h - 1 - y;
- const int dst_y = x;
- dst[dst_y * dst_stride + dst_x] = src_row[x];
- }
- }
-}
-
-static void rotate_plane_90_ccw_8bit(const uint8_t *src,
- int src_stride,
- uint8_t *dst,
- int dst_stride,
- int src_w,
- int src_h) {
- // Destinasi: width=src_h, height=src_w.
- for (int y = 0; y < src_h; ++y) {
- const uint8_t *src_row = src + y * src_stride;
-
- for (int x = 0; x < src_w; ++x) {
- const int dst_x = y;
- const int dst_y = src_w - 1 - x;
- dst[dst_y * dst_stride + dst_x] = src_row[x];
- }
- }
-}
-
-static int transform_yuv420p_for_output(AVFrame *src, AVFrame *dst, int rotation_degrees) {
- if (!src || !dst) {
- return AVERROR(EINVAL);
- }
-
- int ret = av_frame_make_writable(dst);
- if (ret < 0) {
- return ret;
- }
-
- const int src_w = src->width;
- const int src_h = src->height;
-
- const int src_cw = src_w / 2;
- const int src_ch = src_h / 2;
-
- if (rotation_degrees == 90) {
- rotate_plane_90_cw_8bit(src->data[0], src->linesize[0],
- dst->data[0], dst->linesize[0],
- src_w, src_h);
-
- rotate_plane_90_cw_8bit(src->data[1], src->linesize[1],
- dst->data[1], dst->linesize[1],
- src_cw, src_ch);
-
- rotate_plane_90_cw_8bit(src->data[2], src->linesize[2],
- dst->data[2], dst->linesize[2],
- src_cw, src_ch);
- } else if (rotation_degrees == 270) {
- rotate_plane_90_ccw_8bit(src->data[0], src->linesize[0],
- dst->data[0], dst->linesize[0],
- src_w, src_h);
-
- rotate_plane_90_ccw_8bit(src->data[1], src->linesize[1],
- dst->data[1], dst->linesize[1],
- src_cw, src_ch);
-
- rotate_plane_90_ccw_8bit(src->data[2], src->linesize[2],
- dst->data[2], dst->linesize[2],
- src_cw, src_ch);
- } else if (rotation_degrees == 180) {
- rotate_plane_180_8bit(src->data[0], src->linesize[0],
- dst->data[0], dst->linesize[0],
- src_w, src_h);
-
- rotate_plane_180_8bit(src->data[1], src->linesize[1],
- dst->data[1], dst->linesize[1],
- src_cw, src_ch);
-
- rotate_plane_180_8bit(src->data[2], src->linesize[2],
- dst->data[2], dst->linesize[2],
- src_cw, src_ch);
- } else {
- copy_plane_8bit(src->data[0], src->linesize[0],
- dst->data[0], dst->linesize[0],
- src_w, src_h);
-
- copy_plane_8bit(src->data[1], src->linesize[1],
- dst->data[1], dst->linesize[1],
- src_cw, src_ch);
-
- copy_plane_8bit(src->data[2], src->linesize[2],
- dst->data[2], dst->linesize[2],
- src_cw, src_ch);
- }
-
- return 0;
-}
-
-static void emit_video_progress(JNIEnv *env,
- jobject callback,
- AVFormatContext *fmt_ctx,
- AVStream *video_stream,
- AVFrame *frame,
- int &last_percent) {
- if (!env || !callback || !fmt_ctx || !video_stream || !frame) {
- return;
- }
-
- if (fmt_ctx->duration <= 0) {
- return;
- }
-
- int64_t ts = frame->best_effort_timestamp;
- if (ts == AV_NOPTS_VALUE) {
- ts = frame->pts;
- }
-
- if (ts == AV_NOPTS_VALUE) {
- return;
- }
-
- int64_t current_us = av_rescale_q(
- ts,
- video_stream->time_base,
- AVRational{1, AV_TIME_BASE}
- );
-
- int percent = static_cast((current_us * 100) / fmt_ctx->duration);
-
- if (percent < 3) percent = 3;
- if (percent > 99) percent = 99;
-
- // Monotonic: jangan pernah mundur. Ini menghindari glitch 45% lalu balik 20%.
- if (percent > last_percent) {
- last_percent = percent;
- callback_progress(env, callback, percent, "Memproses video...");
- }
-}
-
-static AVRational choose_fps(AVStream *stream, AVCodecContext *dec_ctx) {
- if (stream && stream->avg_frame_rate.num > 0 && stream->avg_frame_rate.den > 0) {
- return stream->avg_frame_rate;
- }
-
- if (stream && stream->r_frame_rate.num > 0 && stream->r_frame_rate.den > 0) {
- return stream->r_frame_rate;
- }
-
- if (dec_ctx && dec_ctx->framerate.num > 0 && dec_ctx->framerate.den > 0) {
- return dec_ctx->framerate;
- }
-
- return AVRational{30, 1};
-}
-
-static bool is_audio_copy_supported_in_mp4(enum AVCodecID codec_id) {
- return codec_id == AV_CODEC_ID_AAC ||
- codec_id == AV_CODEC_ID_MP3 ||
- codec_id == AV_CODEC_ID_ALAC;
-}
-
-
-static void get_audio_ch_layout_compat(AVChannelLayout *dst, AVCodecContext *ctx) {
- if (!dst) return;
-
- memset(dst, 0, sizeof(AVChannelLayout));
-
- if (ctx && ctx->ch_layout.nb_channels > 0) {
- if (av_channel_layout_copy(dst, &ctx->ch_layout) >= 0) {
- return;
- }
- }
-
- av_channel_layout_default(dst, 2);
-}
-
-static int get_audio_channel_count_compat(AVCodecContext *ctx) {
- if (ctx && ctx->ch_layout.nb_channels > 0) {
- return ctx->ch_layout.nb_channels;
- }
-
- return 2;
-}
-
-static enum AVSampleFormat choose_audio_sample_fmt(const AVCodec *encoder) {
- if (!encoder || !encoder->sample_fmts) {
- return AV_SAMPLE_FMT_FLTP;
- }
-
- for (const enum AVSampleFormat *p = encoder->sample_fmts; *p != AV_SAMPLE_FMT_NONE; ++p) {
- if (*p == AV_SAMPLE_FMT_FLTP) {
- return *p;
- }
- }
-
- return encoder->sample_fmts[0];
-}
-
-static int encode_audio_and_write(AVCodecContext *audio_enc_ctx,
- AVFormatContext *out_fmt_ctx,
- AVStream *out_audio_stream,
- AVFrame *frame) {
- if (is_cancel_requested()) {
- return AVERROR_EXIT;
- }
-
- int ret = avcodec_send_frame(audio_enc_ctx, frame);
- if (ret < 0) {
- LOGE("avcodec_send_frame audio failed: %s", av_err_to_string(ret).c_str());
- return ret;
- }
-
- while (true) {
- if (is_cancel_requested()) {
- return AVERROR_EXIT;
- }
-
- AVPacket *enc_pkt = av_packet_alloc();
- if (!enc_pkt) {
- return AVERROR(ENOMEM);
- }
-
- ret = avcodec_receive_packet(audio_enc_ctx, enc_pkt);
- if (ret == AVERROR(EAGAIN) || ret == AVERROR_EOF) {
- av_packet_free(&enc_pkt);
- return 0;
- }
-
- if (ret < 0) {
- LOGE("avcodec_receive_packet audio failed: %s", av_err_to_string(ret).c_str());
- av_packet_free(&enc_pkt);
- return ret;
- }
-
- av_packet_rescale_ts(enc_pkt, audio_enc_ctx->time_base, out_audio_stream->time_base);
- enc_pkt->stream_index = out_audio_stream->index;
- enc_pkt->pos = -1;
-
- ret = av_interleaved_write_frame(out_fmt_ctx, enc_pkt);
- av_packet_free(&enc_pkt);
-
- if (ret < 0) {
- LOGE("av_interleaved_write_frame audio failed: %s", av_err_to_string(ret).c_str());
- return ret;
- }
- }
-}
-
-static int resample_encode_audio_frame(SwrContext *swr_ctx,
- AVCodecContext *audio_dec_ctx,
- AVCodecContext *audio_enc_ctx,
- AVFormatContext *out_fmt_ctx,
- AVStream *out_audio_stream,
- AVFrame *decoded,
- int64_t *next_pts) {
- if (!swr_ctx || !audio_dec_ctx || !audio_enc_ctx || !out_fmt_ctx || !out_audio_stream || !decoded || !next_pts) {
- return AVERROR(EINVAL);
- }
-
- int out_samples = static_cast(av_rescale_rnd(
- swr_get_delay(swr_ctx, audio_dec_ctx->sample_rate) + decoded->nb_samples,
- audio_enc_ctx->sample_rate,
- audio_dec_ctx->sample_rate,
- AV_ROUND_UP
- ));
-
- if (out_samples <= 0) {
- out_samples = decoded->nb_samples;
- }
-
- AVFrame *converted = av_frame_alloc();
- if (!converted) {
- return AVERROR(ENOMEM);
- }
-
- converted->format = audio_enc_ctx->sample_fmt;
- converted->sample_rate = audio_enc_ctx->sample_rate;
- av_channel_layout_copy(&converted->ch_layout, &audio_enc_ctx->ch_layout);
- converted->nb_samples = out_samples;
-
- int ret = av_frame_get_buffer(converted, 0);
- if (ret < 0) {
- av_frame_free(&converted);
- return ret;
- }
-
- ret = swr_convert(
- swr_ctx,
- converted->data,
- out_samples,
- const_cast(decoded->data),
- decoded->nb_samples
- );
-
- if (ret < 0) {
- LOGE("swr_convert failed: %s", av_err_to_string(ret).c_str());
- av_frame_free(&converted);
- return ret;
- }
-
- converted->nb_samples = ret;
- converted->pts = *next_pts;
- *next_pts += converted->nb_samples;
-
- ret = encode_audio_and_write(audio_enc_ctx, out_fmt_ctx, out_audio_stream, converted);
- av_frame_free(&converted);
- return ret;
-}
-
-static int encode_and_write(AVCodecContext *enc_ctx,
- AVFormatContext *out_fmt_ctx,
- AVStream *out_video_stream,
- AVFrame *frame) {
- if (is_cancel_requested()) {
- return AVERROR_EXIT;
- }
-
- int ret = avcodec_send_frame(enc_ctx, frame);
- if (ret < 0) {
- LOGE("avcodec_send_frame failed: %s", av_err_to_string(ret).c_str());
- return ret;
- }
-
- while (true) {
- if (is_cancel_requested()) {
- return AVERROR_EXIT;
- }
-
- AVPacket *enc_pkt = av_packet_alloc();
- if (!enc_pkt) {
- return AVERROR(ENOMEM);
- }
-
- ret = avcodec_receive_packet(enc_ctx, enc_pkt);
- if (ret == AVERROR(EAGAIN) || ret == AVERROR_EOF) {
- av_packet_free(&enc_pkt);
- return 0;
- }
-
- if (ret < 0) {
- LOGE("avcodec_receive_packet failed: %s", av_err_to_string(ret).c_str());
- av_packet_free(&enc_pkt);
- return ret;
- }
-
- av_packet_rescale_ts(enc_pkt, enc_ctx->time_base, out_video_stream->time_base);
- enc_pkt->stream_index = out_video_stream->index;
- enc_pkt->pos = -1;
-
- ret = av_interleaved_write_frame(out_fmt_ctx, enc_pkt);
- av_packet_free(&enc_pkt);
-
- if (ret < 0) {
- LOGE("av_interleaved_write_frame video failed: %s", av_err_to_string(ret).c_str());
- return ret;
- }
- }
-}
-
-static int compress_video_fd_impl(JNIEnv *env,
- int input_fd,
- int output_fd,
- int target_short_side,
- int input_rotation_degrees,
- int crf,
- const std::string &encoder_name,
- const std::string &preset,
- const std::string &audio_mode,
- int audio_bitrate,
- jobject callback) {
- FdAvio *input_io = nullptr;
- FdAvio *output_io = nullptr;
-
- AVFormatContext *in_fmt_ctx = nullptr;
- AVFormatContext *out_fmt_ctx = nullptr;
- AVCodecContext *dec_ctx = nullptr;
- AVCodecContext *enc_ctx = nullptr;
- AVCodecContext *audio_dec_ctx = nullptr;
- AVCodecContext *audio_enc_ctx = nullptr;
- SwrContext *swr_ctx = nullptr;
- SwsContext *sws_ctx = nullptr;
-
- AVFrame *decoded_frame = nullptr;
- AVFrame *converted_frame = nullptr;
- AVFrame *scaled_frame = nullptr;
- AVFrame *audio_decoded_frame = nullptr;
- AVPacket *pkt = nullptr;
-
- std::vector stream_mapping;
- AVStream *in_video_stream = nullptr;
- AVStream *out_video_stream = nullptr;
- AVStream *in_audio_stream = nullptr;
- AVStream *out_audio_stream = nullptr;
-
- int video_stream_index = -1;
- int audio_stream_index = -1;
- int ret = 0;
- int last_percent = 2;
- int64_t frame_index = 0;
- int rotation_degrees = 0;
- int convert_w = 0;
- int convert_h = 0;
- int64_t audio_next_pts = 0;
- bool audio_transcode_aac = audio_mode == "aac";
- bool audio_copy_original = audio_mode == "copy";
- bool audio_mute = audio_mode == "mute";
-
- callback_progress(env, callback, 0, "Open input");
-
- if (is_cancel_requested()) {
- ret = AVERROR_EXIT;
- goto cleanup;
- }
-
- input_io = create_fd_avio(input_fd, false);
- if (!input_io) {
- ret = AVERROR(errno ? errno : EIO);
- LOGE("create_fd_avio input failed: %s", av_err_to_string(ret).c_str());
- goto cleanup;
- }
-
- in_fmt_ctx = avformat_alloc_context();
- if (!in_fmt_ctx) {
- ret = AVERROR(ENOMEM);
- goto cleanup;
- }
-
- in_fmt_ctx->pb = input_io->ctx;
- in_fmt_ctx->flags |= AVFMT_FLAG_CUSTOM_IO;
-
- ret = avformat_open_input(&in_fmt_ctx, "input_from_fd", nullptr, nullptr);
- if (ret < 0) {
- LOGE("avformat_open_input failed: %s", av_err_to_string(ret).c_str());
- goto cleanup;
- }
-
- ret = avformat_find_stream_info(in_fmt_ctx, nullptr);
- if (ret < 0) {
- LOGE("avformat_find_stream_info failed: %s", av_err_to_string(ret).c_str());
- goto cleanup;
- }
-
- ret = av_find_best_stream(in_fmt_ctx, AVMEDIA_TYPE_VIDEO, -1, -1, nullptr, 0);
- if (ret < 0) {
- LOGE("No video stream found: %s", av_err_to_string(ret).c_str());
- goto cleanup;
- }
-
- video_stream_index = ret;
- in_video_stream = in_fmt_ctx->streams[video_stream_index];
-
- {
- const AVCodec *decoder = avcodec_find_decoder(in_video_stream->codecpar->codec_id);
- if (!decoder) {
- ret = AVERROR_DECODER_NOT_FOUND;
- LOGE("Decoder not found for codec id: %d", in_video_stream->codecpar->codec_id);
- goto cleanup;
- }
-
- dec_ctx = avcodec_alloc_context3(decoder);
- if (!dec_ctx) {
- ret = AVERROR(ENOMEM);
- goto cleanup;
- }
-
- ret = avcodec_parameters_to_context(dec_ctx, in_video_stream->codecpar);
- if (ret < 0) {
- LOGE("avcodec_parameters_to_context failed: %s", av_err_to_string(ret).c_str());
- goto cleanup;
- }
-
- ret = avcodec_open2(dec_ctx, decoder, nullptr);
- if (ret < 0) {
- LOGE("avcodec_open2 decoder failed: %s", av_err_to_string(ret).c_str());
- goto cleanup;
- }
- }
-
- callback_progress(env, callback, 2, "Prepare output");
-
- ret = avformat_alloc_output_context2(&out_fmt_ctx, nullptr, "mp4", nullptr);
- if (ret < 0 || !out_fmt_ctx) {
- LOGE("avformat_alloc_output_context2 failed: %s", av_err_to_string(ret).c_str());
- goto cleanup;
- }
-
- output_io = create_fd_avio(output_fd, true);
- if (!output_io) {
- ret = AVERROR(errno ? errno : EIO);
- LOGE("create_fd_avio output failed: %s", av_err_to_string(ret).c_str());
- goto cleanup;
- }
-
- out_fmt_ctx->pb = output_io->ctx;
- out_fmt_ctx->flags |= AVFMT_FLAG_CUSTOM_IO;
-
- stream_mapping.assign(in_fmt_ctx->nb_streams, -1);
-
- {
- const AVCodec *encoder = avcodec_find_encoder_by_name(encoder_name.c_str());
- if (!encoder) {
- ret = AVERROR_ENCODER_NOT_FOUND;
- LOGE("Encoder not found: %s", encoder_name.c_str());
- goto cleanup;
- }
-
- out_video_stream = avformat_new_stream(out_fmt_ctx, nullptr);
- if (!out_video_stream) {
- ret = AVERROR(ENOMEM);
- goto cleanup;
- }
-
- enc_ctx = avcodec_alloc_context3(encoder);
- if (!enc_ctx) {
- ret = AVERROR(ENOMEM);
- goto cleanup;
- }
-
- int src_w = dec_ctx->width;
- int src_h = dec_ctx->height;
-
- if (src_w <= 0 || src_h <= 0) {
- ret = AVERROR(EINVAL);
- LOGE("Invalid source size: %dx%d", src_w, src_h);
- goto cleanup;
- }
-
- rotation_degrees = normalize_rotation_degrees(static_cast(input_rotation_degrees));
-
- int dst_w = 0;
- int dst_h = 0;
-
- compute_oriented_output_size(
- src_w,
- src_h,
- rotation_degrees,
- target_short_side,
- &dst_w,
- &dst_h,
- &convert_w,
- &convert_h
- );
-
- LOGD("Input coded=%dx%d rotation=%d target_short=%d convert=%dx%d output physical=%dx%d",
- src_w,
- src_h,
- rotation_degrees,
- target_short_side,
- convert_w,
- convert_h,
- dst_w,
- dst_h);
-
- AVRational fps = choose_fps(in_video_stream, dec_ctx);
- AVRational time_base = av_inv_q(fps);
-
- enc_ctx->codec_id = encoder->id;
- enc_ctx->codec_type = AVMEDIA_TYPE_VIDEO;
- enc_ctx->width = dst_w;
- enc_ctx->height = dst_h;
- enc_ctx->pix_fmt = AV_PIX_FMT_YUV420P;
- enc_ctx->time_base = time_base;
- enc_ctx->framerate = fps;
- enc_ctx->gop_size = 60;
- enc_ctx->max_b_frames = 2;
- enc_ctx->bit_rate = 0;
-
- if (in_video_stream->sample_aspect_ratio.num > 0 &&
- in_video_stream->sample_aspect_ratio.den > 0) {
- enc_ctx->sample_aspect_ratio = in_video_stream->sample_aspect_ratio;
- }
-
- if (out_fmt_ctx->oformat->flags & AVFMT_GLOBALHEADER) {
- enc_ctx->flags |= AV_CODEC_FLAG_GLOBAL_HEADER;
- }
-
- std::string crf_str = std::to_string(crf);
-
- if (enc_ctx->priv_data) {
- av_opt_set(enc_ctx->priv_data, "preset", preset.c_str(), 0);
- av_opt_set(enc_ctx->priv_data, "crf", crf_str.c_str(), 0);
-
- if (encoder_name == "libx265") {
- av_opt_set(enc_ctx->priv_data, "x265-params", "log-level=error", 0);
- }
- }
-
- ret = avcodec_open2(enc_ctx, encoder, nullptr);
- if (ret < 0) {
- LOGE("avcodec_open2 encoder failed: %s", av_err_to_string(ret).c_str());
- goto cleanup;
- }
-
- ret = avcodec_parameters_from_context(out_video_stream->codecpar, enc_ctx);
- if (ret < 0) {
- LOGE("avcodec_parameters_from_context failed: %s", av_err_to_string(ret).c_str());
- goto cleanup;
- }
-
- out_video_stream->time_base = enc_ctx->time_base;
- stream_mapping[video_stream_index] = out_video_stream->index;
-
- // Rotasi dibuat fisik berdasarkan rotasi dari Android/Java. Metadata rotate/display matrix tidak disalin.
-
- sws_ctx = sws_getContext(
- dec_ctx->width,
- dec_ctx->height,
- dec_ctx->pix_fmt,
- convert_w,
- convert_h,
- AV_PIX_FMT_YUV420P,
- SWS_BICUBIC,
- nullptr,
- nullptr,
- nullptr
- );
-
- if (!sws_ctx) {
- ret = AVERROR(EINVAL);
- LOGE("sws_getContext failed");
- goto cleanup;
- }
- }
-
- if (audio_mute) {
- LOGD("Audio mode: mute");
- } else if (audio_transcode_aac) {
- for (unsigned int i = 0; i < in_fmt_ctx->nb_streams; ++i) {
- if (static_cast(i) == video_stream_index) continue;
-
- AVStream *candidate = in_fmt_ctx->streams[i];
- if (!candidate || !candidate->codecpar) continue;
- if (candidate->codecpar->codec_type != AVMEDIA_TYPE_AUDIO) continue;
-
- audio_stream_index = static_cast(i);
- in_audio_stream = candidate;
- break;
- }
-
- if (in_audio_stream) {
- const AVCodec *audio_decoder = avcodec_find_decoder(in_audio_stream->codecpar->codec_id);
- const AVCodec *audio_encoder = avcodec_find_encoder(AV_CODEC_ID_AAC);
-
- if (!audio_decoder || !audio_encoder) {
- LOGD("AAC transcode unavailable, audio will be skipped");
- audio_stream_index = -1;
- in_audio_stream = nullptr;
- } else {
- audio_dec_ctx = avcodec_alloc_context3(audio_decoder);
- audio_enc_ctx = avcodec_alloc_context3(audio_encoder);
-
- if (!audio_dec_ctx || !audio_enc_ctx) {
- ret = AVERROR(ENOMEM);
- goto cleanup;
- }
-
- ret = avcodec_parameters_to_context(audio_dec_ctx, in_audio_stream->codecpar);
- if (ret < 0) {
- LOGE("audio avcodec_parameters_to_context failed: %s", av_err_to_string(ret).c_str());
- goto cleanup;
- }
-
- ret = avcodec_open2(audio_dec_ctx, audio_decoder, nullptr);
- if (ret < 0) {
- LOGE("audio decoder open failed: %s", av_err_to_string(ret).c_str());
- goto cleanup;
- }
-
- out_audio_stream = avformat_new_stream(out_fmt_ctx, nullptr);
- if (!out_audio_stream) {
- ret = AVERROR(ENOMEM);
- goto cleanup;
- }
-
- audio_enc_ctx->codec_id = AV_CODEC_ID_AAC;
- audio_enc_ctx->codec_type = AVMEDIA_TYPE_AUDIO;
- audio_enc_ctx->sample_rate = audio_dec_ctx->sample_rate > 0 ? audio_dec_ctx->sample_rate : 44100;
- get_audio_ch_layout_compat(&audio_enc_ctx->ch_layout, audio_dec_ctx);
- audio_enc_ctx->sample_fmt = choose_audio_sample_fmt(audio_encoder);
- audio_enc_ctx->bit_rate = audio_bitrate > 0 ? audio_bitrate : 128000;
- audio_enc_ctx->time_base = AVRational{1, audio_enc_ctx->sample_rate};
-
- if (out_fmt_ctx->oformat->flags & AVFMT_GLOBALHEADER) {
- audio_enc_ctx->flags |= AV_CODEC_FLAG_GLOBAL_HEADER;
- }
-
- ret = avcodec_open2(audio_enc_ctx, audio_encoder, nullptr);
- if (ret < 0) {
- LOGE("audio encoder open failed: %s", av_err_to_string(ret).c_str());
- goto cleanup;
- }
-
- ret = avcodec_parameters_from_context(out_audio_stream->codecpar, audio_enc_ctx);
- if (ret < 0) {
- LOGE("audio avcodec_parameters_from_context failed: %s", av_err_to_string(ret).c_str());
- goto cleanup;
- }
-
- out_audio_stream->time_base = audio_enc_ctx->time_base;
- stream_mapping[audio_stream_index] = out_audio_stream->index;
-
- AVChannelLayout input_audio_layout;
- get_audio_ch_layout_compat(&input_audio_layout, audio_dec_ctx);
-
- ret = swr_alloc_set_opts2(
- &swr_ctx,
- &audio_enc_ctx->ch_layout,
- audio_enc_ctx->sample_fmt,
- audio_enc_ctx->sample_rate,
- &input_audio_layout,
- audio_dec_ctx->sample_fmt,
- audio_dec_ctx->sample_rate > 0 ? audio_dec_ctx->sample_rate : audio_enc_ctx->sample_rate,
- 0,
- nullptr
- );
-
- av_channel_layout_uninit(&input_audio_layout);
-
- if (ret < 0 || !swr_ctx) {
- if (ret >= 0) ret = AVERROR(ENOMEM);
- LOGE("swr_alloc_set_opts2 failed: %s", av_err_to_string(ret).c_str());
- goto cleanup;
- }
-
- ret = swr_init(swr_ctx);
- if (ret < 0) {
- LOGE("swr_init failed: %s", av_err_to_string(ret).c_str());
- goto cleanup;
- }
- }
- }
- } else if (audio_copy_original) {
- // Copy audio stream yang aman untuk MP4. Audio selain AAC/MP3/ALAC dilewati.
- for (unsigned int i = 0; i < in_fmt_ctx->nb_streams; ++i) {
- if (static_cast(i) == video_stream_index) continue;
-
- AVStream *in_stream = in_fmt_ctx->streams[i];
- if (!in_stream || !in_stream->codecpar) continue;
-
- if (in_stream->codecpar->codec_type != AVMEDIA_TYPE_AUDIO) continue;
-
- if (!is_audio_copy_supported_in_mp4(in_stream->codecpar->codec_id)) {
- LOGD("Skip unsupported audio codec for MP4: %d", in_stream->codecpar->codec_id);
- continue;
- }
-
- AVStream *out_stream = avformat_new_stream(out_fmt_ctx, nullptr);
- if (!out_stream) {
- ret = AVERROR(ENOMEM);
- goto cleanup;
- }
-
- ret = avcodec_parameters_copy(out_stream->codecpar, in_stream->codecpar);
- if (ret < 0) {
- LOGE("avcodec_parameters_copy audio failed: %s", av_err_to_string(ret).c_str());
- goto cleanup;
- }
-
- out_stream->codecpar->codec_tag = 0;
- out_stream->time_base = in_stream->time_base;
- stream_mapping[i] = out_stream->index;
- }
- }
-
- ret = avformat_write_header(out_fmt_ctx, nullptr);
- if (ret < 0) {
- LOGE("avformat_write_header failed: %s", av_err_to_string(ret).c_str());
- goto cleanup;
- }
-
- decoded_frame = av_frame_alloc();
- converted_frame = av_frame_alloc();
- scaled_frame = av_frame_alloc();
- audio_decoded_frame = av_frame_alloc();
- pkt = av_packet_alloc();
-
- if (!decoded_frame || !converted_frame || !scaled_frame || !audio_decoded_frame || !pkt) {
- ret = AVERROR(ENOMEM);
- goto cleanup;
- }
-
- converted_frame->format = AV_PIX_FMT_YUV420P;
- converted_frame->width = convert_w;
- converted_frame->height = convert_h;
-
- scaled_frame->format = enc_ctx->pix_fmt;
- scaled_frame->width = enc_ctx->width;
- scaled_frame->height = enc_ctx->height;
-
- ret = av_frame_get_buffer(converted_frame, 32);
- if (ret < 0) {
- LOGE("av_frame_get_buffer converted failed: %s", av_err_to_string(ret).c_str());
- goto cleanup;
- }
-
- ret = av_frame_get_buffer(scaled_frame, 32);
- if (ret < 0) {
- LOGE("av_frame_get_buffer scaled failed: %s", av_err_to_string(ret).c_str());
- goto cleanup;
- }
-
- callback_progress(env, callback, 3, "Start transcode");
-
- while ((ret = av_read_frame(in_fmt_ctx, pkt)) >= 0) {
- if (is_cancel_requested()) {
- av_packet_unref(pkt);
- ret = AVERROR_EXIT;
- goto cleanup;
- }
- if (pkt->stream_index == video_stream_index) {
- ret = avcodec_send_packet(dec_ctx, pkt);
- av_packet_unref(pkt);
-
- if (ret < 0) {
- LOGE("avcodec_send_packet failed: %s", av_err_to_string(ret).c_str());
- goto cleanup;
- }
-
- while (true) {
- if (is_cancel_requested()) {
- ret = AVERROR_EXIT;
- goto cleanup;
- }
-
- ret = avcodec_receive_frame(dec_ctx, decoded_frame);
-
- if (ret == AVERROR(EAGAIN) || ret == AVERROR_EOF) {
- ret = 0;
- break;
- }
-
- if (ret < 0) {
- LOGE("avcodec_receive_frame failed: %s", av_err_to_string(ret).c_str());
- goto cleanup;
- }
-
- ret = av_frame_make_writable(converted_frame);
- if (ret < 0) {
- LOGE("av_frame_make_writable converted failed: %s", av_err_to_string(ret).c_str());
- av_frame_unref(decoded_frame);
- goto cleanup;
- }
-
- sws_scale(
- sws_ctx,
- decoded_frame->data,
- decoded_frame->linesize,
- 0,
- dec_ctx->height,
- converted_frame->data,
- converted_frame->linesize
- );
-
- ret = transform_yuv420p_for_output(converted_frame, scaled_frame, rotation_degrees);
- if (ret < 0) {
- LOGE("transform_yuv420p_for_output failed: %s", av_err_to_string(ret).c_str());
- av_frame_unref(decoded_frame);
- goto cleanup;
- }
-
- scaled_frame->pts = frame_index++;
-
- ret = encode_and_write(enc_ctx, out_fmt_ctx, out_video_stream, scaled_frame);
- if (ret < 0) {
- av_frame_unref(decoded_frame);
- goto cleanup;
- }
-
- emit_video_progress(env, callback, in_fmt_ctx, in_video_stream, decoded_frame, last_percent);
- av_frame_unref(decoded_frame);
- }
- } else {
- if (audio_transcode_aac && pkt->stream_index == audio_stream_index && audio_dec_ctx && audio_enc_ctx) {
- ret = avcodec_send_packet(audio_dec_ctx, pkt);
- av_packet_unref(pkt);
-
- if (ret < 0) {
- LOGE("audio avcodec_send_packet failed: %s", av_err_to_string(ret).c_str());
- goto cleanup;
- }
-
- while (true) {
- ret = avcodec_receive_frame(audio_dec_ctx, audio_decoded_frame);
-
- if (ret == AVERROR(EAGAIN) || ret == AVERROR_EOF) {
- ret = 0;
- break;
- }
-
- if (ret < 0) {
- LOGE("audio avcodec_receive_frame failed: %s", av_err_to_string(ret).c_str());
- goto cleanup;
- }
-
- ret = resample_encode_audio_frame(
- swr_ctx,
- audio_dec_ctx,
- audio_enc_ctx,
- out_fmt_ctx,
- out_audio_stream,
- audio_decoded_frame,
- &audio_next_pts
- );
-
- av_frame_unref(audio_decoded_frame);
- if (ret < 0) goto cleanup;
- }
- } else {
- int out_index = -1;
-
- if (pkt->stream_index >= 0 &&
- pkt->stream_index < static_cast(stream_mapping.size())) {
- out_index = stream_mapping[pkt->stream_index];
- }
-
- if (out_index >= 0) {
- AVStream *in_stream = in_fmt_ctx->streams[pkt->stream_index];
- AVStream *out_stream = out_fmt_ctx->streams[out_index];
-
- av_packet_rescale_ts(pkt, in_stream->time_base, out_stream->time_base);
- pkt->stream_index = out_index;
- pkt->pos = -1;
-
- ret = av_interleaved_write_frame(out_fmt_ctx, pkt);
- av_packet_unref(pkt);
-
- if (ret < 0) {
- LOGE("audio copy write failed: %s", av_err_to_string(ret).c_str());
- goto cleanup;
- }
- } else {
- av_packet_unref(pkt);
- }
- }
- }
-
- }
-
- if (ret == AVERROR_EOF) {
- ret = 0;
- }
-
- // Flush decoder.
- ret = avcodec_send_packet(dec_ctx, nullptr);
- if (ret >= 0) {
- while (true) {
- if (is_cancel_requested()) {
- ret = AVERROR_EXIT;
- goto cleanup;
- }
-
- ret = avcodec_receive_frame(dec_ctx, decoded_frame);
-
- if (ret == AVERROR_EOF || ret == AVERROR(EAGAIN)) {
- ret = 0;
- break;
- }
-
- if (ret < 0) {
- LOGE("flush decoder receive failed: %s", av_err_to_string(ret).c_str());
- goto cleanup;
- }
-
- ret = av_frame_make_writable(converted_frame);
- if (ret < 0) {
- av_frame_unref(decoded_frame);
- goto cleanup;
- }
-
- sws_scale(
- sws_ctx,
- decoded_frame->data,
- decoded_frame->linesize,
- 0,
- dec_ctx->height,
- converted_frame->data,
- converted_frame->linesize
- );
-
- ret = transform_yuv420p_for_output(converted_frame, scaled_frame, rotation_degrees);
- if (ret < 0) {
- av_frame_unref(decoded_frame);
- goto cleanup;
- }
-
- scaled_frame->pts = frame_index++;
-
- ret = encode_and_write(enc_ctx, out_fmt_ctx, out_video_stream, scaled_frame);
- if (ret < 0) {
- av_frame_unref(decoded_frame);
- goto cleanup;
- }
-
- emit_video_progress(env, callback, in_fmt_ctx, in_video_stream, decoded_frame, last_percent);
- av_frame_unref(decoded_frame);
- }
- } else {
- LOGD("decoder flush send returned: %s", av_err_to_string(ret).c_str());
- ret = 0;
- }
-
- // Flush audio decoder/encoder jika audio di-transcode ke AAC.
- if (audio_transcode_aac && audio_dec_ctx && audio_enc_ctx) {
- ret = avcodec_send_packet(audio_dec_ctx, nullptr);
- if (ret >= 0) {
- while (true) {
- ret = avcodec_receive_frame(audio_dec_ctx, audio_decoded_frame);
-
- if (ret == AVERROR_EOF || ret == AVERROR(EAGAIN)) {
- ret = 0;
- break;
- }
-
- if (ret < 0) {
- LOGE("audio flush receive failed: %s", av_err_to_string(ret).c_str());
- goto cleanup;
- }
-
- ret = resample_encode_audio_frame(
- swr_ctx,
- audio_dec_ctx,
- audio_enc_ctx,
- out_fmt_ctx,
- out_audio_stream,
- audio_decoded_frame,
- &audio_next_pts
- );
-
- av_frame_unref(audio_decoded_frame);
- if (ret < 0) goto cleanup;
- }
- } else {
- ret = 0;
- }
-
- ret = encode_audio_and_write(audio_enc_ctx, out_fmt_ctx, out_audio_stream, nullptr);
- if (ret < 0) goto cleanup;
- }
-
- // Flush encoder.
- ret = encode_and_write(enc_ctx, out_fmt_ctx, out_video_stream, nullptr);
- if (ret < 0) goto cleanup;
-
- ret = av_write_trailer(out_fmt_ctx);
- if (ret < 0) {
- LOGE("av_write_trailer failed: %s", av_err_to_string(ret).c_str());
- goto cleanup;
- }
-
- callback_progress(env, callback, 100, "Done");
-
-cleanup:
- if (ret == AVERROR_EXIT) {
- LOGD("Native compression canceled");
- callback_progress(env, callback, 0, "Canceled");
- } else if (ret < 0) {
- LOGE("Native error: %s", av_err_to_string(ret).c_str());
- callback_progress(env, callback, 0, "Native error: " + av_err_to_string(ret));
- }
-
- if (pkt) av_packet_free(&pkt);
- if (decoded_frame) av_frame_free(&decoded_frame);
- if (converted_frame) av_frame_free(&converted_frame);
- if (scaled_frame) av_frame_free(&scaled_frame);
- if (audio_decoded_frame) av_frame_free(&audio_decoded_frame);
- if (swr_ctx) swr_free(&swr_ctx);
- if (sws_ctx) sws_freeContext(sws_ctx);
- if (audio_dec_ctx) avcodec_free_context(&audio_dec_ctx);
- if (audio_enc_ctx) avcodec_free_context(&audio_enc_ctx);
- if (dec_ctx) avcodec_free_context(&dec_ctx);
- if (enc_ctx) avcodec_free_context(&enc_ctx);
-
- if (out_fmt_ctx) {
- out_fmt_ctx->pb = nullptr;
- avformat_free_context(out_fmt_ctx);
- out_fmt_ctx = nullptr;
- }
-
- if (in_fmt_ctx) {
- in_fmt_ctx->pb = nullptr;
- avformat_close_input(&in_fmt_ctx);
- }
-
- free_fd_avio(output_io);
- free_fd_avio(input_io);
-
- return ret < 0 ? ret : 0;
-}
-
-//extern "C"
-//JNIEXPORT jstring JNICALL
-//Java_com_kikyps_kcompressor_NativeCompressor_ffmpegVersion(JNIEnv *env, jclass) {
-// return env->NewStringUTF(av_version_info());
-//}
-
-
extern "C"
JNIEXPORT void JNICALL
Java_com_kikyps_kcompressor_NativeCompressor_cancelCurrentJob(JNIEnv *, jclass) {
- g_cancel_requested.store(true, std::memory_order_release);
+ set_cancel_requested(true);
}
extern "C"
@@ -1469,13 +40,9 @@ Java_com_kikyps_kcompressor_NativeCompressor_compressFd(JNIEnv *env,
jstring audioMode,
jint audioBitrate,
jobject callback) {
- const char *encoder_chars = encoderName ? env->GetStringUTFChars(encoderName, nullptr) : nullptr;
- const char *preset_chars = preset ? env->GetStringUTFChars(preset, nullptr) : nullptr;
- const char *audio_mode_chars = audioMode ? env->GetStringUTFChars(audioMode, nullptr) : nullptr;
-
- std::string encoder = encoder_chars ? encoder_chars : "libx264";
- std::string preset_str = preset_chars ? preset_chars : "medium";
- std::string audio_mode = audio_mode_chars ? audio_mode_chars : "copy";
+ std::string encoder = jstring_to_string(env, encoderName, "libx264");
+ std::string preset_str = jstring_to_string(env, preset, "medium");
+ std::string audio_mode = jstring_to_string(env, audioMode, "copy");
if (encoder != "libx264" && encoder != "libx265") {
encoder = "libx264";
@@ -1494,7 +61,7 @@ Java_com_kikyps_kcompressor_NativeCompressor_compressFd(JNIEnv *env,
audioBitrate = 128000;
}
- g_cancel_requested.store(false, std::memory_order_release);
+ reset_cancel_requested();
int ret = compress_video_fd_impl(
env,
@@ -1510,17 +77,39 @@ Java_com_kikyps_kcompressor_NativeCompressor_compressFd(JNIEnv *env,
callback
);
- if (encoder_chars) {
- env->ReleaseStringUTFChars(encoderName, encoder_chars);
- }
+ return static_cast(ret);
+}
- if (preset_chars) {
- env->ReleaseStringUTFChars(preset, preset_chars);
- }
+extern "C"
+JNIEXPORT jint JNICALL
+Java_com_kikyps_kcompressor_NativeCompressor_compressImageFd(JNIEnv *env,
+ jclass,
+ jint inputFd,
+ jint outputFd,
+ jstring inputMime,
+ jstring outputFormat,
+ jint quality,
+ jint maxLongSide,
+ jobject callback) {
+ std::string mime = jstring_to_string(env, inputMime, "");
+ std::string format = jstring_to_string(env, outputFormat, "jpeg");
- if (audio_mode_chars) {
- env->ReleaseStringUTFChars(audioMode, audio_mode_chars);
- }
+ if (quality < 1) quality = 1;
+ if (quality > 100) quality = 100;
+ if (maxLongSide < 0) maxLongSide = 0;
+
+ reset_cancel_requested();
+
+ int ret = compress_image_fd_impl(
+ env,
+ static_cast(inputFd),
+ static_cast(outputFd),
+ mime,
+ format,
+ static_cast(quality),
+ static_cast(maxLongSide),
+ callback
+ );
return static_cast(ret);
}
diff --git a/app/src/main/cpp/video_compressor.cpp b/app/src/main/cpp/video_compressor.cpp
new file mode 100644
index 0000000..3fd42b7
--- /dev/null
+++ b/app/src/main/cpp/video_compressor.cpp
@@ -0,0 +1,1417 @@
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include "video_compressor.h"
+#include "compressor_common.h"
+
+#include
+#include
+#include
+#include
+#include
+#include
+
+extern "C" {
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+}
+
+#define LOG_TAG "KCompressorNative"
+#define LOGD(...) __android_log_print(ANDROID_LOG_DEBUG, LOG_TAG, __VA_ARGS__)
+#define LOGE(...) __android_log_print(ANDROID_LOG_ERROR, LOG_TAG, __VA_ARGS__)
+
+
+/*
+ * Native compressor:
+ * - Input/output memakai fd langsung dari Java melalui custom AVIOContext.
+ * - Tidak membuka ulang /proc/self/fd/, agar aman untuk SAF/MediaStore.
+ * - Rotasi video dipertahankan dengan copy AV_PKT_DATA_DISPLAYMATRIX.
+ * - target_short_side:
+ * 0 = Original, tidak downgrade resolusi.
+ * >0 = target sisi pendek display, contoh:
+ * landscape 1920x1080 -> 720 menghasilkan 1280x720
+ * portrait 1080x1920 dengan rotation 90 -> 720 menghasilkan coded 1280x720
+ * lalu rotation metadata tetap disalin, sehingga tampil portrait 720x1280.
+ */
+
+struct FdAvio {
+ int fd = -1;
+ uint8_t *buffer = nullptr;
+ AVIOContext *ctx = nullptr;
+};
+
+static std::string av_err_to_string(int err) {
+ char buf[AV_ERROR_MAX_STRING_SIZE] = {0};
+ av_strerror(err, buf, sizeof(buf));
+ return std::string(buf);
+}
+
+static int fd_read_packet(void *opaque, uint8_t *buf, int buf_size) {
+ FdAvio *fio = static_cast(opaque);
+ if (!fio || fio->fd < 0 || !buf || buf_size <= 0) {
+ return AVERROR(EINVAL);
+ }
+
+ while (true) {
+ ssize_t ret = read(fio->fd, buf, static_cast(buf_size));
+
+ if (ret == 0) {
+ return AVERROR_EOF;
+ }
+
+ if (ret < 0) {
+ if (errno == EINTR) continue;
+ return AVERROR(errno);
+ }
+
+ return static_cast(ret);
+ }
+}
+
+static int fd_write_packet(void *opaque, const uint8_t *buf, int buf_size) {
+ FdAvio *fio = static_cast(opaque);
+ if (!fio || fio->fd < 0 || !buf || buf_size <= 0) {
+ return AVERROR(EINVAL);
+ }
+
+ int total = 0;
+
+ while (total < buf_size) {
+ ssize_t ret = write(
+ fio->fd,
+ buf + total,
+ static_cast(buf_size - total)
+ );
+
+ if (ret < 0) {
+ if (errno == EINTR) continue;
+ return AVERROR(errno);
+ }
+
+ if (ret == 0) {
+ return AVERROR(EIO);
+ }
+
+ total += static_cast(ret);
+ }
+
+ return total;
+}
+
+static int64_t fd_seek(void *opaque, int64_t offset, int whence) {
+ FdAvio *fio = static_cast(opaque);
+ if (!fio || fio->fd < 0) {
+ return AVERROR(EINVAL);
+ }
+
+ if (whence == AVSEEK_SIZE) {
+ off64_t current = lseek64(fio->fd, 0, SEEK_CUR);
+ if (current < 0) return AVERROR(errno);
+
+ off64_t end = lseek64(fio->fd, 0, SEEK_END);
+ if (end < 0) return AVERROR(errno);
+
+ if (lseek64(fio->fd, current, SEEK_SET) < 0) {
+ return AVERROR(errno);
+ }
+
+ return static_cast(end);
+ }
+
+ whence &= ~AVSEEK_FORCE;
+
+ int real_whence;
+ if (whence == SEEK_CUR) {
+ real_whence = SEEK_CUR;
+ } else if (whence == SEEK_END) {
+ real_whence = SEEK_END;
+ } else {
+ real_whence = SEEK_SET;
+ }
+
+ off64_t ret = lseek64(fio->fd, static_cast(offset), real_whence);
+ if (ret < 0) {
+ return AVERROR(errno);
+ }
+
+ return static_cast(ret);
+}
+
+static FdAvio *create_fd_avio(int original_fd, bool write_mode) {
+ if (original_fd < 0) {
+ errno = EBADF;
+ return nullptr;
+ }
+
+ int owned_fd = dup(original_fd);
+ if (owned_fd < 0) {
+ return nullptr;
+ }
+
+ if (write_mode) {
+ if (lseek64(owned_fd, 0, SEEK_SET) < 0) {
+ LOGD("output fd is not seekable at start: %s", strerror(errno));
+ }
+ if (ftruncate(owned_fd, 0) < 0) {
+ LOGD("ftruncate output failed or unsupported: %s", strerror(errno));
+ }
+ } else {
+ if (lseek64(owned_fd, 0, SEEK_SET) < 0) {
+ LOGD("input fd is not seekable at start: %s", strerror(errno));
+ }
+ }
+
+ constexpr int buffer_size = 64 * 1024;
+
+ FdAvio *fio = new FdAvio();
+ fio->fd = owned_fd;
+ fio->buffer = static_cast(av_malloc(buffer_size));
+
+ if (!fio->buffer) {
+ close(owned_fd);
+ delete fio;
+ errno = ENOMEM;
+ return nullptr;
+ }
+
+ fio->ctx = avio_alloc_context(
+ fio->buffer,
+ buffer_size,
+ write_mode ? 1 : 0,
+ fio,
+ write_mode ? nullptr : fd_read_packet,
+ write_mode ? fd_write_packet : nullptr,
+ fd_seek
+ );
+
+ if (!fio->ctx) {
+ av_free(fio->buffer);
+ close(owned_fd);
+ delete fio;
+ errno = ENOMEM;
+ return nullptr;
+ }
+
+ fio->ctx->seekable = AVIO_SEEKABLE_NORMAL;
+ return fio;
+}
+
+static void free_fd_avio(FdAvio *fio) {
+ if (!fio) return;
+
+ if (fio->ctx) {
+ av_freep(&fio->ctx->buffer);
+ avio_context_free(&fio->ctx);
+ fio->buffer = nullptr;
+ } else if (fio->buffer) {
+ av_free(fio->buffer);
+ fio->buffer = nullptr;
+ }
+
+ if (fio->fd >= 0) {
+ close(fio->fd);
+ fio->fd = -1;
+ }
+
+ delete fio;
+}
+
+static int even_int(int value) {
+ if (value < 2) return 2;
+ return value & ~1;
+}
+
+static int normalize_rotation_degrees(double rotation) {
+ if (std::isnan(rotation) || std::isinf(rotation)) {
+ return 0;
+ }
+
+ int r = static_cast(std::llround(rotation));
+ r %= 360;
+ if (r < 0) r += 360;
+
+ // Snap ke kelipatan 90 supaya aman.
+ if (r >= 315 || r < 45) return 0;
+ if (r >= 45 && r < 135) return 90;
+ if (r >= 135 && r < 225) return 180;
+ return 270;
+}
+
+
+
+
+static void compute_oriented_output_size(int src_w,
+ int src_h,
+ int rotation_degrees,
+ int target_short_side,
+ int *out_w,
+ int *out_h,
+ int *convert_w,
+ int *convert_h) {
+ int display_w = src_w;
+ int display_h = src_h;
+
+ if (rotation_degrees == 90 || rotation_degrees == 270) {
+ display_w = src_h;
+ display_h = src_w;
+ }
+
+ const int display_short = std::min(display_w, display_h);
+
+ double scale = 1.0;
+ if (target_short_side > 0 && target_short_side < display_short) {
+ scale = static_cast(target_short_side) /
+ static_cast(display_short);
+ }
+
+ int final_w = even_int(static_cast(std::llround(static_cast(display_w) * scale)));
+ int final_h = even_int(static_cast(std::llround(static_cast(display_h) * scale)));
+
+ if (rotation_degrees == 90 || rotation_degrees == 270) {
+ // Frame decoded masih dalam coded orientation landscape.
+ // Kita scale dulu dalam orientasi coded, lalu rotate fisik menjadi portrait.
+ *convert_w = final_h;
+ *convert_h = final_w;
+ } else {
+ *convert_w = final_w;
+ *convert_h = final_h;
+ }
+
+ *out_w = final_w;
+ *out_h = final_h;
+}
+
+static void copy_plane_8bit(const uint8_t *src,
+ int src_stride,
+ uint8_t *dst,
+ int dst_stride,
+ int width,
+ int height) {
+ for (int y = 0; y < height; ++y) {
+ memcpy(dst + y * dst_stride, src + y * src_stride, static_cast(width));
+ }
+}
+
+static void rotate_plane_180_8bit(const uint8_t *src,
+ int src_stride,
+ uint8_t *dst,
+ int dst_stride,
+ int width,
+ int height) {
+ for (int y = 0; y < height; ++y) {
+ const uint8_t *src_row = src + y * src_stride;
+ uint8_t *dst_row = dst + (height - 1 - y) * dst_stride;
+
+ for (int x = 0; x < width; ++x) {
+ dst_row[width - 1 - x] = src_row[x];
+ }
+ }
+}
+
+static void rotate_plane_90_cw_8bit(const uint8_t *src,
+ int src_stride,
+ uint8_t *dst,
+ int dst_stride,
+ int src_w,
+ int src_h) {
+ // Destinasi: width=src_h, height=src_w.
+ for (int y = 0; y < src_h; ++y) {
+ const uint8_t *src_row = src + y * src_stride;
+
+ for (int x = 0; x < src_w; ++x) {
+ const int dst_x = src_h - 1 - y;
+ const int dst_y = x;
+ dst[dst_y * dst_stride + dst_x] = src_row[x];
+ }
+ }
+}
+
+static void rotate_plane_90_ccw_8bit(const uint8_t *src,
+ int src_stride,
+ uint8_t *dst,
+ int dst_stride,
+ int src_w,
+ int src_h) {
+ // Destinasi: width=src_h, height=src_w.
+ for (int y = 0; y < src_h; ++y) {
+ const uint8_t *src_row = src + y * src_stride;
+
+ for (int x = 0; x < src_w; ++x) {
+ const int dst_x = y;
+ const int dst_y = src_w - 1 - x;
+ dst[dst_y * dst_stride + dst_x] = src_row[x];
+ }
+ }
+}
+
+static int transform_yuv420p_for_output(AVFrame *src, AVFrame *dst, int rotation_degrees) {
+ if (!src || !dst) {
+ return AVERROR(EINVAL);
+ }
+
+ int ret = av_frame_make_writable(dst);
+ if (ret < 0) {
+ return ret;
+ }
+
+ const int src_w = src->width;
+ const int src_h = src->height;
+
+ const int src_cw = src_w / 2;
+ const int src_ch = src_h / 2;
+
+ if (rotation_degrees == 90) {
+ rotate_plane_90_cw_8bit(src->data[0], src->linesize[0],
+ dst->data[0], dst->linesize[0],
+ src_w, src_h);
+
+ rotate_plane_90_cw_8bit(src->data[1], src->linesize[1],
+ dst->data[1], dst->linesize[1],
+ src_cw, src_ch);
+
+ rotate_plane_90_cw_8bit(src->data[2], src->linesize[2],
+ dst->data[2], dst->linesize[2],
+ src_cw, src_ch);
+ } else if (rotation_degrees == 270) {
+ rotate_plane_90_ccw_8bit(src->data[0], src->linesize[0],
+ dst->data[0], dst->linesize[0],
+ src_w, src_h);
+
+ rotate_plane_90_ccw_8bit(src->data[1], src->linesize[1],
+ dst->data[1], dst->linesize[1],
+ src_cw, src_ch);
+
+ rotate_plane_90_ccw_8bit(src->data[2], src->linesize[2],
+ dst->data[2], dst->linesize[2],
+ src_cw, src_ch);
+ } else if (rotation_degrees == 180) {
+ rotate_plane_180_8bit(src->data[0], src->linesize[0],
+ dst->data[0], dst->linesize[0],
+ src_w, src_h);
+
+ rotate_plane_180_8bit(src->data[1], src->linesize[1],
+ dst->data[1], dst->linesize[1],
+ src_cw, src_ch);
+
+ rotate_plane_180_8bit(src->data[2], src->linesize[2],
+ dst->data[2], dst->linesize[2],
+ src_cw, src_ch);
+ } else {
+ copy_plane_8bit(src->data[0], src->linesize[0],
+ dst->data[0], dst->linesize[0],
+ src_w, src_h);
+
+ copy_plane_8bit(src->data[1], src->linesize[1],
+ dst->data[1], dst->linesize[1],
+ src_cw, src_ch);
+
+ copy_plane_8bit(src->data[2], src->linesize[2],
+ dst->data[2], dst->linesize[2],
+ src_cw, src_ch);
+ }
+
+ return 0;
+}
+
+static void emit_video_progress(JNIEnv *env,
+ jobject callback,
+ AVFormatContext *fmt_ctx,
+ AVStream *video_stream,
+ AVFrame *frame,
+ int &last_percent) {
+ if (!env || !callback || !fmt_ctx || !video_stream || !frame) {
+ return;
+ }
+
+ if (fmt_ctx->duration <= 0) {
+ return;
+ }
+
+ int64_t ts = frame->best_effort_timestamp;
+ if (ts == AV_NOPTS_VALUE) {
+ ts = frame->pts;
+ }
+
+ if (ts == AV_NOPTS_VALUE) {
+ return;
+ }
+
+ int64_t current_us = av_rescale_q(
+ ts,
+ video_stream->time_base,
+ AVRational{1, AV_TIME_BASE}
+ );
+
+ int percent = static_cast((current_us * 100) / fmt_ctx->duration);
+
+ if (percent < 3) percent = 3;
+ if (percent > 99) percent = 99;
+
+ // Monotonic: jangan pernah mundur. Ini menghindari glitch 45% lalu balik 20%.
+ if (percent > last_percent) {
+ last_percent = percent;
+ callback_progress(env, callback, percent, "Memproses video...");
+ }
+}
+
+static AVRational choose_fps(AVStream *stream, AVCodecContext *dec_ctx) {
+ if (stream && stream->avg_frame_rate.num > 0 && stream->avg_frame_rate.den > 0) {
+ return stream->avg_frame_rate;
+ }
+
+ if (stream && stream->r_frame_rate.num > 0 && stream->r_frame_rate.den > 0) {
+ return stream->r_frame_rate;
+ }
+
+ if (dec_ctx && dec_ctx->framerate.num > 0 && dec_ctx->framerate.den > 0) {
+ return dec_ctx->framerate;
+ }
+
+ return AVRational{30, 1};
+}
+
+static bool is_audio_copy_supported_in_mp4(enum AVCodecID codec_id) {
+ return codec_id == AV_CODEC_ID_AAC ||
+ codec_id == AV_CODEC_ID_MP3 ||
+ codec_id == AV_CODEC_ID_ALAC;
+}
+
+
+static void get_audio_ch_layout_compat(AVChannelLayout *dst, AVCodecContext *ctx) {
+ if (!dst) return;
+
+ memset(dst, 0, sizeof(AVChannelLayout));
+
+ if (ctx && ctx->ch_layout.nb_channels > 0) {
+ if (av_channel_layout_copy(dst, &ctx->ch_layout) >= 0) {
+ return;
+ }
+ }
+
+ av_channel_layout_default(dst, 2);
+}
+
+static int get_audio_channel_count_compat(AVCodecContext *ctx) {
+ if (ctx && ctx->ch_layout.nb_channels > 0) {
+ return ctx->ch_layout.nb_channels;
+ }
+
+ return 2;
+}
+
+static enum AVSampleFormat choose_audio_sample_fmt(const AVCodec *encoder) {
+ if (!encoder || !encoder->sample_fmts) {
+ return AV_SAMPLE_FMT_FLTP;
+ }
+
+ for (const enum AVSampleFormat *p = encoder->sample_fmts; *p != AV_SAMPLE_FMT_NONE; ++p) {
+ if (*p == AV_SAMPLE_FMT_FLTP) {
+ return *p;
+ }
+ }
+
+ return encoder->sample_fmts[0];
+}
+
+static int encode_audio_and_write(AVCodecContext *audio_enc_ctx,
+ AVFormatContext *out_fmt_ctx,
+ AVStream *out_audio_stream,
+ AVFrame *frame) {
+ if (is_cancel_requested()) {
+ return AVERROR_EXIT;
+ }
+
+ int ret = avcodec_send_frame(audio_enc_ctx, frame);
+ if (ret < 0) {
+ LOGE("avcodec_send_frame audio failed: %s", av_err_to_string(ret).c_str());
+ return ret;
+ }
+
+ while (true) {
+ if (is_cancel_requested()) {
+ return AVERROR_EXIT;
+ }
+
+ AVPacket *enc_pkt = av_packet_alloc();
+ if (!enc_pkt) {
+ return AVERROR(ENOMEM);
+ }
+
+ ret = avcodec_receive_packet(audio_enc_ctx, enc_pkt);
+ if (ret == AVERROR(EAGAIN) || ret == AVERROR_EOF) {
+ av_packet_free(&enc_pkt);
+ return 0;
+ }
+
+ if (ret < 0) {
+ LOGE("avcodec_receive_packet audio failed: %s", av_err_to_string(ret).c_str());
+ av_packet_free(&enc_pkt);
+ return ret;
+ }
+
+ av_packet_rescale_ts(enc_pkt, audio_enc_ctx->time_base, out_audio_stream->time_base);
+ enc_pkt->stream_index = out_audio_stream->index;
+ enc_pkt->pos = -1;
+
+ ret = av_interleaved_write_frame(out_fmt_ctx, enc_pkt);
+ av_packet_free(&enc_pkt);
+
+ if (ret < 0) {
+ LOGE("av_interleaved_write_frame audio failed: %s", av_err_to_string(ret).c_str());
+ return ret;
+ }
+ }
+}
+
+static int resample_encode_audio_frame(SwrContext *swr_ctx,
+ AVCodecContext *audio_dec_ctx,
+ AVCodecContext *audio_enc_ctx,
+ AVFormatContext *out_fmt_ctx,
+ AVStream *out_audio_stream,
+ AVFrame *decoded,
+ int64_t *next_pts) {
+ if (!swr_ctx || !audio_dec_ctx || !audio_enc_ctx || !out_fmt_ctx || !out_audio_stream || !decoded || !next_pts) {
+ return AVERROR(EINVAL);
+ }
+
+ int out_samples = static_cast(av_rescale_rnd(
+ swr_get_delay(swr_ctx, audio_dec_ctx->sample_rate) + decoded->nb_samples,
+ audio_enc_ctx->sample_rate,
+ audio_dec_ctx->sample_rate,
+ AV_ROUND_UP
+ ));
+
+ if (out_samples <= 0) {
+ out_samples = decoded->nb_samples;
+ }
+
+ AVFrame *converted = av_frame_alloc();
+ if (!converted) {
+ return AVERROR(ENOMEM);
+ }
+
+ converted->format = audio_enc_ctx->sample_fmt;
+ converted->sample_rate = audio_enc_ctx->sample_rate;
+ av_channel_layout_copy(&converted->ch_layout, &audio_enc_ctx->ch_layout);
+ converted->nb_samples = out_samples;
+
+ int ret = av_frame_get_buffer(converted, 0);
+ if (ret < 0) {
+ av_frame_free(&converted);
+ return ret;
+ }
+
+ ret = swr_convert(
+ swr_ctx,
+ converted->data,
+ out_samples,
+ const_cast(decoded->data),
+ decoded->nb_samples
+ );
+
+ if (ret < 0) {
+ LOGE("swr_convert failed: %s", av_err_to_string(ret).c_str());
+ av_frame_free(&converted);
+ return ret;
+ }
+
+ converted->nb_samples = ret;
+ converted->pts = *next_pts;
+ *next_pts += converted->nb_samples;
+
+ ret = encode_audio_and_write(audio_enc_ctx, out_fmt_ctx, out_audio_stream, converted);
+ av_frame_free(&converted);
+ return ret;
+}
+
+static int encode_and_write(AVCodecContext *enc_ctx,
+ AVFormatContext *out_fmt_ctx,
+ AVStream *out_video_stream,
+ AVFrame *frame) {
+ if (is_cancel_requested()) {
+ return AVERROR_EXIT;
+ }
+
+ int ret = avcodec_send_frame(enc_ctx, frame);
+ if (ret < 0) {
+ LOGE("avcodec_send_frame failed: %s", av_err_to_string(ret).c_str());
+ return ret;
+ }
+
+ while (true) {
+ if (is_cancel_requested()) {
+ return AVERROR_EXIT;
+ }
+
+ AVPacket *enc_pkt = av_packet_alloc();
+ if (!enc_pkt) {
+ return AVERROR(ENOMEM);
+ }
+
+ ret = avcodec_receive_packet(enc_ctx, enc_pkt);
+ if (ret == AVERROR(EAGAIN) || ret == AVERROR_EOF) {
+ av_packet_free(&enc_pkt);
+ return 0;
+ }
+
+ if (ret < 0) {
+ LOGE("avcodec_receive_packet failed: %s", av_err_to_string(ret).c_str());
+ av_packet_free(&enc_pkt);
+ return ret;
+ }
+
+ av_packet_rescale_ts(enc_pkt, enc_ctx->time_base, out_video_stream->time_base);
+ enc_pkt->stream_index = out_video_stream->index;
+ enc_pkt->pos = -1;
+
+ ret = av_interleaved_write_frame(out_fmt_ctx, enc_pkt);
+ av_packet_free(&enc_pkt);
+
+ if (ret < 0) {
+ LOGE("av_interleaved_write_frame video failed: %s", av_err_to_string(ret).c_str());
+ return ret;
+ }
+ }
+}
+
+int compress_video_fd_impl(JNIEnv *env,
+ int input_fd,
+ int output_fd,
+ int target_short_side,
+ int input_rotation_degrees,
+ int crf,
+ const std::string &encoder_name,
+ const std::string &preset,
+ const std::string &audio_mode,
+ int audio_bitrate,
+ jobject callback) {
+ FdAvio *input_io = nullptr;
+ FdAvio *output_io = nullptr;
+
+ AVFormatContext *in_fmt_ctx = nullptr;
+ AVFormatContext *out_fmt_ctx = nullptr;
+ AVCodecContext *dec_ctx = nullptr;
+ AVCodecContext *enc_ctx = nullptr;
+ AVCodecContext *audio_dec_ctx = nullptr;
+ AVCodecContext *audio_enc_ctx = nullptr;
+ SwrContext *swr_ctx = nullptr;
+ SwsContext *sws_ctx = nullptr;
+
+ AVFrame *decoded_frame = nullptr;
+ AVFrame *converted_frame = nullptr;
+ AVFrame *scaled_frame = nullptr;
+ AVFrame *audio_decoded_frame = nullptr;
+ AVPacket *pkt = nullptr;
+
+ std::vector stream_mapping;
+ AVStream *in_video_stream = nullptr;
+ AVStream *out_video_stream = nullptr;
+ AVStream *in_audio_stream = nullptr;
+ AVStream *out_audio_stream = nullptr;
+
+ int video_stream_index = -1;
+ int audio_stream_index = -1;
+ int ret = 0;
+ int last_percent = 2;
+ int64_t frame_index = 0;
+ int rotation_degrees = 0;
+ int convert_w = 0;
+ int convert_h = 0;
+ int64_t audio_next_pts = 0;
+ bool audio_transcode_aac = audio_mode == "aac";
+ bool audio_copy_original = audio_mode == "copy";
+ bool audio_mute = audio_mode == "mute";
+
+ callback_progress(env, callback, 0, "Open input");
+
+ if (is_cancel_requested()) {
+ ret = AVERROR_EXIT;
+ goto cleanup;
+ }
+
+ input_io = create_fd_avio(input_fd, false);
+ if (!input_io) {
+ ret = AVERROR(errno ? errno : EIO);
+ LOGE("create_fd_avio input failed: %s", av_err_to_string(ret).c_str());
+ goto cleanup;
+ }
+
+ in_fmt_ctx = avformat_alloc_context();
+ if (!in_fmt_ctx) {
+ ret = AVERROR(ENOMEM);
+ goto cleanup;
+ }
+
+ in_fmt_ctx->pb = input_io->ctx;
+ in_fmt_ctx->flags |= AVFMT_FLAG_CUSTOM_IO;
+
+ ret = avformat_open_input(&in_fmt_ctx, "input_from_fd", nullptr, nullptr);
+ if (ret < 0) {
+ LOGE("avformat_open_input failed: %s", av_err_to_string(ret).c_str());
+ goto cleanup;
+ }
+
+ ret = avformat_find_stream_info(in_fmt_ctx, nullptr);
+ if (ret < 0) {
+ LOGE("avformat_find_stream_info failed: %s", av_err_to_string(ret).c_str());
+ goto cleanup;
+ }
+
+ ret = av_find_best_stream(in_fmt_ctx, AVMEDIA_TYPE_VIDEO, -1, -1, nullptr, 0);
+ if (ret < 0) {
+ LOGE("No video stream found: %s", av_err_to_string(ret).c_str());
+ goto cleanup;
+ }
+
+ video_stream_index = ret;
+ in_video_stream = in_fmt_ctx->streams[video_stream_index];
+
+ {
+ const AVCodec *decoder = avcodec_find_decoder(in_video_stream->codecpar->codec_id);
+ if (!decoder) {
+ ret = AVERROR_DECODER_NOT_FOUND;
+ LOGE("Decoder not found for codec id: %d", in_video_stream->codecpar->codec_id);
+ goto cleanup;
+ }
+
+ dec_ctx = avcodec_alloc_context3(decoder);
+ if (!dec_ctx) {
+ ret = AVERROR(ENOMEM);
+ goto cleanup;
+ }
+
+ ret = avcodec_parameters_to_context(dec_ctx, in_video_stream->codecpar);
+ if (ret < 0) {
+ LOGE("avcodec_parameters_to_context failed: %s", av_err_to_string(ret).c_str());
+ goto cleanup;
+ }
+
+ ret = avcodec_open2(dec_ctx, decoder, nullptr);
+ if (ret < 0) {
+ LOGE("avcodec_open2 decoder failed: %s", av_err_to_string(ret).c_str());
+ goto cleanup;
+ }
+ }
+
+ callback_progress(env, callback, 2, "Prepare output");
+
+ ret = avformat_alloc_output_context2(&out_fmt_ctx, nullptr, "mp4", nullptr);
+ if (ret < 0 || !out_fmt_ctx) {
+ LOGE("avformat_alloc_output_context2 failed: %s", av_err_to_string(ret).c_str());
+ goto cleanup;
+ }
+
+ output_io = create_fd_avio(output_fd, true);
+ if (!output_io) {
+ ret = AVERROR(errno ? errno : EIO);
+ LOGE("create_fd_avio output failed: %s", av_err_to_string(ret).c_str());
+ goto cleanup;
+ }
+
+ out_fmt_ctx->pb = output_io->ctx;
+ out_fmt_ctx->flags |= AVFMT_FLAG_CUSTOM_IO;
+
+ stream_mapping.assign(in_fmt_ctx->nb_streams, -1);
+
+ {
+ const AVCodec *encoder = avcodec_find_encoder_by_name(encoder_name.c_str());
+ if (!encoder) {
+ ret = AVERROR_ENCODER_NOT_FOUND;
+ LOGE("Encoder not found: %s", encoder_name.c_str());
+ goto cleanup;
+ }
+
+ out_video_stream = avformat_new_stream(out_fmt_ctx, nullptr);
+ if (!out_video_stream) {
+ ret = AVERROR(ENOMEM);
+ goto cleanup;
+ }
+
+ enc_ctx = avcodec_alloc_context3(encoder);
+ if (!enc_ctx) {
+ ret = AVERROR(ENOMEM);
+ goto cleanup;
+ }
+
+ int src_w = dec_ctx->width;
+ int src_h = dec_ctx->height;
+
+ if (src_w <= 0 || src_h <= 0) {
+ ret = AVERROR(EINVAL);
+ LOGE("Invalid source size: %dx%d", src_w, src_h);
+ goto cleanup;
+ }
+
+ rotation_degrees = normalize_rotation_degrees(static_cast(input_rotation_degrees));
+
+ int dst_w = 0;
+ int dst_h = 0;
+
+ compute_oriented_output_size(
+ src_w,
+ src_h,
+ rotation_degrees,
+ target_short_side,
+ &dst_w,
+ &dst_h,
+ &convert_w,
+ &convert_h
+ );
+
+ LOGD("Input coded=%dx%d rotation=%d target_short=%d convert=%dx%d output physical=%dx%d",
+ src_w,
+ src_h,
+ rotation_degrees,
+ target_short_side,
+ convert_w,
+ convert_h,
+ dst_w,
+ dst_h);
+
+ AVRational fps = choose_fps(in_video_stream, dec_ctx);
+ AVRational time_base = av_inv_q(fps);
+
+ enc_ctx->codec_id = encoder->id;
+ enc_ctx->codec_type = AVMEDIA_TYPE_VIDEO;
+ enc_ctx->width = dst_w;
+ enc_ctx->height = dst_h;
+ enc_ctx->pix_fmt = AV_PIX_FMT_YUV420P;
+ enc_ctx->time_base = time_base;
+ enc_ctx->framerate = fps;
+ enc_ctx->gop_size = 60;
+ enc_ctx->max_b_frames = 2;
+ enc_ctx->bit_rate = 0;
+
+ if (in_video_stream->sample_aspect_ratio.num > 0 &&
+ in_video_stream->sample_aspect_ratio.den > 0) {
+ enc_ctx->sample_aspect_ratio = in_video_stream->sample_aspect_ratio;
+ }
+
+ if (out_fmt_ctx->oformat->flags & AVFMT_GLOBALHEADER) {
+ enc_ctx->flags |= AV_CODEC_FLAG_GLOBAL_HEADER;
+ }
+
+ std::string crf_str = std::to_string(crf);
+
+ if (enc_ctx->priv_data) {
+ av_opt_set(enc_ctx->priv_data, "preset", preset.c_str(), 0);
+ av_opt_set(enc_ctx->priv_data, "crf", crf_str.c_str(), 0);
+
+ if (encoder_name == "libx265") {
+ av_opt_set(enc_ctx->priv_data, "x265-params", "log-level=error", 0);
+ }
+ }
+
+ ret = avcodec_open2(enc_ctx, encoder, nullptr);
+ if (ret < 0) {
+ LOGE("avcodec_open2 encoder failed: %s", av_err_to_string(ret).c_str());
+ goto cleanup;
+ }
+
+ ret = avcodec_parameters_from_context(out_video_stream->codecpar, enc_ctx);
+ if (ret < 0) {
+ LOGE("avcodec_parameters_from_context failed: %s", av_err_to_string(ret).c_str());
+ goto cleanup;
+ }
+
+ out_video_stream->time_base = enc_ctx->time_base;
+ stream_mapping[video_stream_index] = out_video_stream->index;
+
+ // Rotasi dibuat fisik berdasarkan rotasi dari Android/Java. Metadata rotate/display matrix tidak disalin.
+
+ sws_ctx = sws_getContext(
+ dec_ctx->width,
+ dec_ctx->height,
+ dec_ctx->pix_fmt,
+ convert_w,
+ convert_h,
+ AV_PIX_FMT_YUV420P,
+ SWS_BICUBIC,
+ nullptr,
+ nullptr,
+ nullptr
+ );
+
+ if (!sws_ctx) {
+ ret = AVERROR(EINVAL);
+ LOGE("sws_getContext failed");
+ goto cleanup;
+ }
+ }
+
+ if (audio_mute) {
+ LOGD("Audio mode: mute");
+ } else if (audio_transcode_aac) {
+ for (unsigned int i = 0; i < in_fmt_ctx->nb_streams; ++i) {
+ if (static_cast(i) == video_stream_index) continue;
+
+ AVStream *candidate = in_fmt_ctx->streams[i];
+ if (!candidate || !candidate->codecpar) continue;
+ if (candidate->codecpar->codec_type != AVMEDIA_TYPE_AUDIO) continue;
+
+ audio_stream_index = static_cast(i);
+ in_audio_stream = candidate;
+ break;
+ }
+
+ if (in_audio_stream) {
+ const AVCodec *audio_decoder = avcodec_find_decoder(in_audio_stream->codecpar->codec_id);
+ const AVCodec *audio_encoder = avcodec_find_encoder(AV_CODEC_ID_AAC);
+
+ if (!audio_decoder || !audio_encoder) {
+ LOGD("AAC transcode unavailable, audio will be skipped");
+ audio_stream_index = -1;
+ in_audio_stream = nullptr;
+ } else {
+ audio_dec_ctx = avcodec_alloc_context3(audio_decoder);
+ audio_enc_ctx = avcodec_alloc_context3(audio_encoder);
+
+ if (!audio_dec_ctx || !audio_enc_ctx) {
+ ret = AVERROR(ENOMEM);
+ goto cleanup;
+ }
+
+ ret = avcodec_parameters_to_context(audio_dec_ctx, in_audio_stream->codecpar);
+ if (ret < 0) {
+ LOGE("audio avcodec_parameters_to_context failed: %s", av_err_to_string(ret).c_str());
+ goto cleanup;
+ }
+
+ ret = avcodec_open2(audio_dec_ctx, audio_decoder, nullptr);
+ if (ret < 0) {
+ LOGE("audio decoder open failed: %s", av_err_to_string(ret).c_str());
+ goto cleanup;
+ }
+
+ out_audio_stream = avformat_new_stream(out_fmt_ctx, nullptr);
+ if (!out_audio_stream) {
+ ret = AVERROR(ENOMEM);
+ goto cleanup;
+ }
+
+ audio_enc_ctx->codec_id = AV_CODEC_ID_AAC;
+ audio_enc_ctx->codec_type = AVMEDIA_TYPE_AUDIO;
+ audio_enc_ctx->sample_rate = audio_dec_ctx->sample_rate > 0 ? audio_dec_ctx->sample_rate : 44100;
+ get_audio_ch_layout_compat(&audio_enc_ctx->ch_layout, audio_dec_ctx);
+ audio_enc_ctx->sample_fmt = choose_audio_sample_fmt(audio_encoder);
+ audio_enc_ctx->bit_rate = audio_bitrate > 0 ? audio_bitrate : 128000;
+ audio_enc_ctx->time_base = AVRational{1, audio_enc_ctx->sample_rate};
+
+ if (out_fmt_ctx->oformat->flags & AVFMT_GLOBALHEADER) {
+ audio_enc_ctx->flags |= AV_CODEC_FLAG_GLOBAL_HEADER;
+ }
+
+ ret = avcodec_open2(audio_enc_ctx, audio_encoder, nullptr);
+ if (ret < 0) {
+ LOGE("audio encoder open failed: %s", av_err_to_string(ret).c_str());
+ goto cleanup;
+ }
+
+ ret = avcodec_parameters_from_context(out_audio_stream->codecpar, audio_enc_ctx);
+ if (ret < 0) {
+ LOGE("audio avcodec_parameters_from_context failed: %s", av_err_to_string(ret).c_str());
+ goto cleanup;
+ }
+
+ out_audio_stream->time_base = audio_enc_ctx->time_base;
+ stream_mapping[audio_stream_index] = out_audio_stream->index;
+
+ AVChannelLayout input_audio_layout;
+ get_audio_ch_layout_compat(&input_audio_layout, audio_dec_ctx);
+
+ ret = swr_alloc_set_opts2(
+ &swr_ctx,
+ &audio_enc_ctx->ch_layout,
+ audio_enc_ctx->sample_fmt,
+ audio_enc_ctx->sample_rate,
+ &input_audio_layout,
+ audio_dec_ctx->sample_fmt,
+ audio_dec_ctx->sample_rate > 0 ? audio_dec_ctx->sample_rate : audio_enc_ctx->sample_rate,
+ 0,
+ nullptr
+ );
+
+ av_channel_layout_uninit(&input_audio_layout);
+
+ if (ret < 0 || !swr_ctx) {
+ if (ret >= 0) ret = AVERROR(ENOMEM);
+ LOGE("swr_alloc_set_opts2 failed: %s", av_err_to_string(ret).c_str());
+ goto cleanup;
+ }
+
+ ret = swr_init(swr_ctx);
+ if (ret < 0) {
+ LOGE("swr_init failed: %s", av_err_to_string(ret).c_str());
+ goto cleanup;
+ }
+ }
+ }
+ } else if (audio_copy_original) {
+ // Copy audio stream yang aman untuk MP4. Audio selain AAC/MP3/ALAC dilewati.
+ for (unsigned int i = 0; i < in_fmt_ctx->nb_streams; ++i) {
+ if (static_cast(i) == video_stream_index) continue;
+
+ AVStream *in_stream = in_fmt_ctx->streams[i];
+ if (!in_stream || !in_stream->codecpar) continue;
+
+ if (in_stream->codecpar->codec_type != AVMEDIA_TYPE_AUDIO) continue;
+
+ if (!is_audio_copy_supported_in_mp4(in_stream->codecpar->codec_id)) {
+ LOGD("Skip unsupported audio codec for MP4: %d", in_stream->codecpar->codec_id);
+ continue;
+ }
+
+ AVStream *out_stream = avformat_new_stream(out_fmt_ctx, nullptr);
+ if (!out_stream) {
+ ret = AVERROR(ENOMEM);
+ goto cleanup;
+ }
+
+ ret = avcodec_parameters_copy(out_stream->codecpar, in_stream->codecpar);
+ if (ret < 0) {
+ LOGE("avcodec_parameters_copy audio failed: %s", av_err_to_string(ret).c_str());
+ goto cleanup;
+ }
+
+ out_stream->codecpar->codec_tag = 0;
+ out_stream->time_base = in_stream->time_base;
+ stream_mapping[i] = out_stream->index;
+ }
+ }
+
+ ret = avformat_write_header(out_fmt_ctx, nullptr);
+ if (ret < 0) {
+ LOGE("avformat_write_header failed: %s", av_err_to_string(ret).c_str());
+ goto cleanup;
+ }
+
+ decoded_frame = av_frame_alloc();
+ converted_frame = av_frame_alloc();
+ scaled_frame = av_frame_alloc();
+ audio_decoded_frame = av_frame_alloc();
+ pkt = av_packet_alloc();
+
+ if (!decoded_frame || !converted_frame || !scaled_frame || !audio_decoded_frame || !pkt) {
+ ret = AVERROR(ENOMEM);
+ goto cleanup;
+ }
+
+ converted_frame->format = AV_PIX_FMT_YUV420P;
+ converted_frame->width = convert_w;
+ converted_frame->height = convert_h;
+
+ scaled_frame->format = enc_ctx->pix_fmt;
+ scaled_frame->width = enc_ctx->width;
+ scaled_frame->height = enc_ctx->height;
+
+ ret = av_frame_get_buffer(converted_frame, 32);
+ if (ret < 0) {
+ LOGE("av_frame_get_buffer converted failed: %s", av_err_to_string(ret).c_str());
+ goto cleanup;
+ }
+
+ ret = av_frame_get_buffer(scaled_frame, 32);
+ if (ret < 0) {
+ LOGE("av_frame_get_buffer scaled failed: %s", av_err_to_string(ret).c_str());
+ goto cleanup;
+ }
+
+ callback_progress(env, callback, 3, "Start transcode");
+
+ while ((ret = av_read_frame(in_fmt_ctx, pkt)) >= 0) {
+ if (is_cancel_requested()) {
+ av_packet_unref(pkt);
+ ret = AVERROR_EXIT;
+ goto cleanup;
+ }
+ if (pkt->stream_index == video_stream_index) {
+ ret = avcodec_send_packet(dec_ctx, pkt);
+ av_packet_unref(pkt);
+
+ if (ret < 0) {
+ LOGE("avcodec_send_packet failed: %s", av_err_to_string(ret).c_str());
+ goto cleanup;
+ }
+
+ while (true) {
+ if (is_cancel_requested()) {
+ ret = AVERROR_EXIT;
+ goto cleanup;
+ }
+
+ ret = avcodec_receive_frame(dec_ctx, decoded_frame);
+
+ if (ret == AVERROR(EAGAIN) || ret == AVERROR_EOF) {
+ ret = 0;
+ break;
+ }
+
+ if (ret < 0) {
+ LOGE("avcodec_receive_frame failed: %s", av_err_to_string(ret).c_str());
+ goto cleanup;
+ }
+
+ ret = av_frame_make_writable(converted_frame);
+ if (ret < 0) {
+ LOGE("av_frame_make_writable converted failed: %s", av_err_to_string(ret).c_str());
+ av_frame_unref(decoded_frame);
+ goto cleanup;
+ }
+
+ sws_scale(
+ sws_ctx,
+ decoded_frame->data,
+ decoded_frame->linesize,
+ 0,
+ dec_ctx->height,
+ converted_frame->data,
+ converted_frame->linesize
+ );
+
+ ret = transform_yuv420p_for_output(converted_frame, scaled_frame, rotation_degrees);
+ if (ret < 0) {
+ LOGE("transform_yuv420p_for_output failed: %s", av_err_to_string(ret).c_str());
+ av_frame_unref(decoded_frame);
+ goto cleanup;
+ }
+
+ scaled_frame->pts = frame_index++;
+
+ ret = encode_and_write(enc_ctx, out_fmt_ctx, out_video_stream, scaled_frame);
+ if (ret < 0) {
+ av_frame_unref(decoded_frame);
+ goto cleanup;
+ }
+
+ emit_video_progress(env, callback, in_fmt_ctx, in_video_stream, decoded_frame, last_percent);
+ av_frame_unref(decoded_frame);
+ }
+ } else {
+ if (audio_transcode_aac && pkt->stream_index == audio_stream_index && audio_dec_ctx && audio_enc_ctx) {
+ ret = avcodec_send_packet(audio_dec_ctx, pkt);
+ av_packet_unref(pkt);
+
+ if (ret < 0) {
+ LOGE("audio avcodec_send_packet failed: %s", av_err_to_string(ret).c_str());
+ goto cleanup;
+ }
+
+ while (true) {
+ ret = avcodec_receive_frame(audio_dec_ctx, audio_decoded_frame);
+
+ if (ret == AVERROR(EAGAIN) || ret == AVERROR_EOF) {
+ ret = 0;
+ break;
+ }
+
+ if (ret < 0) {
+ LOGE("audio avcodec_receive_frame failed: %s", av_err_to_string(ret).c_str());
+ goto cleanup;
+ }
+
+ ret = resample_encode_audio_frame(
+ swr_ctx,
+ audio_dec_ctx,
+ audio_enc_ctx,
+ out_fmt_ctx,
+ out_audio_stream,
+ audio_decoded_frame,
+ &audio_next_pts
+ );
+
+ av_frame_unref(audio_decoded_frame);
+ if (ret < 0) goto cleanup;
+ }
+ } else {
+ int out_index = -1;
+
+ if (pkt->stream_index >= 0 &&
+ pkt->stream_index < static_cast(stream_mapping.size())) {
+ out_index = stream_mapping[pkt->stream_index];
+ }
+
+ if (out_index >= 0) {
+ AVStream *in_stream = in_fmt_ctx->streams[pkt->stream_index];
+ AVStream *out_stream = out_fmt_ctx->streams[out_index];
+
+ av_packet_rescale_ts(pkt, in_stream->time_base, out_stream->time_base);
+ pkt->stream_index = out_index;
+ pkt->pos = -1;
+
+ ret = av_interleaved_write_frame(out_fmt_ctx, pkt);
+ av_packet_unref(pkt);
+
+ if (ret < 0) {
+ LOGE("audio copy write failed: %s", av_err_to_string(ret).c_str());
+ goto cleanup;
+ }
+ } else {
+ av_packet_unref(pkt);
+ }
+ }
+ }
+
+ }
+
+ if (ret == AVERROR_EOF) {
+ ret = 0;
+ }
+
+ // Flush decoder.
+ ret = avcodec_send_packet(dec_ctx, nullptr);
+ if (ret >= 0) {
+ while (true) {
+ if (is_cancel_requested()) {
+ ret = AVERROR_EXIT;
+ goto cleanup;
+ }
+
+ ret = avcodec_receive_frame(dec_ctx, decoded_frame);
+
+ if (ret == AVERROR_EOF || ret == AVERROR(EAGAIN)) {
+ ret = 0;
+ break;
+ }
+
+ if (ret < 0) {
+ LOGE("flush decoder receive failed: %s", av_err_to_string(ret).c_str());
+ goto cleanup;
+ }
+
+ ret = av_frame_make_writable(converted_frame);
+ if (ret < 0) {
+ av_frame_unref(decoded_frame);
+ goto cleanup;
+ }
+
+ sws_scale(
+ sws_ctx,
+ decoded_frame->data,
+ decoded_frame->linesize,
+ 0,
+ dec_ctx->height,
+ converted_frame->data,
+ converted_frame->linesize
+ );
+
+ ret = transform_yuv420p_for_output(converted_frame, scaled_frame, rotation_degrees);
+ if (ret < 0) {
+ av_frame_unref(decoded_frame);
+ goto cleanup;
+ }
+
+ scaled_frame->pts = frame_index++;
+
+ ret = encode_and_write(enc_ctx, out_fmt_ctx, out_video_stream, scaled_frame);
+ if (ret < 0) {
+ av_frame_unref(decoded_frame);
+ goto cleanup;
+ }
+
+ emit_video_progress(env, callback, in_fmt_ctx, in_video_stream, decoded_frame, last_percent);
+ av_frame_unref(decoded_frame);
+ }
+ } else {
+ LOGD("decoder flush send returned: %s", av_err_to_string(ret).c_str());
+ ret = 0;
+ }
+
+ // Flush audio decoder/encoder jika audio di-transcode ke AAC.
+ if (audio_transcode_aac && audio_dec_ctx && audio_enc_ctx) {
+ ret = avcodec_send_packet(audio_dec_ctx, nullptr);
+ if (ret >= 0) {
+ while (true) {
+ ret = avcodec_receive_frame(audio_dec_ctx, audio_decoded_frame);
+
+ if (ret == AVERROR_EOF || ret == AVERROR(EAGAIN)) {
+ ret = 0;
+ break;
+ }
+
+ if (ret < 0) {
+ LOGE("audio flush receive failed: %s", av_err_to_string(ret).c_str());
+ goto cleanup;
+ }
+
+ ret = resample_encode_audio_frame(
+ swr_ctx,
+ audio_dec_ctx,
+ audio_enc_ctx,
+ out_fmt_ctx,
+ out_audio_stream,
+ audio_decoded_frame,
+ &audio_next_pts
+ );
+
+ av_frame_unref(audio_decoded_frame);
+ if (ret < 0) goto cleanup;
+ }
+ } else {
+ ret = 0;
+ }
+
+ ret = encode_audio_and_write(audio_enc_ctx, out_fmt_ctx, out_audio_stream, nullptr);
+ if (ret < 0) goto cleanup;
+ }
+
+ // Flush encoder.
+ ret = encode_and_write(enc_ctx, out_fmt_ctx, out_video_stream, nullptr);
+ if (ret < 0) goto cleanup;
+
+ ret = av_write_trailer(out_fmt_ctx);
+ if (ret < 0) {
+ LOGE("av_write_trailer failed: %s", av_err_to_string(ret).c_str());
+ goto cleanup;
+ }
+
+ callback_progress(env, callback, 100, "Done");
+
+cleanup:
+ if (ret == AVERROR_EXIT) {
+ LOGD("Native compression canceled");
+ callback_progress(env, callback, 0, "Canceled");
+ } else if (ret < 0) {
+ LOGE("Native error: %s", av_err_to_string(ret).c_str());
+ callback_progress(env, callback, 0, "Native error: " + av_err_to_string(ret));
+ }
+
+ if (pkt) av_packet_free(&pkt);
+ if (decoded_frame) av_frame_free(&decoded_frame);
+ if (converted_frame) av_frame_free(&converted_frame);
+ if (scaled_frame) av_frame_free(&scaled_frame);
+ if (audio_decoded_frame) av_frame_free(&audio_decoded_frame);
+ if (swr_ctx) swr_free(&swr_ctx);
+ if (sws_ctx) sws_freeContext(sws_ctx);
+ if (audio_dec_ctx) avcodec_free_context(&audio_dec_ctx);
+ if (audio_enc_ctx) avcodec_free_context(&audio_enc_ctx);
+ if (dec_ctx) avcodec_free_context(&dec_ctx);
+ if (enc_ctx) avcodec_free_context(&enc_ctx);
+
+ if (out_fmt_ctx) {
+ out_fmt_ctx->pb = nullptr;
+ avformat_free_context(out_fmt_ctx);
+ out_fmt_ctx = nullptr;
+ }
+
+ if (in_fmt_ctx) {
+ in_fmt_ctx->pb = nullptr;
+ avformat_close_input(&in_fmt_ctx);
+ }
+
+ free_fd_avio(output_io);
+ free_fd_avio(input_io);
+
+ return ret < 0 ? ret : 0;
+}
diff --git a/app/src/main/cpp/video_compressor.h b/app/src/main/cpp/video_compressor.h
new file mode 100644
index 0000000..c2e9ca4
--- /dev/null
+++ b/app/src/main/cpp/video_compressor.h
@@ -0,0 +1,16 @@
+#pragma once
+
+#include
+#include
+
+int compress_video_fd_impl(JNIEnv *env,
+ int input_fd,
+ int output_fd,
+ int target_short_side,
+ int input_rotation_degrees,
+ int crf,
+ const std::string &encoder_name,
+ const std::string &preset,
+ const std::string &audio_mode,
+ int audio_bitrate,
+ jobject callback);
diff --git a/app/src/main/java/com/kikyps/kcompressor/MainActivity.java b/app/src/main/java/com/kikyps/kcompressor/MainActivity.java
index 5ed620f..54fe35b 100644
--- a/app/src/main/java/com/kikyps/kcompressor/MainActivity.java
+++ b/app/src/main/java/com/kikyps/kcompressor/MainActivity.java
@@ -6,6 +6,7 @@ import android.content.Intent;
import android.content.SharedPreferences;
import android.content.pm.PackageManager;
import android.database.Cursor;
+import android.graphics.BitmapFactory;
import android.media.MediaMetadataRetriever;
import android.media.MediaExtractor;
import android.media.MediaFormat;
@@ -23,6 +24,7 @@ import android.widget.Spinner;
import android.widget.TextView;
import android.widget.Toast;
+import java.io.InputStream;
import java.util.ArrayList;
import java.util.Locale;
@@ -30,6 +32,10 @@ public class MainActivity extends Activity {
private static final int REQ_PICK_VIDEO = 1001;
private static final int REQ_WRITE_PERMISSION = 1002;
+ private static final int REQ_PICK_IMAGE = 1003;
+
+ static final String JOB_TYPE_VIDEO = "video";
+ static final String JOB_TYPE_IMAGE = "image";
static final String EXTRA_INPUT_URI = "input_uri";
static final String EXTRA_TARGET_SHORT = "target_short";
@@ -42,6 +48,13 @@ public class MainActivity extends Activity {
static final String EXTRA_AUDIO_MODE = "audio_mode";
static final String EXTRA_AUDIO_LABEL = "audio_label";
static final String EXTRA_AUDIO_BITRATE = "audio_bitrate";
+ static final String EXTRA_JOB_TYPE = "job_type";
+ static final String EXTRA_INPUT_MIME = "input_mime";
+ static final String EXTRA_IMAGE_OUTPUT_FORMAT = "image_output_format";
+ static final String EXTRA_IMAGE_FORMAT_LABEL = "image_format_label";
+ static final String EXTRA_IMAGE_QUALITY = "image_quality";
+ static final String EXTRA_IMAGE_QUALITY_LABEL = "image_quality_label";
+ static final String EXTRA_IMAGE_RESOLUTION_LABEL = "image_resolution_label";
private static final String PREF_NAME = "kcompressor_settings";
private static final String KEY_CODEC_INDEX = "codec_index";
@@ -50,13 +63,26 @@ public class MainActivity extends Activity {
private static final String KEY_TARGET_SHORT = "target_short";
private static final String KEY_AUDIO_INDEX = "audio_index";
private static final String KEY_SETTINGS_EXPANDED = "settings_expanded";
+ private static final String KEY_IMAGE_FORMAT_INDEX = "image_format_index";
+ private static final String KEY_IMAGE_TARGET_SHORT = "image_target_short";
+ private static final String KEY_IMAGE_QUALITY = "image_quality";
+ private static final String KEY_IMAGE_SETTINGS_EXPANDED = "image_settings_expanded";
private static final int CRF_MIN = 18;
private static final int CRF_MAX = 40;
private static final int DEFAULT_CRF = 26;
+ private static final int IMAGE_QUALITY_MIN = 40;
+ private static final int IMAGE_QUALITY_MAX = 100;
+ private static final int DEFAULT_IMAGE_QUALITY = 82;
+ private static final int DEFAULT_IMAGE_QUALITY_AVIF = 60;
+ private static final int DEFAULT_IMAGE_QUALITY_LOSSY = 82;
+
private Uri inputUri;
private VideoInfo currentVideoInfo;
+ private Uri imageInputUri;
+ private ImageInfo currentImageInfo;
+ private String pendingPermissionJob = JOB_TYPE_VIDEO;
private TextView txtSelected;
private TextView txtVideoInfo;
@@ -69,16 +95,75 @@ public class MainActivity extends Activity {
private Button btnPick;
private Button btnCompress;
+ private TextView txtImageSelected;
+ private TextView txtImageInfo;
+ private TextView txtImageQualityValue;
+ private TextView txtImageCompressionSummary;
+ private TextView txtImageSettingsToggle;
+ private View layoutImageSettings;
+ private View layoutImageAdvancedSettings;
+ private Button btnPickImage;
+ private Button btnCompressImage;
+
private Spinner spCodec;
private Spinner spResolution;
private Spinner spPreset;
private Spinner spAudio;
private SeekBar seekCrf;
+ private Spinner spImageFormat;
+ private Spinner spImageResolution;
+ private SeekBar seekImageQuality;
+
private SharedPreferences prefs;
private ArrayAdapter resolutionAdapter;
private ArrayAdapter audioAdapter;
+ private ArrayAdapter imageResolutionAdapter;
private boolean settingsExpanded = false;
+ private boolean imageSettingsExpanded = false;
+
+
+ private static final class ImageInfo {
+ int width;
+ int height;
+ int shortSide;
+ int longSide;
+ long fileSizeBytes;
+ String mime;
+ String displayName;
+ }
+
+ private static final class ImageFormatOption {
+ final String label;
+ final String format;
+ final String mime;
+
+ ImageFormatOption(String label, String format, String mime) {
+ this.label = label;
+ this.format = format;
+ this.mime = mime;
+ }
+
+ @Override
+ public String toString() {
+ return label;
+ }
+ }
+
+ private static final class ImageResolutionOption {
+ final String label;
+ final int maxLongSide;
+
+ ImageResolutionOption(String label, int maxLongSide) {
+ this.label = label;
+ this.maxLongSide = maxLongSide;
+ }
+
+ @Override
+ public String toString() {
+ return label;
+ }
+ }
private static final class VideoInfo {
int codedWidth;
@@ -167,19 +252,41 @@ public class MainActivity extends Activity {
btnCompress.setVisibility(View.GONE);
layoutCompressionSettings.setVisibility(View.GONE);
+ txtImageSelected = findViewById(R.id.txtImageSelected);
+ txtImageInfo = findViewById(R.id.txtImageInfo);
+ txtImageQualityValue = findViewById(R.id.txtImageQualityValue);
+ txtImageCompressionSummary = findViewById(R.id.txtImageCompressionSummary);
+ txtImageSettingsToggle = findViewById(R.id.txtImageSettingsToggle);
+ layoutImageSettings = findViewById(R.id.layoutImageSettings);
+ layoutImageAdvancedSettings = findViewById(R.id.layoutImageAdvancedSettings);
+ btnPickImage = findViewById(R.id.btnPickImage);
+ btnCompressImage = findViewById(R.id.btnCompressImage);
+ btnCompressImage.setEnabled(false);
+ btnCompressImage.setVisibility(View.GONE);
+ layoutImageSettings.setVisibility(View.GONE);
+
spCodec = findViewById(R.id.spCodec);
spResolution = findViewById(R.id.spResolution);
spPreset = findViewById(R.id.spPreset);
spAudio = findViewById(R.id.spAudio);
seekCrf = findViewById(R.id.seekCrf);
+ spImageFormat = findViewById(R.id.spImageFormat);
+ spImageResolution = findViewById(R.id.spImageResolution);
+ seekImageQuality = findViewById(R.id.seekImageQuality);
+
setupSpinners();
setupCrfSlider();
+ setupImageSettings();
setSettingsExpanded(false);
+ setImageSettingsExpanded(false);
updateCompressionSummary();
+ updateImageCompressionSummary();
btnPick.setOnClickListener(v -> openVideoPicker());
+ btnPickImage.setOnClickListener(v -> openImagePicker());
txtSettingsToggle.setOnClickListener(v -> setSettingsExpanded(!settingsExpanded));
+ txtImageSettingsToggle.setOnClickListener(v -> setImageSettingsExpanded(!imageSettingsExpanded));
btnCompress.setOnClickListener(v -> {
if (inputUri == null) {
@@ -190,6 +297,7 @@ public class MainActivity extends Activity {
if (Build.VERSION.SDK_INT < 29 &&
checkSelfPermissionCompat(Manifest.permission.WRITE_EXTERNAL_STORAGE)
!= PackageManager.PERMISSION_GRANTED) {
+ pendingPermissionJob = JOB_TYPE_VIDEO;
requestPermissions(new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, REQ_WRITE_PERMISSION);
return;
}
@@ -197,6 +305,23 @@ public class MainActivity extends Activity {
openProcessingActivity();
});
+ btnCompressImage.setOnClickListener(v -> {
+ if (imageInputUri == null) {
+ toast("Pilih gambar dulu");
+ return;
+ }
+
+ if (Build.VERSION.SDK_INT < 29 &&
+ checkSelfPermissionCompat(Manifest.permission.WRITE_EXTERNAL_STORAGE)
+ != PackageManager.PERMISSION_GRANTED) {
+ pendingPermissionJob = JOB_TYPE_IMAGE;
+ requestPermissions(new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, REQ_WRITE_PERMISSION);
+ return;
+ }
+
+ openImageProcessingActivity();
+ });
+
txtProgress.setText("Developed by Kikyps");
}
@@ -302,6 +427,193 @@ public class MainActivity extends Activity {
});
}
+ private void setupImageSettings() {
+ ArrayList imageFormats = new ArrayList<>();
+ imageFormats.add(new ImageFormatOption("JPEG / MozJPEG", "jpeg", "image/jpeg"));
+ imageFormats.add(new ImageFormatOption("PNG Lossless / OxiPNG", "png_lossless", "image/png"));
+ imageFormats.add(new ImageFormatOption("PNG TinyPNG Style", "png_lossy", "image/png"));
+ imageFormats.add(new ImageFormatOption("WebP Lossy", "webp", "image/webp"));
+ imageFormats.add(new ImageFormatOption("WebP Lossless", "webp_lossless", "image/webp"));
+ imageFormats.add(new ImageFormatOption("AVIF", "avif", "image/avif"));
+
+ ArrayAdapter imageFormatAdapter = makeDarkAdapter(imageFormats);
+ imageFormatAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
+ spImageFormat.setAdapter(imageFormatAdapter);
+ spImageFormat.setSelection(clamp(prefs.getInt(KEY_IMAGE_FORMAT_INDEX, 0), 0, imageFormats.size() - 1));
+
+ imageResolutionAdapter = makeDarkAdapter(new ArrayList<>());
+ imageResolutionAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
+ spImageResolution.setAdapter(imageResolutionAdapter);
+ setImageResolutionOptions(null);
+
+ int savedQuality = prefs.getInt(KEY_IMAGE_QUALITY, DEFAULT_IMAGE_QUALITY);
+ savedQuality = clamp(savedQuality, IMAGE_QUALITY_MIN, IMAGE_QUALITY_MAX);
+ seekImageQuality.setMax(IMAGE_QUALITY_MAX - IMAGE_QUALITY_MIN);
+ setImageQualitySlider(savedQuality);
+
+ spImageFormat.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
+ @Override
+ public void onItemSelected(AdapterView> parent, View view, int position, long id) {
+ applyRecommendedQualityForSelectedImageFormat();
+ syncImageAdvancedVisibility();
+ saveImageSettingsOnly();
+ updateImageCompressionSummary();
+ }
+
+ @Override
+ public void onNothingSelected(AdapterView> parent) {}
+ });
+
+ spImageResolution.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
+ @Override
+ public void onItemSelected(AdapterView> parent, View view, int position, long id) {
+ saveImageSettingsOnly();
+ updateImageCompressionSummary();
+ }
+
+ @Override
+ public void onNothingSelected(AdapterView> parent) {}
+ });
+
+ seekImageQuality.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
+ @Override
+ public void onProgressChanged(SeekBar seekBar, int progressValue, boolean fromUser) {
+ updateImageQualityText(IMAGE_QUALITY_MIN + progressValue);
+ }
+
+ @Override
+ public void onStartTrackingTouch(SeekBar seekBar) {}
+
+ @Override
+ public void onStopTrackingTouch(SeekBar seekBar) {
+ saveImageSettingsOnly();
+ updateImageCompressionSummary();
+ }
+ });
+
+ applyRecommendedQualityForSelectedImageFormat();
+ syncImageAdvancedVisibility();
+ updateImageCompressionSummary();
+ }
+
+
+ private void setImageQualitySlider(int quality) {
+ if (seekImageQuality == null) {
+ return;
+ }
+ quality = clamp(quality, IMAGE_QUALITY_MIN, IMAGE_QUALITY_MAX);
+ seekImageQuality.setProgress(quality - IMAGE_QUALITY_MIN);
+ updateImageQualityText(quality);
+ }
+
+ private boolean isImageLosslessFormat(String format) {
+ return "png_lossless".equals(format) || "webp_lossless".equals(format);
+ }
+
+ private boolean selectedImageFormatNeedsQuality() {
+ ImageFormatOption option = getSelectedImageFormat();
+ return option == null || !isImageLosslessFormat(option.format);
+ }
+
+ private int recommendedQualityForImageFormat(String format) {
+ if ("avif".equals(format)) {
+ return DEFAULT_IMAGE_QUALITY_AVIF;
+ }
+ return DEFAULT_IMAGE_QUALITY_LOSSY;
+ }
+
+ private void applyRecommendedQualityForSelectedImageFormat() {
+ ImageFormatOption option = getSelectedImageFormat();
+ if (option == null || isImageLosslessFormat(option.format)) {
+ return;
+ }
+ setImageQualitySlider(recommendedQualityForImageFormat(option.format));
+ }
+
+ private void syncImageAdvancedVisibility() {
+ boolean needsQuality = selectedImageFormatNeedsQuality();
+
+ if (txtImageSettingsToggle != null) {
+ txtImageSettingsToggle.setVisibility(needsQuality ? View.VISIBLE : View.GONE);
+ }
+
+ if (!needsQuality) {
+ imageSettingsExpanded = false;
+ if (layoutImageAdvancedSettings != null) {
+ layoutImageAdvancedSettings.setVisibility(View.GONE);
+ }
+ return;
+ }
+
+ if (layoutImageAdvancedSettings != null) {
+ layoutImageAdvancedSettings.setVisibility(imageSettingsExpanded ? View.VISIBLE : View.GONE);
+ }
+
+ if (txtImageSettingsToggle != null) {
+ txtImageSettingsToggle.setText(imageSettingsExpanded ? "Pengaturan lanjutan ▲" : "Pengaturan lanjutan ▼");
+ }
+ }
+
+ private void updateImageQualityText(int quality) {
+ String hint;
+ if (quality >= 90) {
+ hint = "Kualitas tinggi";
+ } else if (quality >= 75) {
+ hint = "Seimbang";
+ } else {
+ hint = "Ukuran kecil";
+ }
+
+ txtImageQualityValue.setText("Quality " + quality + " • " + hint);
+ updateImageCompressionSummary();
+ }
+
+ private void setImageSettingsExpanded(boolean expanded) {
+ if (!selectedImageFormatNeedsQuality()) {
+ imageSettingsExpanded = false;
+ syncImageAdvancedVisibility();
+ return;
+ }
+
+ imageSettingsExpanded = expanded;
+ syncImageAdvancedVisibility();
+ }
+
+ private void updateImageCompressionSummary() {
+ if (txtImageCompressionSummary == null) {
+ return;
+ }
+
+ String formatLabel = "JPEG / MozJPEG";
+ Object fmtObj = spImageFormat != null ? spImageFormat.getSelectedItem() : null;
+ if (fmtObj instanceof ImageFormatOption) {
+ formatLabel = ((ImageFormatOption) fmtObj).label;
+ }
+
+ String resolutionLabel = "Original";
+ Object resObj = spImageResolution != null ? spImageResolution.getSelectedItem() : null;
+ if (resObj instanceof ImageResolutionOption) {
+ resolutionLabel = ((ImageResolutionOption) resObj).label;
+ }
+
+ ImageFormatOption fmtOption = getSelectedImageFormat();
+ String format = fmtOption != null ? fmtOption.format : "jpeg";
+
+ if (isImageLosslessFormat(format)) {
+ txtImageCompressionSummary.setText(
+ "Output: " + formatLabel + " • " + resolutionLabel + " • Lossless"
+ );
+ return;
+ }
+
+ int quality = seekImageQuality != null ? IMAGE_QUALITY_MIN + seekImageQuality.getProgress() : recommendedQualityForImageFormat(format);
+
+ txtImageCompressionSummary.setText(
+ "Output: " + formatLabel + " • " + resolutionLabel + " • Q" + quality
+ );
+ }
+
+
private void updateCrfText(int crf) {
String hint;
if (crf <= 22) {
@@ -399,6 +711,47 @@ public class MainActivity extends Activity {
spResolution.setSelection(selectedIndex);
}
+ private void setImageResolutionOptions(ImageInfo info) {
+ imageResolutionAdapter.clear();
+
+ if (info == null || info.longSide <= 0) {
+ imageResolutionAdapter.add(new ImageResolutionOption("Original", 0));
+ imageResolutionAdapter.notifyDataSetChanged();
+ spImageResolution.setSelection(0);
+ return;
+ }
+
+ imageResolutionAdapter.add(new ImageResolutionOption("Original (" + info.width + "x" + info.height + ")", 0));
+
+ int[] candidates = new int[]{3840, 2560, 1920, 1600, 1280, 1024, 800, 640};
+
+ for (int candidate : candidates) {
+ if (candidate < info.longSide) {
+ imageResolutionAdapter.add(new ImageResolutionOption(formatImageResolutionName(candidate), candidate));
+ }
+ }
+
+ imageResolutionAdapter.notifyDataSetChanged();
+
+ int savedTarget = prefs.getInt(KEY_IMAGE_TARGET_SHORT, 0);
+ int selectedIndex = 0;
+
+ for (int i = 0; i < imageResolutionAdapter.getCount(); i++) {
+ ImageResolutionOption option = imageResolutionAdapter.getItem(i);
+ if (option != null && option.maxLongSide == savedTarget) {
+ selectedIndex = i;
+ break;
+ }
+ }
+
+ spImageResolution.setSelection(selectedIndex);
+ }
+
+ private String formatImageResolutionName(int maxLongSide) {
+ return "Maks " + maxLongSide + " px";
+ }
+
+
private String formatResolutionName(int shortSide) {
if (shortSide >= 2160) return "4K / 2160p";
if (shortSide >= 1440) return "2K / 1440p";
@@ -429,6 +782,34 @@ public class MainActivity extends Activity {
}
}
+ private void openImagePicker() {
+ Intent intent;
+
+ if (Build.VERSION.SDK_INT >= 33) {
+ intent = new Intent(MediaStore.ACTION_PICK_IMAGES);
+ intent.setType("image/*");
+ } else {
+ intent = new Intent(Intent.ACTION_PICK, MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
+ intent.setType("image/*");
+ }
+
+ String[] supportedMimes = new String[]{
+ "image/jpeg",
+ "image/png",
+ "image/webp",
+ "image/avif"
+ };
+ intent.putExtra(Intent.EXTRA_MIME_TYPES, supportedMimes);
+ intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
+
+ try {
+ startActivityForResult(intent, REQ_PICK_IMAGE);
+ } catch (Exception e) {
+ toast("Media picker gambar tidak tersedia");
+ }
+ }
+
+
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
@@ -456,7 +837,81 @@ public class MainActivity extends Activity {
btnCompress.setVisibility(View.GONE);
btnCompress.setEnabled(false);
}
+ return;
}
+
+ if (requestCode == REQ_PICK_IMAGE) {
+ if (resultCode == RESULT_OK && data != null) {
+ imageInputUri = data.getData();
+
+ if (imageInputUri != null) {
+ currentImageInfo = readImageInfo(imageInputUri);
+ setImageResolutionOptions(currentImageInfo);
+
+ if (!isSupportedImageMime(currentImageInfo.mime)) {
+ toast("Format gambar belum didukung. Gunakan JPEG, PNG, WebP, atau AVIF.");
+ imageInputUri = null;
+ currentImageInfo = null;
+ layoutImageSettings.setVisibility(View.GONE);
+ btnCompressImage.setVisibility(View.GONE);
+ btnCompressImage.setEnabled(false);
+ return;
+ }
+
+ autoSelectRecommendedImageOutput(currentImageInfo.mime);
+
+ txtImageSelected.setText("Gambar dipilih");
+ txtImageInfo.setText(makeImageInfoText(currentImageInfo));
+ layoutImageSettings.setVisibility(View.VISIBLE);
+ btnCompressImage.setVisibility(View.VISIBLE);
+ btnCompressImage.setEnabled(true);
+ } else {
+ layoutImageSettings.setVisibility(View.GONE);
+ btnCompressImage.setVisibility(View.GONE);
+ btnCompressImage.setEnabled(false);
+ }
+ } else if (imageInputUri == null) {
+ layoutImageSettings.setVisibility(View.GONE);
+ btnCompressImage.setVisibility(View.GONE);
+ btnCompressImage.setEnabled(false);
+ }
+ }
+ }
+
+
+ private void autoSelectRecommendedImageOutput(String inputMime) {
+ if (spImageFormat == null || spImageFormat.getAdapter() == null) {
+ return;
+ }
+
+ String recommended = recommendedOutputFormatForInputMime(inputMime);
+ for (int i = 0; i < spImageFormat.getAdapter().getCount(); i++) {
+ Object item = spImageFormat.getAdapter().getItem(i);
+ if (item instanceof ImageFormatOption && recommended.equals(((ImageFormatOption) item).format)) {
+ spImageFormat.setSelection(i);
+ applyRecommendedQualityForSelectedImageFormat();
+ syncImageAdvancedVisibility();
+ updateImageCompressionSummary();
+ return;
+ }
+ }
+ }
+
+ private String recommendedOutputFormatForInputMime(String inputMime) {
+ String mime = normalizeImageMime(inputMime);
+ if ("image/jpeg".equals(mime)) {
+ return "jpeg";
+ }
+ if ("image/png".equals(mime)) {
+ return "png_lossy";
+ }
+ if ("image/webp".equals(mime)) {
+ return "webp";
+ }
+ if ("image/avif".equals(mime)) {
+ return "avif";
+ }
+ return "webp";
}
private VideoInfo readVideoInfo(Uri uri) {
@@ -572,6 +1027,125 @@ public class MainActivity extends Activity {
return builder.toString();
}
+ private ImageInfo readImageInfo(Uri uri) {
+ ImageInfo info = new ImageInfo();
+ info.mime = normalizeImageMime(safeString(getContentResolver().getType(uri), ""));
+ info.fileSizeBytes = readOriginalFileSize(uri);
+ info.displayName = readDisplayName(uri);
+
+ BitmapFactory.Options options = new BitmapFactory.Options();
+ options.inJustDecodeBounds = true;
+
+ InputStream input = null;
+ try {
+ input = getContentResolver().openInputStream(uri);
+ BitmapFactory.decodeStream(input, null, options);
+ info.width = Math.max(0, options.outWidth);
+ info.height = Math.max(0, options.outHeight);
+
+ if ((info.mime == null || info.mime.length() == 0) && options.outMimeType != null) {
+ info.mime = normalizeImageMime(options.outMimeType);
+ }
+ } catch (Throwable ignored) {
+ info.width = 0;
+ info.height = 0;
+ } finally {
+ if (input != null) {
+ try {
+ input.close();
+ } catch (Throwable ignored) {}
+ }
+ }
+
+ if (info.mime == null || info.mime.length() == 0) {
+ info.mime = mimeFromDisplayName(info.displayName);
+ }
+
+ info.shortSide = Math.min(info.width, info.height);
+ info.longSide = Math.max(info.width, info.height);
+
+ return info;
+ }
+
+ private String makeImageInfoText(ImageInfo info) {
+ if (info == null) {
+ return "Info gambar tidak terbaca";
+ }
+
+ StringBuilder sb = new StringBuilder();
+ sb.append("Resolusi: ");
+ if (info.width > 0 && info.height > 0) {
+ sb.append(info.width).append("x").append(info.height);
+ } else {
+ sb.append("-");
+ }
+
+ sb.append("\nUkuran file: ").append(formatFileSize(info.fileSizeBytes));
+ sb.append("\nFormat: ").append(formatImageMimeName(info.mime));
+
+ if (info.displayName != null && info.displayName.length() > 0) {
+ sb.append("\nNama file: ").append(info.displayName);
+ }
+
+ return sb.toString();
+ }
+
+ private String readDisplayName(Uri uri) {
+ Cursor cursor = null;
+ try {
+ cursor = getContentResolver().query(uri, null, null, null, null);
+ if (cursor != null) {
+ int nameIndex = cursor.getColumnIndex(OpenableColumns.DISPLAY_NAME);
+ if (nameIndex >= 0 && cursor.moveToFirst()) {
+ return safeString(cursor.getString(nameIndex), "");
+ }
+ }
+ } catch (Throwable ignored) {
+ } finally {
+ if (cursor != null) {
+ cursor.close();
+ }
+ }
+
+ return "";
+ }
+
+ private boolean isSupportedImageMime(String mime) {
+ String value = normalizeImageMime(mime);
+ return "image/jpeg".equals(value) ||
+ "image/png".equals(value) ||
+ "image/webp".equals(value) ||
+ "image/avif".equals(value);
+ }
+
+ private String normalizeImageMime(String mime) {
+ if (mime == null) return "";
+ String value = mime.toLowerCase(Locale.US).trim();
+ if ("image/jpg".equals(value)) return "image/jpeg";
+ return value;
+ }
+
+ private String mimeFromDisplayName(String name) {
+ if (name == null) return "";
+
+ String lower = name.toLowerCase(Locale.US);
+ if (lower.endsWith(".jpg") || lower.endsWith(".jpeg")) return "image/jpeg";
+ if (lower.endsWith(".png")) return "image/png";
+ if (lower.endsWith(".webp")) return "image/webp";
+ if (lower.endsWith(".avif")) return "image/avif";
+ return "";
+ }
+
+ private String formatImageMimeName(String mime) {
+ String value = normalizeImageMime(mime);
+ if ("image/jpeg".equals(value)) return "JPEG";
+ if ("image/png".equals(value)) return "PNG";
+ if ("image/webp".equals(value)) return "WebP";
+ if ("image/avif".equals(value)) return "AVIF";
+ return value.length() == 0 ? "-" : value;
+ }
+
+
private void readMediaExtractorInfo(Uri uri, VideoInfo info) {
MediaExtractor extractor = new MediaExtractor();
@@ -754,6 +1328,7 @@ public class MainActivity extends Activity {
saveSettings(targetShortSide, crf);
Intent intent = new Intent(this, ProcessingActivity.class);
+ intent.putExtra(EXTRA_JOB_TYPE, JOB_TYPE_VIDEO);
intent.putExtra(EXTRA_INPUT_URI, inputUri.toString());
intent.putExtra(EXTRA_TARGET_SHORT, targetShortSide);
intent.putExtra(EXTRA_VIDEO_ROTATION, currentVideoInfo != null ? currentVideoInfo.rotation : 0);
@@ -768,6 +1343,63 @@ public class MainActivity extends Activity {
startActivity(intent);
}
+ private void openImageProcessingActivity() {
+ int maxLongSide = getSelectedImageMaxLongSide();
+ int quality = IMAGE_QUALITY_MIN + seekImageQuality.getProgress();
+
+ ImageFormatOption formatOption = getSelectedImageFormat();
+ String outputFormat = formatOption != null ? formatOption.format : "jpeg";
+ String formatLabel = formatOption != null ? formatOption.label : "JPEG / MozJPEG";
+
+ ImageResolutionOption resOption = (ImageResolutionOption) spImageResolution.getSelectedItem();
+ String resolutionLabel = resOption != null ? resOption.label : "Original";
+
+ String qualityLabel = isImageLosslessFormat(outputFormat) ? "Lossless" : "Quality " + quality;
+ saveImageSettings(maxLongSide, quality);
+
+ Intent intent = new Intent(this, ProcessingActivity.class);
+ intent.putExtra(EXTRA_JOB_TYPE, JOB_TYPE_IMAGE);
+ intent.putExtra(EXTRA_INPUT_URI, imageInputUri.toString());
+ intent.putExtra(EXTRA_INPUT_MIME, currentImageInfo != null ? currentImageInfo.mime : "");
+ intent.putExtra(EXTRA_TARGET_SHORT, maxLongSide);
+ intent.putExtra(EXTRA_IMAGE_OUTPUT_FORMAT, outputFormat);
+ intent.putExtra(EXTRA_IMAGE_FORMAT_LABEL, formatLabel);
+ intent.putExtra(EXTRA_IMAGE_RESOLUTION_LABEL, resolutionLabel);
+ intent.putExtra(EXTRA_IMAGE_QUALITY, quality);
+ intent.putExtra(EXTRA_IMAGE_QUALITY_LABEL, qualityLabel);
+ startActivity(intent);
+ }
+
+ private void saveImageSettings(int maxLongSide, int quality) {
+ prefs.edit()
+ .putInt(KEY_IMAGE_FORMAT_INDEX, spImageFormat != null ? spImageFormat.getSelectedItemPosition() : 0)
+ .putInt(KEY_IMAGE_TARGET_SHORT, maxLongSide)
+ .putInt(KEY_IMAGE_QUALITY, quality)
+ .apply();
+ }
+
+ private void saveImageSettingsOnly() {
+ saveImageSettings(getSelectedImageMaxLongSide(),
+ IMAGE_QUALITY_MIN + seekImageQuality.getProgress());
+ }
+
+ private int getSelectedImageMaxLongSide() {
+ Object item = spImageResolution.getSelectedItem();
+ if (item instanceof ImageResolutionOption) {
+ return ((ImageResolutionOption) item).maxLongSide;
+ }
+ return 0;
+ }
+
+ private ImageFormatOption getSelectedImageFormat() {
+ Object item = spImageFormat.getSelectedItem();
+ if (item instanceof ImageFormatOption) {
+ return (ImageFormatOption) item;
+ }
+ return null;
+ }
+
+
private void saveSettings(int targetShortSide, int crf) {
prefs.edit()
.putInt(KEY_CODEC_INDEX, spCodec.getSelectedItemPosition())
@@ -803,7 +1435,11 @@ public class MainActivity extends Activity {
if (requestCode == REQ_WRITE_PERMISSION) {
if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
- openProcessingActivity();
+ if (JOB_TYPE_IMAGE.equals(pendingPermissionJob)) {
+ openImageProcessingActivity();
+ } else {
+ openProcessingActivity();
+ }
} else {
toast("Izin tulis storage ditolak");
}
diff --git a/app/src/main/java/com/kikyps/kcompressor/NativeCompressor.java b/app/src/main/java/com/kikyps/kcompressor/NativeCompressor.java
index c897426..7dc1298 100644
--- a/app/src/main/java/com/kikyps/kcompressor/NativeCompressor.java
+++ b/app/src/main/java/com/kikyps/kcompressor/NativeCompressor.java
@@ -34,5 +34,33 @@ public final class NativeCompressor {
ProgressCallback callback
);
+ /**
+ * outputFormat:
+ * jpeg = MozJPEG/TurboJPEG output .jpg
+ * png_lossless = PNG RGBA + OxiPNG lossless
+ * png_lossy = libimagequant palette PNG + OxiPNG, mirip TinyPNG
+ * webp = WebP lossy
+ * webp_lossless= WebP lossless
+ * avif = AVIF lossy
+ *
+ * quality:
+ * 1..100 untuk JPEG/WebP lossy/AVIF/PNG lossy.
+ * Tidak dipakai untuk PNG lossless dan WebP lossless.
+ *
+ * maxLongSide:
+ * 0 = Original, tidak resize.
+ * >0 = sisi terpanjang gambar maksimal, contoh 1920 berarti output tidak lebih dari 1920 px
+ * di sisi terpanjang dan aspect ratio tetap dipertahankan.
+ */
+ public static native int compressImageFd(
+ int inputFd,
+ int outputFd,
+ String inputMime,
+ String outputFormat,
+ int quality,
+ int maxLongSide,
+ ProgressCallback callback
+ );
+
public static native void cancelCurrentJob();
}
diff --git a/app/src/main/java/com/kikyps/kcompressor/ProcessingActivity.java b/app/src/main/java/com/kikyps/kcompressor/ProcessingActivity.java
index be13fd9..b7aa20f 100644
--- a/app/src/main/java/com/kikyps/kcompressor/ProcessingActivity.java
+++ b/app/src/main/java/com/kikyps/kcompressor/ProcessingActivity.java
@@ -6,7 +6,9 @@ import android.app.AlertDialog;
import android.content.ContentResolver;
import android.content.ContentValues;
import android.content.Intent;
+import android.content.res.AssetFileDescriptor;
import android.content.pm.PackageManager;
+import android.database.Cursor;
import android.media.MediaScannerConnection;
import android.net.Uri;
import android.os.Build;
@@ -16,6 +18,7 @@ import android.os.Handler;
import android.os.Looper;
import android.os.ParcelFileDescriptor;
import android.provider.MediaStore;
+import android.provider.OpenableColumns;
import android.view.MotionEvent;
import android.view.View;
import android.view.Window;
@@ -35,6 +38,7 @@ public class ProcessingActivity extends Activity {
private static final float DIM_BRIGHTNESS = 0.01f;
private CircleProgressView circleProgress;
+ private TextView txtProcessingTitle;
private TextView txtStatus;
private TextView txtElapsed;
private TextView txtConfig;
@@ -50,6 +54,8 @@ public class ProcessingActivity extends Activity {
private Uri inputUri;
private Uri outputUri;
+ private String outputMime = "video/mp4";
+ private boolean imageJob = false;
private int targetShortSide;
private int inputRotationDegrees;
@@ -62,6 +68,13 @@ public class ProcessingActivity extends Activity {
private String audioLabel;
private int audioBitrate;
+ private String inputMime;
+ private String outputFormat;
+ private String imageFormatLabel;
+ private String imageResolutionLabel;
+ private int imageQuality;
+ private String imageQualityLabel;
+
private volatile boolean cancelRequested = false;
private volatile boolean finished = false;
private int lastDisplayedProgress = 0;
@@ -113,13 +126,13 @@ public class ProcessingActivity extends Activity {
Window window = getWindow();
window.addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
-
originalBrightness = window.getAttributes().screenBrightness;
setContentView(R.layout.activity_processing);
handler = new Handler(Looper.getMainLooper());
+ txtProcessingTitle = findViewById(R.id.txtProcessingTitle);
circleProgress = findViewById(R.id.circleProgress);
txtStatus = findViewById(R.id.txtStatus);
txtElapsed = findViewById(R.id.txtElapsed);
@@ -135,9 +148,13 @@ public class ProcessingActivity extends Activity {
readIntentExtras();
updateConfigCard();
+ txtProcessingTitle.setText(imageJob ? "Compressing Image" : "Compressing Video");
+ btnShareVideo.setText(imageJob ? "Share Image" : "Share Video");
+ btnShareDoc.setText("Share Doc");
+
btnCancel.setOnClickListener(v -> showCancelDialog());
- btnShareVideo.setOnClickListener(v -> shareCompressedVideo(false));
- btnShareDoc.setOnClickListener(v -> shareCompressedVideo(true));
+ btnShareVideo.setOnClickListener(v -> shareCompressedFile(false));
+ btnShareDoc.setOnClickListener(v -> shareCompressedFile(true));
restoreBrightness();
scheduleDim();
@@ -151,6 +168,9 @@ public class ProcessingActivity extends Activity {
inputUri = Uri.parse(input);
}
+ String jobType = getIntent().getStringExtra(MainActivity.EXTRA_JOB_TYPE);
+ imageJob = MainActivity.JOB_TYPE_IMAGE.equals(jobType);
+
targetShortSide = getIntent().getIntExtra(MainActivity.EXTRA_TARGET_SHORT, 0);
inputRotationDegrees = getIntent().getIntExtra(MainActivity.EXTRA_VIDEO_ROTATION, 0);
crf = getIntent().getIntExtra(MainActivity.EXTRA_CRF, 26);
@@ -162,15 +182,39 @@ public class ProcessingActivity extends Activity {
audioLabel = getIntent().getStringExtra(MainActivity.EXTRA_AUDIO_LABEL);
audioBitrate = getIntent().getIntExtra(MainActivity.EXTRA_AUDIO_BITRATE, 0);
+ inputMime = getIntent().getStringExtra(MainActivity.EXTRA_INPUT_MIME);
+ outputFormat = getIntent().getStringExtra(MainActivity.EXTRA_IMAGE_OUTPUT_FORMAT);
+ imageFormatLabel = getIntent().getStringExtra(MainActivity.EXTRA_IMAGE_FORMAT_LABEL);
+ imageResolutionLabel = getIntent().getStringExtra(MainActivity.EXTRA_IMAGE_RESOLUTION_LABEL);
+ imageQuality = getIntent().getIntExtra(MainActivity.EXTRA_IMAGE_QUALITY, 82);
+ imageQualityLabel = getIntent().getStringExtra(MainActivity.EXTRA_IMAGE_QUALITY_LABEL);
+
if (encoderName == null) encoderName = "libx264";
if (codecLabel == null) codecLabel = "H.264 / AVC";
if (resolutionLabel == null) resolutionLabel = "Original";
if (preset == null) preset = "medium";
if (audioMode == null) audioMode = "copy";
if (audioLabel == null) audioLabel = "Original / Copy";
+
+ if (inputMime == null) inputMime = "";
+ if (outputFormat == null) outputFormat = "jpeg";
+ if (imageFormatLabel == null) imageFormatLabel = "JPEG / MozJPEG";
+ if (imageResolutionLabel == null) imageResolutionLabel = "Original";
+ if (imageQualityLabel == null) imageQualityLabel = "Quality " + imageQuality;
+ outputMime = imageJob ? mimeForImageFormat(outputFormat) : "video/mp4";
}
private void updateConfigCard() {
+ if (imageJob) {
+ txtConfig.setText(
+ "Format : " + imageFormatLabel + "\n" +
+ "Resolusi : " + imageResolutionLabel + "\n" +
+ "Quality : " + imageQualityLabel + "\n" +
+ "Input MIME : " + (inputMime.length() == 0 ? "-" : inputMime)
+ );
+ return;
+ }
+
txtConfig.setText(
"Codec : " + codecLabel + "\n" +
"Resolusi : " + resolutionLabel + "\n" +
@@ -208,28 +252,48 @@ public class ProcessingActivity extends Activity {
throw new IllegalStateException("Input PFD null");
}
- String outputName = makeOutputName(encoderName, targetShortSide, crf);
- outputPfd = createOutputFile(outputName);
+ final long originalSizeBytes = getUriSize(inputUri);
+
+ String outputName = imageJob
+ ? makeImageOutputName(outputFormat, targetShortSide, imageQuality)
+ : makeVideoOutputName(encoderName, targetShortSide, crf);
+
+ outputPfd = createOutputFile(outputName, outputMime, imageJob);
if (outputPfd == null) {
throw new IllegalStateException("Output PFD null");
}
final Uri finalOutputUri = outputUri;
- int result = NativeCompressor.compressFd(
- inputPfd.getFd(),
- outputPfd.getFd(),
- targetShortSide,
- inputRotationDegrees,
- crf,
- encoderName,
- preset,
- audioMode,
- audioBitrate,
- (percent, message) -> runOnUiThread(() ->
- updateCompressionProgress(percent, message)
- )
- );
+ int result;
+ if (imageJob) {
+ result = NativeCompressor.compressImageFd(
+ inputPfd.getFd(),
+ outputPfd.getFd(),
+ inputMime,
+ outputFormat,
+ imageQuality,
+ targetShortSide,
+ (percent, message) -> runOnUiThread(() ->
+ updateCompressionProgress(percent, message)
+ )
+ );
+ } else {
+ result = NativeCompressor.compressFd(
+ inputPfd.getFd(),
+ outputPfd.getFd(),
+ targetShortSide,
+ inputRotationDegrees,
+ crf,
+ encoderName,
+ preset,
+ audioMode,
+ audioBitrate,
+ (percent, message) -> runOnUiThread(() ->
+ updateCompressionProgress(percent, message)
+ )
+ );
+ }
endTimeMs = System.currentTimeMillis();
@@ -248,7 +312,19 @@ public class ProcessingActivity extends Activity {
}
if (result == 0) {
- publishOutput(finalOutputUri);
+ // Tutup output descriptor lebih dulu agar ukuran file final sudah flush
+ // sebelum dibaca untuk perbandingan original vs compressed.
+ closeQuietly(outputPfd);
+ outputPfd = null;
+
+ publishOutput(finalOutputUri, outputMime, imageJob);
+
+ final long compressedSizeBytes = getUriSize(finalOutputUri);
+ final String outputResultText = buildOutputResultText(
+ originalSizeBytes,
+ compressedSizeBytes
+ );
+
runOnUiThread(() -> {
finished = true;
handler.removeCallbacks(elapsedRunnable);
@@ -258,30 +334,17 @@ public class ProcessingActivity extends Activity {
circleProgress.setProgress(100);
txtStatus.setText("Selesai");
txtElapsed.setText("Total waktu: " + formatElapsed(endTimeMs - startTimeMs));
- txtOutput.setText("Video disimpan di gallery");
+ txtOutput.setText(outputResultText);
btnShareVideo.setVisibility(View.VISIBLE);
btnShareDoc.setVisibility(View.VISIBLE);
btnCancel.setText("Selesai");
btnCancel.setEnabled(true);
btnCancel.setOnClickListener(v -> finish());
- toast("Video disimpan di gallery");
+ toast(imageJob ? "Gambar disimpan di gallery" : "Video disimpan di gallery");
});
} else {
deleteFailedOutput(finalOutputUri);
- runOnUiThread(() -> {
- finished = true;
- handler.removeCallbacks(elapsedRunnable);
- handler.removeCallbacks(smoothProgressRunnable);
- allowScreenOffAfterProcessing();
- btnShareVideo.setVisibility(View.GONE);
- btnShareDoc.setVisibility(View.GONE);
- txtStatus.setText("Gagal compress. Code: " + result);
- txtElapsed.setText("Total waktu: " + formatElapsed(endTimeMs - startTimeMs));
- btnCancel.setText("Kembali");
- btnCancel.setEnabled(true);
- btnCancel.setOnClickListener(v -> finish());
- toast("Gagal compress");
- });
+ runOnUiThread(() -> showFailed(result));
}
} catch (Exception e) {
@@ -308,11 +371,26 @@ public class ProcessingActivity extends Activity {
closeQuietly(inputPfd);
closeQuietly(outputPfd);
}
- }, "KCompressor-Processing");
+ }, imageJob ? "KCompressor-Image" : "KCompressor-Video");
workerThread.start();
}
+ private void showFailed(int result) {
+ finished = true;
+ handler.removeCallbacks(elapsedRunnable);
+ handler.removeCallbacks(smoothProgressRunnable);
+ allowScreenOffAfterProcessing();
+ btnShareVideo.setVisibility(View.GONE);
+ btnShareDoc.setVisibility(View.GONE);
+ txtStatus.setText("Gagal compress. Code: " + result);
+ txtElapsed.setText("Total waktu: " + formatElapsed(endTimeMs - startTimeMs));
+ btnCancel.setText("Kembali");
+ btnCancel.setEnabled(true);
+ btnCancel.setOnClickListener(v -> finish());
+ toast("Gagal compress");
+ }
+
private void showCancelDialog() {
if (finished) {
finish();
@@ -394,18 +472,14 @@ public class ProcessingActivity extends Activity {
if (safePercent < 0) safePercent = 0;
if (safePercent > 100) safePercent = 100;
- // Jangan tampilkan 100 sebelum native benar-benar selesai.
if (!finished && safePercent > 99) {
safePercent = 99;
}
- // Target progress boleh naik, tetapi tidak boleh mundur.
if (safePercent > targetProgress) {
targetProgress = safePercent;
}
- // UI dibuat halus: jika native lompat dari 10 ke 40,
- // circle naik 11, 12, 13... sehingga terasa realtime dan tidak glitch.
if (!smoothProgressRunning) {
smoothProgressRunning = true;
handler.post(smoothProgressRunnable);
@@ -416,11 +490,28 @@ public class ProcessingActivity extends Activity {
private String normalizeProcessMessage(String message) {
if (message == null || message.length() == 0) {
- return "Memproses video...";
+ return imageJob ? "Memproses gambar..." : "Memproses video...";
}
String lower = message.toLowerCase(Locale.US);
+ if (lower.contains("done")) {
+ return "Selesai";
+ }
+
+ if (lower.contains("canceled")) {
+ return "Dibatalkan";
+ }
+
+ if (imageJob) {
+ if (lower.contains("membaca")) return "Membaca gambar...";
+ if (lower.contains("decode")) return "Membuka gambar...";
+ if (lower.contains("resize")) return "Mengubah resolusi gambar...";
+ if (lower.contains("encode")) return "Mengompres gambar...";
+ if (lower.contains("menyimpan")) return "Menyimpan gambar...";
+ return message;
+ }
+
if (lower.startsWith("encoding")) {
return "Memproses video...";
}
@@ -437,31 +528,21 @@ public class ProcessingActivity extends Activity {
return "Menyiapkan output...";
}
- if (lower.contains("done")) {
- return "Selesai";
- }
-
- if (lower.contains("canceled")) {
- return "Dibatalkan";
- }
-
return message;
}
- private void shareCompressedVideo(boolean asDocument) {
+ private void shareCompressedFile(boolean asDocument) {
if (outputUri == null) {
- toast("Video output belum tersedia");
+ toast(imageJob ? "Gambar output belum tersedia" : "Video output belum tersedia");
return;
}
Intent sendIntent = new Intent(Intent.ACTION_SEND);
if (asDocument) {
- // Untuk WhatsApp/Telegram, MIME generic biasanya diperlakukan sebagai dokumen/file.
sendIntent.setType("application/octet-stream");
} else {
- // Share normal sebagai video agar aplikasi target mengenali preview/player video.
- sendIntent.setType("video/mp4");
+ sendIntent.setType(outputMime);
}
sendIntent.putExtra(Intent.EXTRA_STREAM, outputUri);
@@ -469,17 +550,17 @@ public class ProcessingActivity extends Activity {
Intent chooser = Intent.createChooser(
sendIntent,
- asDocument ? "Share as Doc" : "Share as Video"
+ asDocument ? "Share as Doc" : (imageJob ? "Share as Image" : "Share as Video")
);
try {
startActivity(chooser);
} catch (Exception e) {
- toast("Tidak ada aplikasi untuk membagikan video");
+ toast("Tidak ada aplikasi untuk membagikan file");
}
}
- private String makeOutputName(String encoderName, int targetShortSide, int crf) {
+ private String makeVideoOutputName(String encoderName, int targetShortSide, int crf) {
String codec = encoderName.equals("libx265") ? "hevc" : "avc";
String res = targetShortSide <= 0 ? "original" : targetShortSide + "p";
String stamp = new SimpleDateFormat("yyyyMMdd_HHmmss", Locale.US).format(new Date());
@@ -487,17 +568,51 @@ public class ProcessingActivity extends Activity {
return "KCompressor_" + codec + "_" + res + "_crf" + crf + "_" + stamp + ".mp4";
}
- private ParcelFileDescriptor createOutputFile(String displayName) throws Exception {
+ private String makeImageOutputName(String format, int targetShortSide, int quality) {
+ String safeFormat = format == null ? "jpeg" : format.toLowerCase(Locale.US);
+ String ext;
+ String tag;
+
+ if (safeFormat.equals("png_lossy")) {
+ ext = "png";
+ tag = "png_quant";
+ } else if (safeFormat.equals("png_lossless") || safeFormat.equals("png")) {
+ ext = "png";
+ tag = "png_lossless";
+ } else if (safeFormat.equals("webp_lossless")) {
+ ext = "webp";
+ tag = "webp_lossless";
+ } else if (safeFormat.equals("webp")) {
+ ext = "webp";
+ tag = "webp";
+ } else if (safeFormat.equals("avif")) {
+ ext = "avif";
+ tag = "avif";
+ } else {
+ ext = "jpg";
+ tag = "jpeg";
+ }
+
+ String res = targetShortSide <= 0 ? "original" : targetShortSide + "p";
+ String stamp = new SimpleDateFormat("yyyyMMdd_HHmmss", Locale.US).format(new Date());
+
+ return "KCompressor_" + tag + "_" + res + "_q" + quality + "_" + stamp + "." + ext;
+ }
+
+ private ParcelFileDescriptor createOutputFile(String displayName, String mimeType, boolean image) throws Exception {
if (Build.VERSION.SDK_INT >= 29) {
ContentValues values = new ContentValues();
- values.put(MediaStore.Video.Media.DISPLAY_NAME, displayName);
- values.put(MediaStore.Video.Media.MIME_TYPE, "video/mp4");
- values.put(MediaStore.Video.Media.RELATIVE_PATH,
+ values.put(image ? MediaStore.Images.Media.DISPLAY_NAME : MediaStore.Video.Media.DISPLAY_NAME, displayName);
+ values.put(image ? MediaStore.Images.Media.MIME_TYPE : MediaStore.Video.Media.MIME_TYPE, mimeType);
+ values.put(image ? MediaStore.Images.Media.RELATIVE_PATH : MediaStore.Video.Media.RELATIVE_PATH,
Environment.DIRECTORY_DCIM + "/KCompressor");
- values.put(MediaStore.Video.Media.IS_PENDING, 1);
+ values.put(image ? MediaStore.Images.Media.IS_PENDING : MediaStore.Video.Media.IS_PENDING, 1);
ContentResolver resolver = getContentResolver();
- outputUri = resolver.insert(MediaStore.Video.Media.EXTERNAL_CONTENT_URI, values);
+ outputUri = resolver.insert(
+ image ? MediaStore.Images.Media.EXTERNAL_CONTENT_URI : MediaStore.Video.Media.EXTERNAL_CONTENT_URI,
+ values
+ );
if (outputUri == null) {
throw new IllegalStateException("Gagal membuat MediaStore output");
@@ -532,23 +647,198 @@ public class ProcessingActivity extends Activity {
}
}
- private void publishOutput(Uri uri) {
+ private void publishOutput(Uri uri, String mimeType, boolean image) {
if (uri == null) return;
if (Build.VERSION.SDK_INT >= 29) {
ContentValues values = new ContentValues();
- values.put(MediaStore.Video.Media.IS_PENDING, 0);
+ values.put(image ? MediaStore.Images.Media.IS_PENDING : MediaStore.Video.Media.IS_PENDING, 0);
getContentResolver().update(uri, values, null, null);
} else {
MediaScannerConnection.scanFile(
this,
new String[]{uri.getPath()},
- new String[]{"video/mp4"},
+ new String[]{mimeType},
null
);
}
}
+ private String mimeForImageFormat(String format) {
+ if (format == null) return "image/jpeg";
+
+ String safeFormat = format.toLowerCase(Locale.US);
+ if (safeFormat.startsWith("png")) return "image/png";
+ if (safeFormat.startsWith("webp")) return "image/webp";
+ if (safeFormat.equals("avif")) return "image/avif";
+ return "image/jpeg";
+ }
+
+ private long getUriSize(Uri uri) {
+ if (uri == null) {
+ return -1L;
+ }
+
+ try {
+ if ("file".equals(uri.getScheme())) {
+ String path = uri.getPath();
+ if (path == null) {
+ return -1L;
+ }
+
+ File file = new File(path);
+ return file.exists() ? file.length() : -1L;
+ }
+ } catch (Throwable ignored) {}
+
+ Cursor cursor = null;
+ try {
+ cursor = getContentResolver().query(
+ uri,
+ new String[]{OpenableColumns.SIZE},
+ null,
+ null,
+ null
+ );
+
+ if (cursor != null && cursor.moveToFirst()) {
+ int index = cursor.getColumnIndex(OpenableColumns.SIZE);
+ if (index >= 0 && !cursor.isNull(index)) {
+ long size = cursor.getLong(index);
+ if (size > 0L) {
+ return size;
+ }
+ }
+ }
+ } catch (Throwable ignored) {
+ } finally {
+ if (cursor != null) {
+ cursor.close();
+ }
+ }
+
+ AssetFileDescriptor afd = null;
+ try {
+ afd = getContentResolver().openAssetFileDescriptor(uri, "r");
+ if (afd != null) {
+ long length = afd.getLength();
+ if (length > 0L) {
+ return length;
+ }
+ }
+ } catch (Throwable ignored) {
+ } finally {
+ if (afd != null) {
+ try {
+ afd.close();
+ } catch (Exception ignored) {}
+ }
+ }
+
+ ParcelFileDescriptor pfd = null;
+ try {
+ pfd = getContentResolver().openFileDescriptor(uri, "r");
+ if (pfd != null) {
+ long statSize = pfd.getStatSize();
+ if (statSize > 0L) {
+ return statSize;
+ }
+ }
+ } catch (Throwable ignored) {
+ } finally {
+ closeQuietly(pfd);
+ }
+
+ return -1L;
+ }
+
+ private String buildOutputResultText(long originalSizeBytes, long compressedSizeBytes) {
+ String savedText = imageJob ? "Gambar disimpan di gallery" : "Video disimpan di gallery";
+
+ if (originalSizeBytes <= 0L || compressedSizeBytes <= 0L) {
+ return savedText + "\n\n" +
+ "Original : tidak diketahui\n" +
+ "Compressed : " + (compressedSizeBytes > 0L ? formatFileSize(compressedSizeBytes) : "tidak diketahui");
+ }
+
+ long delta = originalSizeBytes - compressedSizeBytes;
+ double finalRatioPercent = (compressedSizeBytes * 100.0) / originalSizeBytes;
+
+ StringBuilder builder = new StringBuilder();
+ builder.append(savedText).append("\n\n");
+ builder.append("Original : ").append(formatFileSize(originalSizeBytes)).append("\n");
+ builder.append("Compressed : ").append(formatFileSize(compressedSizeBytes)).append("\n");
+
+ if (delta >= 0L) {
+ double savedPercent = (delta * 100.0) / originalSizeBytes;
+ builder.append("Hemat : ")
+ .append(formatFileSize(delta))
+ .append(" (")
+ .append(formatPercent(savedPercent))
+ .append("%)\n");
+ builder.append("Ukuran akhir: ")
+ .append(formatPercent(finalRatioPercent))
+ .append("% dari original");
+ } else {
+ double largerPercent = ((-delta) * 100.0) / originalSizeBytes;
+ builder.append("Hasil : lebih besar ")
+ .append(formatFileSize(-delta))
+ .append(" (+")
+ .append(formatPercent(largerPercent))
+ .append("%)\n");
+ builder.append("Ukuran akhir: ")
+ .append(formatPercent(finalRatioPercent))
+ .append("% dari original");
+ }
+
+ return builder.toString();
+ }
+
+ private String formatFileSize(long bytes) {
+ if (bytes < 0L) {
+ return "-";
+ }
+
+ if (bytes < 1024L) {
+ return bytes + " B";
+ }
+
+ final String[] units = new String[]{"KB", "MB", "GB", "TB"};
+ double value = bytes;
+ int unitIndex = -1;
+
+ do {
+ value /= 1024.0;
+ unitIndex++;
+ } while (value >= 1024.0 && unitIndex < units.length - 1);
+
+ if (value >= 100.0) {
+ return String.format(Locale.US, "%.0f %s", value, units[unitIndex]);
+ }
+
+ if (value >= 10.0) {
+ return String.format(Locale.US, "%.1f %s", value, units[unitIndex]);
+ }
+
+ return String.format(Locale.US, "%.2f %s", value, units[unitIndex]);
+ }
+
+ private String formatPercent(double value) {
+ if (Double.isNaN(value) || Double.isInfinite(value)) {
+ return "0";
+ }
+
+ if (value >= 100.0) {
+ return String.format(Locale.US, "%.0f", value);
+ }
+
+ if (value >= 10.0) {
+ return String.format(Locale.US, "%.1f", value);
+ }
+
+ return String.format(Locale.US, "%.2f", value);
+ }
+
private void deleteFailedOutput(Uri uri) {
if (uri == null) return;
diff --git a/app/src/main/res/layout/activity_main_amoled.xml b/app/src/main/res/layout/activity_main_amoled.xml
index 33f227a..7d791fd 100644
--- a/app/src/main/res/layout/activity_main_amoled.xml
+++ b/app/src/main/res/layout/activity_main_amoled.xml
@@ -226,6 +226,179 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
function configurationCacheProblems() { return (
// begin-report-data
-{"diagnostics":[{"problemId":[{"name":"deprecation","displayName":"Deprecation"},{"name":"properties-should-be-assigned-using-the-propname-value-syntax-setting-a-property-via-the-gradle-generated-propname-value-or-propname-value-syntax-in-groovy-dsl","displayName":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated."}],"severity":"WARNING","contextualLabel":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated.","problemDetails":"This is scheduled to be removed in Gradle 10.","documentationLink":"https://docs.gradle.org/9.4.1/userguide/upgrading_version_8.html#groovy_space_assignment_syntax","locations":[{"path":"D:\\MyProject\\kcompressor\\app\\build.gradle","line":6}],"solutions":["Use assignment ('namespace = ') instead."]},{"problemId":[{"name":"deprecation","displayName":"Deprecation"},{"name":"properties-should-be-assigned-using-the-propname-value-syntax-setting-a-property-via-the-gradle-generated-propname-value-or-propname-value-syntax-in-groovy-dsl","displayName":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated."}],"severity":"WARNING","contextualLabel":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated.","problemDetails":"This is scheduled to be removed in Gradle 10.","documentationLink":"https://docs.gradle.org/9.4.1/userguide/upgrading_version_8.html#groovy_space_assignment_syntax","locations":[{"path":"D:\\MyProject\\kcompressor\\app\\build.gradle","line":31}],"solutions":["Use assignment ('version = ') instead."]}],"problemsReport":{"totalProblemCount":2,"buildName":"KCompressorStarter","requestedTasks":":app:assembleDebug","documentationLink":"https://docs.gradle.org/9.4.1/userguide/reporting_problems.html","summaries":[]}}
+{"diagnostics":[{"problemId":[{"name":"deprecation","displayName":"Deprecation"},{"name":"properties-should-be-assigned-using-the-propname-value-syntax-setting-a-property-via-the-gradle-generated-propname-value-or-propname-value-syntax-in-groovy-dsl","displayName":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated."}],"severity":"WARNING","contextualLabel":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated.","problemDetails":"This is scheduled to be removed in Gradle 10.","documentationLink":"https://docs.gradle.org/9.4.1/userguide/upgrading_version_8.html#groovy_space_assignment_syntax","locations":[{"path":"D:\\MyProject\\kcompressor\\app\\build.gradle","line":6}],"solutions":["Use assignment ('namespace = ') instead."]},{"problemId":[{"name":"deprecation","displayName":"Deprecation"},{"name":"properties-should-be-assigned-using-the-propname-value-syntax-setting-a-property-via-the-gradle-generated-propname-value-or-propname-value-syntax-in-groovy-dsl","displayName":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated."}],"severity":"WARNING","contextualLabel":"Properties should be assigned using the 'propName = value' syntax. Setting a property via the Gradle-generated 'propName value' or 'propName(value)' syntax in Groovy DSL has been deprecated.","problemDetails":"This is scheduled to be removed in Gradle 10.","documentationLink":"https://docs.gradle.org/9.4.1/userguide/upgrading_version_8.html#groovy_space_assignment_syntax","locations":[{"path":"D:\\MyProject\\kcompressor\\app\\build.gradle","line":31}],"solutions":["Use assignment ('version = ') instead."]}],"problemsReport":{"totalProblemCount":2,"buildName":"KCompressorStarter","requestedTasks":"clean","documentationLink":"https://docs.gradle.org/9.4.1/userguide/reporting_problems.html","summaries":[]}}
// end-report-data
);}