Fix memory leak, and all work well except startup and jni log
[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         //inithaha(640, 480);
33         //getPerfectDevice();
34     }
35
36
37     public native String getVersion();
38     public native void init();
39     public native int inithaha(int width, int height);
40     public native int initnew (int width, int height, String url);
41     //public native init inithahurl(ini)
42     public native int flush();
43     public native int close();
44     public native int process(byte[] data);
45     public native int play(Object surface, String fname);
46     public native int push(Object surface, String url);
47     public native int preview(Object surface);
48     public native String getPerfectDevice();
49     public native int test(int fd);
50     public native void setRtmpUrl(String url);
51 }