diff --git a/app/src/main/java/com/arthenica/ffmpegkit/NativeLoader.java b/app/src/main/java/com/arthenica/ffmpegkit/NativeLoader.java index 548be45bb..96c34163b 100755 --- a/app/src/main/java/com/arthenica/ffmpegkit/NativeLoader.java +++ b/app/src/main/java/com/arthenica/ffmpegkit/NativeLoader.java @@ -4,6 +4,8 @@ import android.os.Build; import android.os.Environment; import android.util.Log; import com.arthenica.smartexception.java.Exceptions; + +import java.util.Collections; import java.util.List; import ru.vtosters.lite.utils.Globals; @@ -12,24 +14,23 @@ public class NativeLoader { static final String[] FFMPEG_LIBRARIES = {"avutil", "swscale", "swresample", "avcodec", "avformat", "avfilter", "avdevice"}; private static void loadLibrary(String libraryName) { - try { - String path = Globals.getContext().getFilesDir() + "/lib" + libraryName + ".so"; - System.load(path); - } catch (UnsatisfiedLinkError e) { - throw new Error(String.format("FFmpegKit failed to start on %s.", getDeviceDebugInformation()), e); - } + String path = Globals.getContext().getFilesDir() + "/lib" + libraryName + ".so"; + System.load(path); } private static List loadExternalLibraries() { - return Packages.getExternalLibraries(); + // return Packages.getExternalLibraries(); + return Collections.emptyList(); } private static String loadNativeAbi() { - return AbiDetect.getNativeAbi(); + // return AbiDetect.getNativeAbi(); + return Abi.ABI_ARMV7A_NEON.getName(); } static String loadAbi() { - return AbiDetect.getAbi(); + // return AbiDetect.getAbi(); + return Abi.ABI_ARMV7A_NEON.getName(); } static String loadPackageName() { @@ -63,30 +64,24 @@ public class NativeLoader { static boolean loadFFmpeg() { boolean nativeFFmpegLoaded = false; boolean nativeFFmpegTriedAndFailed = false; - if (Build.VERSION.SDK_INT < 21) { - List externalLibrariesEnabled = loadExternalLibraries(); - if (externalLibrariesEnabled.contains("tesseract") || externalLibrariesEnabled.contains("x265") || externalLibrariesEnabled.contains("snappy") || externalLibrariesEnabled.contains("openh264") || externalLibrariesEnabled.contains("rubberband")) { - loadLibrary("c++_shared"); - } - if ("arm-v7a".equals(loadNativeAbi())) { + + if (AbiDetect.ARM_V7A.equals(loadNativeAbi())) { try { - String[] strArr = FFMPEG_LIBRARIES; - int length = strArr.length; - for (int i = 0; i < length; i++) { - loadLibrary(strArr[i] + "_neon"); + for (String ffmpegLibrary : FFMPEG_LIBRARIES) { + loadLibrary(ffmpegLibrary + "_neon"); } nativeFFmpegLoaded = true; - } catch (Error e) { - Log.i("ffmpeg-kit", String.format("NEON supported armeabi-v7a ffmpeg library not found. Loading default armeabi-v7a library.%s", Exceptions.getStackTraceString(e))); + } catch (final Error e) { + android.util.Log.i(FFmpegKitConfig.TAG, String.format("NEON supported armeabi-v7a ffmpeg library not found. Loading default armeabi-v7a library.%s", Exceptions.getStackTraceString(e))); nativeFFmpegTriedAndFailed = true; } } + if (!nativeFFmpegLoaded) { for (String ffmpegLibrary : FFMPEG_LIBRARIES) { loadLibrary(ffmpegLibrary); } } - } return nativeFFmpegTriedAndFailed; } diff --git a/smali/assets/ffmpeg/libavcodec.so b/smali/assets/ffmpeg/libavcodec.so new file mode 100644 index 000000000..b1f38c10f Binary files /dev/null and b/smali/assets/ffmpeg/libavcodec.so differ diff --git a/smali/assets/ffmpeg/libavcodec_neon.so b/smali/assets/ffmpeg/libavcodec_neon.so index 8615c3893..ced7fc705 100644 Binary files a/smali/assets/ffmpeg/libavcodec_neon.so and b/smali/assets/ffmpeg/libavcodec_neon.so differ diff --git a/smali/assets/ffmpeg/libavdevice.so b/smali/assets/ffmpeg/libavdevice.so new file mode 100644 index 000000000..4929d5daa Binary files /dev/null and b/smali/assets/ffmpeg/libavdevice.so differ diff --git a/smali/assets/ffmpeg/libavdevice_neon.so b/smali/assets/ffmpeg/libavdevice_neon.so index 15d056d78..15b90490b 100644 Binary files a/smali/assets/ffmpeg/libavdevice_neon.so and b/smali/assets/ffmpeg/libavdevice_neon.so differ diff --git a/smali/assets/ffmpeg/libavfilter.so b/smali/assets/ffmpeg/libavfilter.so new file mode 100644 index 000000000..39d7de432 Binary files /dev/null and b/smali/assets/ffmpeg/libavfilter.so differ diff --git a/smali/assets/ffmpeg/libavfilter_neon.so b/smali/assets/ffmpeg/libavfilter_neon.so index 8d050fb72..64294d5bb 100644 Binary files a/smali/assets/ffmpeg/libavfilter_neon.so and b/smali/assets/ffmpeg/libavfilter_neon.so differ diff --git a/smali/assets/ffmpeg/libavformat.so b/smali/assets/ffmpeg/libavformat.so new file mode 100644 index 000000000..6d44e9e30 Binary files /dev/null and b/smali/assets/ffmpeg/libavformat.so differ diff --git a/smali/assets/ffmpeg/libavformat_neon.so b/smali/assets/ffmpeg/libavformat_neon.so index 3287fffa6..8309ee661 100644 Binary files a/smali/assets/ffmpeg/libavformat_neon.so and b/smali/assets/ffmpeg/libavformat_neon.so differ diff --git a/smali/assets/ffmpeg/libavutil.so b/smali/assets/ffmpeg/libavutil.so new file mode 100644 index 000000000..a153b0b7f Binary files /dev/null and b/smali/assets/ffmpeg/libavutil.so differ diff --git a/smali/assets/ffmpeg/libavutil_neon.so b/smali/assets/ffmpeg/libavutil_neon.so index 1c9eb5acc..8aa082092 100644 Binary files a/smali/assets/ffmpeg/libavutil_neon.so and b/smali/assets/ffmpeg/libavutil_neon.so differ diff --git a/smali/assets/ffmpeg/libffmpegkit.so b/smali/assets/ffmpeg/libffmpegkit.so new file mode 100644 index 000000000..150d61b52 Binary files /dev/null and b/smali/assets/ffmpeg/libffmpegkit.so differ diff --git a/smali/assets/ffmpeg/libffmpegkit_abidetect.so b/smali/assets/ffmpeg/libffmpegkit_abidetect.so index 8f1db4e99..35762edf2 100644 Binary files a/smali/assets/ffmpeg/libffmpegkit_abidetect.so and b/smali/assets/ffmpeg/libffmpegkit_abidetect.so differ diff --git a/smali/assets/ffmpeg/libffmpegkit_armv7a_neon.so b/smali/assets/ffmpeg/libffmpegkit_armv7a_neon.so index 2063f1caa..8fb0a541b 100644 Binary files a/smali/assets/ffmpeg/libffmpegkit_armv7a_neon.so and b/smali/assets/ffmpeg/libffmpegkit_armv7a_neon.so differ diff --git a/smali/assets/ffmpeg/libswresample.so b/smali/assets/ffmpeg/libswresample.so new file mode 100644 index 000000000..91eaa9787 Binary files /dev/null and b/smali/assets/ffmpeg/libswresample.so differ diff --git a/smali/assets/ffmpeg/libswresample_neon.so b/smali/assets/ffmpeg/libswresample_neon.so index 578f3bd36..f87051da6 100644 Binary files a/smali/assets/ffmpeg/libswresample_neon.so and b/smali/assets/ffmpeg/libswresample_neon.so differ diff --git a/smali/assets/ffmpeg/libswscale.so b/smali/assets/ffmpeg/libswscale.so new file mode 100644 index 000000000..daaa67c6e Binary files /dev/null and b/smali/assets/ffmpeg/libswscale.so differ diff --git a/smali/assets/ffmpeg/libswscale_neon.so b/smali/assets/ffmpeg/libswscale_neon.so index ee6235255..9496cd36b 100644 Binary files a/smali/assets/ffmpeg/libswscale_neon.so and b/smali/assets/ffmpeg/libswscale_neon.so differ