add user input
[rtmpclient.git] / app / src / main / java / ai / suanzi / rtmpclient / Ffmpeg.java
index c705c01..fae8409 100644 (file)
@@ -1,11 +1,47 @@
 package ai.suanzi.rtmpclient;
 
+import android.util.Log;
+
 public class Ffmpeg {
 
     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("ffmpeg-jni");
+    }
+
+    private static Ffmpeg instance = new Ffmpeg();
 
+    public static Ffmpeg getInstance(){
+        return instance;
     }
 
+    private Ffmpeg(){
+        Log.e("Ffmpeg", "init");
+        init();
+        //getPerfectDevice();
+    }
+
+
     public native String getVersion();
+    public native void init();
+    public native int init(int width, int height);
+    public native int flush();
+    public native int close();
+    public native int process(byte[] data);
+    public native int play(Object surface, String fname);
+    public native int push(Object surface, String url);
+    public native int preview(Object surface);
+    public native String getPerfectDevice();
+    public native int test(int fd);
 }