| | |
| | | env->ReleaseStringUTFChars(ipaddr, utf8); |
| | | } |
| | | |
| | | // set the surface |
| | | void Java_cn_com_basic_face_util_RtspFaceNative_setSurface(JNIEnv *env, jclass clazz, jint cameraIdx, |
| | | jobject surfaceRender) |
| | | { |
| | | LOG_DEBUG << "@@@ Java_cn_com_basic_face_util_RtspFaceNative_setSurface" << LOG_ENDL; |
| | | assert(cameraIdx > 0 && cameraIdx <= CAMERA_COUNT); |
| | | cameraIdx -= 1; |
| | | |
| | | CameraWrapper &cameraWrapper(g_CameraWrappers[cameraIdx]); |
| | | |
| | | // obtain a native windowRender from a Java surface |
| | | if (cameraWrapper.windowDecode != nullptr) |
| | | { |
| | | ANativeWindow_release((ANativeWindow *) (cameraWrapper.windowDecode)); |
| | | cameraWrapper.windowDecode = NULL; |
| | | } |
| | | cameraWrapper.windowDecode = ANativeWindow_fromSurface(env, surfaceRender); |
| | | //cameraWrapper.windowDecode = getSurfaceHolderGetSurface(env, surfaceRender); |
| | | //cameraWrapper.windowDecode = ANativeWindow_fromSurface(env, (jobject)getSurfaceHolderGetSurface(env, surfaceRender)); |
| | | |
| | | if (cameraWrapper.windowRender != nullptr) |
| | | { |
| | | ANativeWindow_release((ANativeWindow *) (cameraWrapper.windowRender)); |
| | | cameraWrapper.windowRender = NULL; |
| | | } |
| | | cameraWrapper.windowRender = ANativeWindow_fromSurface(env, surfaceRender); |
| | | cameraWrapper.asvrConfig.windowSurface = cameraWrapper.windowRender; // support reset |
| | | //cameraWrapper.windowRender = ANativeWindow_fromSurface(env, (jobject)getSurfaceHolderGetSurface(env, surfaceRender)); |
| | | |
| | | { |
| | | ANativeWindow* window = (ANativeWindow*)(cameraWrapper.windowRender); |
| | | ANativeWindow_Buffer buffer; |
| | | if(cameraWrapper.windowRender != nullptr && ANativeWindow_lock(window, &buffer, NULL) == 0) |
| | | { |
| | | cameraWrapper.plScaleCfg.toHeight=buffer.height; |
| | | cameraWrapper.plScaleCfg.toWidth=buffer.stride; |
| | | ANativeWindow_unlockAndPost(window); |
| | | } |
| | | else |
| | | { |
| | | cameraWrapper.plScaleCfg.toHeight=480; |
| | | cameraWrapper.plScaleCfg.toWidth=640; |
| | | } |
| | | } |
| | | |
| | | LOGP(DEBUG, "@@@ setsurface %p,%p", cameraWrapper.windowDecode, cameraWrapper.windowRender); |
| | | } |
| | | |
| | | jboolean |
| | | Java_cn_com_basic_face_util_RtspFaceNative_createPlayer(JNIEnv *env, jclass clazz, jint cameraIdx, |
| | | jstring uri) |