package com.aiyaapp.camera.sdk; import android.content.Context; import android.util.Log; /** * 核心功能的JNI接口 */ final class AiyaCameraJni { private static final String TAG = "AiyaCameraJni"; public int init(Context context,String configPath,String licensePath,String appId,String hwId,String appKey) { if(context == null) { throw new IllegalArgumentException("context is null"); } return nSdkInit(context,configPath,licensePath,appId,hwId,appKey); } public void setParameters(int width, int height, int format, int orientation, int flip,int outWidth, int outHeight, int outFormat, int outOrientation, int outFlip) { Log.d(TAG,"setParameters width : " + width + " height : " + height + " orientation : " + orientation + " flip : " + flip); nSetParameters(width, height,format, orientation, flip,outWidth, outHeight, outFormat, outOrientation, outFlip); } public void set(String key,int value){ nConfig(key,value); } public void set(String key,Object obj){ nControl(key,obj); } public void setEffect(String effectJson){ nSetEffect(effectJson); } public int processFrame(int textureId,int width,int height,int trackIndex){ return nProcessFrame(textureId,width,height,trackIndex); } //outfdp 长度为19 public int track(byte[] rgbabuffer, int width, int height, float[] outfdp,int trackIndex){ return nTrack(rgbabuffer,width,height,outfdp,trackIndex); } public void release() { nRelease(); } private native void nInitLicense(Object context,String licensePath); private native void nSetParameters(int width, int height, int format, int orientation, int flip,int outWidth, int outHeight, int outFormat, int outOrientation, int outFlip); private native void nSetEffect(String effectJson); private native int nProcessFrame(int textureId,int width,int height,int trackIndex); private native int nSdkInit(Object context, String configPath, String licensePath,String appId,String hwId,String appKey); private native void nConfig(String key,int value); private native void nRelease(); private native int nTrack(byte[] rgbabuffer, int width, int height, float[] outfdp,int trackIndex); private native void nControl(String key,Object obj); static { System.loadLibrary("assimp"); System.loadLibrary("VisageVision"); System.loadLibrary("ayeffects"); System.loadLibrary("AiyaJniWrapper"); } }