| | |
| | | env->ReleaseStringUTFChars(ipaddr, utf8); |
| | | } |
| | | |
| | | void createHiddenSurface(JNIEnv *env, int cameraIdx) |
| | | { |
| | | CameraWrapper& cameraWrapper(g_CameraWrappers[cameraIdx]); |
| | | |
| | | //OutputSurface outputSurface = null; |
| | | //outputSurface = new OutputSurface(mWidth, mHeight); |
| | | //outputSurface.getSurface(); |
| | | //outputSurface.release(); |
| | | |
| | | jclass jcOutputSurface = env->FindClass("com/example/nativecodec/OutputSurface"); |
| | | jmethodID jmOutputSurface_ctor = env->GetMethodID(jcOutputSurface, "<init>", "(II)V"); |
| | | jmethodID jmOutputSurface_getSurface = env->GetMethodID(jcOutputSurface, "getSurface", "()Landroid/view/Surface;"); |
| | | |
| | | jobject jobjOutputSurface = env->NewObject(jcOutputSurface , jmOutputSurface_ctor, 1920, 1088); |
| | | jobject jobjSurface = env->CallObjectMethod(jobjOutputSurface, jmOutputSurface_getSurface); |
| | | cameraWrapper.windowDecode = ANativeWindow_fromSurface(env, jobjSurface); |
| | | } |
| | | |
| | | // set the surface |
| | | void Java_cn_com_basic_face_util_RtspFaceNative_setSurface(JNIEnv *env, jclass clazz, jint cameraIdx, jobject surface) |
| | | { |
| | |
| | | |
| | | CameraWrapper& cameraWrapper(g_CameraWrappers[cameraIdx]); |
| | | |
| | | // obtain a native window from a Java surface |
| | | if (cameraWrapper.window) |
| | | // obtain a native windowRender from a Java surface |
| | | if (cameraWrapper.windowRender) |
| | | { |
| | | ANativeWindow_release((ANativeWindow*)(cameraWrapper.window)); |
| | | cameraWrapper.window = NULL; |
| | | ANativeWindow_release((ANativeWindow*)(cameraWrapper.windowRender)); |
| | | cameraWrapper.windowRender = NULL; |
| | | } |
| | | cameraWrapper.window = ANativeWindow_fromSurface(env, surface); |
| | | LOGP(DEBUG, "@@@ setsurface %p", cameraWrapper.window); |
| | | cameraWrapper.windowRender = ANativeWindow_fromSurface(env, surface); |
| | | |
| | | //createHiddenSurface(env, cameraIdx); |
| | | |
| | | LOGP(DEBUG, "@@@ setsurface %p", cameraWrapper.windowRender); |
| | | } |
| | | |
| | | jboolean Java_cn_com_basic_face_util_RtspFaceNative_createPlayer(JNIEnv* env, jclass clazz, jint cameraIdx, jstring uri) |
| | |
| | | cameraWrapper.amcdConfig.ak_mime = "video/avc"; |
| | | cameraWrapper.amcdConfig.ak_width = 640; |
| | | cameraWrapper.amcdConfig.ak_height = 480; |
| | | cameraWrapper.amcdConfig.windowSurface = nullptr; // cameraWrapper.window |
| | | cameraWrapper.amcdConfig.releaseOutputBuffIdx = true; |
| | | cameraWrapper.amcdConfig.windowSurfaceDecode = nullptr; //cameraWrapper.windowDecode; |
| | | cameraWrapper.amcdConfig.windowSurfaceRender = nullptr; |
| | | cameraWrapper.amcdConfig.releaseOutputBuffIdx = true; |
| | | cameraWrapper.amcdConfig.releaseOutputBuffIdxInPay = false; |
| | | cameraWrapper.amcdConfig.generateDecodedDataPerFrame = 1; |
| | | cameraWrapper.amcdConfig.renderFromOutputBuffIdx = false;//true |
| | | cameraWrapper.amcdConfig.renderFromOutputBuff = false; |
| | | |
| | | #ifndef USE_ST_SDK |
| | | cameraWrapper.amcdConfig.releaseOutputBuffIdxInPay = true; |
| | | #endif |
| | | } |
| | | |
| | | { |
| | | cameraWrapper.asvrConfig.windowSurface = cameraWrapper.window; |
| | | cameraWrapper.asvrConfig.windowSurface = cameraWrapper.windowRender; |
| | | cameraWrapper.asvrConfig.outputOriginFrame = true; |
| | | cameraWrapper.asvrConfig.outputRenderFrame = true; |
| | | cameraWrapper.asvrConfig.scaleToWidth = 640; |