eb3203f553d8ba337dadd64be0cd29804ac0fb8b
[rtmpclient.git] / app / src / main / java / ai / suanzi / rtmpclient / Ffmpeg.java
1 package ai.suanzi.rtmpclient;
2
3 import android.util.Log;
4
5 public class Ffmpeg {
6
7     static {
8         String arch = System.getProperty("os.arch");
9         if (arch.equals("i686")){
10             System.loadLibrary("x264");
11         }
12         System.loadLibrary("avutil");
13         System.loadLibrary("postproc");
14         System.loadLibrary("swresample");
15         System.loadLibrary("swscale");
16         System.loadLibrary("avcodec");
17         System.loadLibrary("avdevice");
18         System.loadLibrary("avfilter");
19         System.loadLibrary("avformat");
20         System.loadLibrary("ffmpeg-jni");
21     }
22
23     private static Ffmpeg instance = new Ffmpeg();
24
25     public static Ffmpeg getInstance(){
26         return instance;
27     }
28
29     private Ffmpeg(){
30         Log.e("Ffmpeg", "init");
31         init();
32         //getPerfectDevice();
33     }
34
35
36     public native String getVersion();
37     public native void init();
38     public native int init(int width, int height);
39     public native int flush();
40     public native int close();
41     public native int process(byte[] data);
42     public native int play(Object surface, String fname);
43     public native int push(Object surface);
44     public native int preview(Object surface);
45     public native String getPerfectDevice();
46     public native int test(int fd);
47 }