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; } } }); } }