JLChen
2021-01-04 ed86fe7ed952bb2151aac8841134246bbde152c9
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
package lilin.com;
 
import android.util.Log;
import android.view.Surface;
 
import lilin.com.view.FFWlGLSurfaceView;
import lilin.com.view.FFWlRender;
 
public class MyCApi {
 
    // Used to load the 'native-lib' library on application startup.
    static {
        System.loadLibrary("avcodec-58");
        System.loadLibrary("avdevice-58");
        System.loadLibrary("avfilter-7");
        System.loadLibrary("avformat-58");
        System.loadLibrary("avutil-56");
        System.loadLibrary("postproc-55");
        System.loadLibrary("swresample-3");
        System.loadLibrary("swscale-5");
        System.loadLibrary("bcg729");
        System.loadLibrary("native-lib");
    }
    private FFWlGLSurfaceView wlGLSurfaceView;
    private Surface surface;
 
    public void javaBareStart(){
        bareStart();
    }
    public void javaBareStop(){
        bareStop();
    }
    public void javaBarejie(){
        barejie();
    }
    public void javaBaregua(){
        baregua();
    }
    public void javaBarecall(String num){
        barecall(num);
    }
    public void javaBarecallb(String num){
        barecallv(num);
    }
    public void javaBareSendv(byte[] data, int w,int h ){
        baresendvdata(data ,w,h);
    }
 
    /**
     * A native method that is implemented by the 'native-lib' native library,
     * which is packaged with this application.
     */
 
    public native void bareStart();
    public native void bareStop();
    public native void barereg(String sipaddress);
    public native void barejie();
    public native void baregua();
    public native void barecall(String num);
    public native void barecallv(String num);
    public native int bareIsReg();
    public native void baresendvdata(byte[] data, int w,int h );
 
 
    public void c_bareVstart(){
        if( jniListener!=null ){
            jniListener. bareVstart();
        }
    }
    public void c_bareVstop(){
        if( jniListener!=null ){
            jniListener. bareVstop();
        }
    }
    public void c_bareState(String state ){
        if( jniListener!=null ){
            jniListener.bareState(state);
        }
    }
    public void c_bareCodec(String codec ){
        if( jniListener!=null ){
            jniListener.bareCodec(codec);
        }
    }
    public void c_renderYUV(int width, int height, byte[] y, byte[] u, byte[] v)
    {
        if(wlGLSurfaceView!=null){
            wlGLSurfaceView.getWlRender().setRenderType(FFWlRender.RENDER_YUV);
            wlGLSurfaceView.setYUVData(  width,height,y,u,v );
        }
    }
 
    private IJniListener jniListener;
    public void setiJniListener(IJniListener iJniListener) {
        this.jniListener = iJniListener;
    }
 
    public interface  IJniListener {
        void bareState(String state);
        void bareVstart();
        void bareVstop();
        void bareCodec(String code);
    }
    public void setWlGLSurfaceView(FFWlGLSurfaceView wlGLSurfaceView) {
        this.wlGLSurfaceView = wlGLSurfaceView;
        wlGLSurfaceView.getWlRender().setOnSurfaceCreateListener(new FFWlRender.OnSurfaceCreateListener() {
            @Override
            public void onSurfaceCreate(Surface s) {
                if(surface == null)
                {
                    surface = s;
                }
            }
        });
    }
}