Add fullscreen toggle
[rtmpclient.git] / app / src / main / java / ai / suanzi / rtmpclient / Ffmpeg.java
1 package ai.suanzi.rtmpclient;
2
3 import android.util.Log;
4
5 import org.apache.log4j.Logger;
6
7 public class Ffmpeg {
8
9     static {
10         String arch = System.getProperty("os.arch");
11         if (arch.equals("i686")){
12             System.loadLibrary("x264");
13         }
14         System.loadLibrary("avutil");
15         System.loadLibrary("postproc");
16         System.loadLibrary("swresample");
17         System.loadLibrary("swscale");
18         System.loadLibrary("avcodec");
19         System.loadLibrary("avdevice");
20         System.loadLibrary("avfilter");
21         System.loadLibrary("avformat");
22         System.loadLibrary("ffmpeg-jni");
23     }
24
25     private static Ffmpeg instance = new Ffmpeg();
26
27     public static Ffmpeg getInstance(){
28         return instance;
29     }
30
31     private Ffmpeg(){
32         Log.e("Ffmpeg", "init");
33         //init();
34         //inithaha(640, 480);
35         //getPerfectDevice();
36     }
37
38     private Logger gLogger = Logger.getLogger("FFmpeg");
39     public void  print(String str){
40         gLogger.error(str);
41     }
42
43     public native String getVersion();
44     public native void init();
45     public native int inithaha(int width, int height);
46     public native int initnew (int width, int height, String url);
47     //public native init inithahurl(ini)
48     public native int flush();
49     public native int close();
50     public native int process(byte[] data);
51     public native int play(Object surface, String fname);
52     public native int push(Object surface, String url);
53     public native int preview(Object surface);
54     public native String getPerfectDevice();
55     public native int test(int fd);
56     public native void setRtmpUrl(String url);
57 }