Improve Ffmpeg layer
[rtmpclient.git] / app / src / main / java / ai / suanzi / rtmpclient / FfmpegHelper.java
diff --git a/app/src/main/java/ai/suanzi/rtmpclient/FfmpegHelper.java b/app/src/main/java/ai/suanzi/rtmpclient/FfmpegHelper.java
new file mode 100644 (file)
index 0000000..5863243
--- /dev/null
@@ -0,0 +1,34 @@
+package ai.suanzi.rtmpclient;
+
+import org.apache.log4j.Logger;
+
+public class FfmpegHelper {
+
+    static {
+        String arch = System.getProperty("os.arch");
+        if (arch.equals("i686")){
+            System.loadLibrary("x264");
+        }
+        System.loadLibrary("avutil");
+        System.loadLibrary("postproc");
+        System.loadLibrary("swresample");
+        System.loadLibrary("swscale");
+        System.loadLibrary("avcodec");
+        System.loadLibrary("avdevice");
+        System.loadLibrary("avfilter");
+        System.loadLibrary("avformat");
+        System.loadLibrary("FfmpegHelperJNI");
+    }
+
+    private static Logger gLogger = Logger.getLogger("FfmpegHelper");
+
+    // callback from native
+    public static void javaPrint(String string){
+        gLogger.error(string);
+    }
+
+    // native methods
+    public static native int initialEncoder(int width, int height, String url);
+    public static native int processFrame(byte[] frame);
+    public static native int close();
+}