| | |
| | | { |
| | | |
| | | void Java_cn_com_basic_face_util_RtspFaceNative_init(JNIEnv *env, jclass clazz) |
| | | { |
| | | g_logger.set_level(INFO); |
| | | { |
| | | g_logger.set_level(INFO); |
| | | |
| | | cpu_sched(); |
| | | cpu_sched(); |
| | | |
| | | #ifdef USE_ST_SDK |
| | | PipeLine::register_global_elem_creator("PL_SensetimeFaceTrackMitiTrd", create_PL_SensetimeFaceTrackMultiTrd); |
| | | #endif |
| | | for (size_t i = 0; i < CAMERA_COUNT; i++) |
| | | { |
| | | g_CameraWrappers[i].cameraIdx = i + 1; |
| | | |
| | | for (size_t i = 0; i < CAMERA_COUNT; i++) |
| | | { |
| | | g_CameraWrappers[i].cameraIdx = i + 1; |
| | | g_CameraWrappers[i].pipeLineDecoderDetector = new PipeLine; |
| | | g_CameraWrappers[i].pipeLineRender = new PipeLine; |
| | | //PipeLine& pipeLine(*(g_CameraWrappers[i].pipeLineDecoderDetector)); |
| | | } |
| | | |
| | | g_CameraWrappers[i].pipeLineDecoderDetector = new PipeLine; |
| | | g_CameraWrappers[i].pipeLineAnalyzer = new PipeLine; |
| | | g_CameraWrappers[i].pipeLineRender = new PipeLine; |
| | | //PipeLine& pipeLine(*(g_CameraWrappers[i].pipeLineDecoderDetector)); |
| | | } |
| | | |
| | | g_TeleWrapper.start(); |
| | | g_TeleWrapper.start(); |
| | | } |
| | | |
| | | void |
| | |
| | | g_CameraWrappers[i].rtspConfig.requestStreamingOverTcp = true; |
| | | } |
| | | 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 |
| | |
| | | cameraWrapper.asvrConfig.scaleToWidth = 0; |
| | | cameraWrapper.asvrConfig.scaleToHeight = 0; |
| | | cameraWrapper.asvrConfig.directlyDisplay = true; |
| | | } |
| | | |
| | | { |
| | | cameraWrapper.sftConfig.point_size = 21; |
| | | cameraWrapper.sftConfig.detect_face_cnt_limit = MAX_FACE; |
| | | cameraWrapper.sftConfig.draw_face_rect = false; |
| | | cameraWrapper.sftConfig.draw_face_feature_point = false; |
| | | cameraWrapper.sftConfig.generate_face_feature = true; |
| | | cameraWrapper.sftConfig.generate_face_point = false; |
| | | cameraWrapper.sftConfig.explode_feature_rect_x = 30; |
| | | cameraWrapper.sftConfig.explode_feature_rect_y = 40; |
| | | cameraWrapper.sftConfig.clamp_feature_rect = true; |
| | | cameraWrapper.sftConfig.doTrackPerFrame = 1; |
| | | //cameraWrapper.sftConfig.license_str = g_stface_license_str; |
| | | cameraWrapper.sftConfig.visionConeAngle = 30.0f; |
| | | cameraWrapper.sftConfig.score_min = 0.4f; |
| | | } |
| | | |
| | | cameraWrapper.fontPath = "/data/msyh.ttc"; |