| | |
| | | #include <stdlib.h> |
| | | |
| | | #include "DebugNetwork.h" |
| | | #include "TeleWrapper.h" |
| | | |
| | | #include "cpu_sched_test.h" |
| | | |
| | | //#include <mediastreamer2/include/mediastreamer2/msjava.h> |
| | | |
| | |
| | | |
| | | CaptureCamera g_CaptureCamera; |
| | | |
| | | TeleWrapper g_TeleWrapper; |
| | | |
| | | extern "C" |
| | | { |
| | | |
| | |
| | | { |
| | | g_logger.set_level(INFO); |
| | | |
| | | cpu_sched(); |
| | | |
| | | #ifdef USE_ST_SDK |
| | | PipeLine::register_global_elem_creator("PL_SensetimeFaceTrack", create_PL_SensetimeFaceTrack); |
| | | PipeLine::register_global_elem_creator("PL_SensetimeFaceTrackMitiTrd", create_PL_SensetimeFaceTrackMultiTrd); |
| | | #endif |
| | | |
| | | for (size_t i = 0; i < CAMERA_COUNT; i++) |
| | |
| | | g_CameraWrappers[i].pipeLineRender = new PipeLine; |
| | | //PipeLine& pipeLine(*(g_CameraWrappers[i].pipeLineDecoderDetector)); |
| | | } |
| | | |
| | | g_TeleWrapper.start(); |
| | | } |
| | | |
| | | void |
| | |
| | | static void *getSurfaceHolderGetSurface(JNIEnv *env, jobject jobjSurfaceHolder) |
| | | { |
| | | jclass jcSurfaceHolder = env->FindClass("android/view/SurfaceHolder"); |
| | | jmethodID jmSurfaceHolder_getSurface = env->GetMethodID(jcSurfaceHolder, "getSurface", |
| | | "()Landroid/view/Surface;"); |
| | | jmethodID jmSurfaceHolder_getSurface = env->GetMethodID(jcSurfaceHolder, "getSurface", "()Landroid/view/Surface;"); |
| | | jobject surface = env->CallObjectMethod(jobjSurfaceHolder, jmSurfaceHolder_getSurface); |
| | | return surface; |
| | | } |
| | | |
| | | // set the surface |
| | | void |
| | | Java_cn_com_basic_face_util_RtspFaceNative_setSurface(JNIEnv *env, jclass clazz, jint cameraIdx, |
| | | jobject surfaceRender) |
| | | 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); |
| | |
| | | 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); |
| | | } |
| | |
| | | cameraWrapper.asvrConfig.outputOriginFrame = true; |
| | | cameraWrapper.asvrConfig.outputRenderFrame = true; |
| | | cameraWrapper.asvrConfig.scaleToWidth = 0; |
| | | cameraWrapper.asvrConfig.scaleToHeight = 0; |
| | | cameraWrapper.asvrConfig.scaleToHeight = 0; |
| | | cameraWrapper.asvrConfig.directlyDisplay = true; |
| | | } |
| | | |
| | | { |
| | |
| | | cameraWrapper.sftConfig.clamp_feature_rect = true; |
| | | cameraWrapper.sftConfig.doTrackPerFrame = 1; |
| | | //cameraWrapper.sftConfig.license_str = g_stface_license_str; |
| | | cameraWrapper.sftConfig.visionConeAngle = 35.0f; |
| | | cameraWrapper.sftConfig.score_min = 0.2f; |
| | | cameraWrapper.sftConfig.visionConeAngle = 30.0f; |
| | | cameraWrapper.sftConfig.score_min = 0.4f; |
| | | } |
| | | |
| | | bool ret = cameraWrapper.initPl(); |
| | | cameraWrapper.fontPath = "/data/msyh.ttc"; |
| | | |
| | | bool ret = cameraWrapper.initPl(); |
| | | if (ret) |
| | | return (cameraWrapper.start() ? JNI_TRUE : JNI_FALSE); |
| | | else |
| | |
| | | assert(cameraIdx > 0 && cameraIdx <= CAMERA_COUNT); |
| | | cameraIdx -= 1; |
| | | |
| | | CameraWrapper &cameraWrapper(g_CameraWrappers[cameraIdx]); |
| | | CameraWrapper& cameraWrapper(g_CameraWrappers[cameraIdx]); |
| | | cameraWrapper.stop(); |
| | | } |
| | | |
| | |
| | | evpHeader->size = sizeof(EVPHeader) + sizeof(FDP_FaceDetectPB) + buffSize; |
| | | buffSize = evpHeader->size; |
| | | |
| | | FDP_FaceDetectPB *fdpFaceDetectPB = new(buffer + sizeof(EVPHeader)) FDP_FaceDetectPB(dbId, |
| | | cameraIdx + |
| | | 1); |
| | | FDP_FaceDetectPB *fdpFaceDetectPB = new(buffer + sizeof(EVPHeader)) FDP_FaceDetectPB(dbId, cameraIdx + 1); |
| | | |
| | | evpHeader->hton(); |
| | | fdpFaceDetectPB->hton(); |
| | |
| | | |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | bool Java_cn_com_basic_face_util_RtspFaceNative_telCall(JNIEnv *env, jclass clazz, jstring phone) |
| | | bool Java_cn_com_basic_face_util_RtspFaceNative_teleCall(JNIEnv *env, jclass clazz, jstring phone) |
| | | { |
| | | std::string _phone; |
| | | { |
| | | const char *utfFunc = env->GetStringUTFChars(phone, NULL); |
| | | _phone = utfFunc; |
| | | env->ReleaseStringUTFChars(phone, utfFunc); |
| | | } |
| | | |
| | | const char *phoneNum = _phone.c_str(); |
| | | TeleTask task; |
| | | task.command= TeleTask::CALL; |
| | | task.param = phoneNum; |
| | | LOG_INFO << "Java_cn_com_basic_face_util_RtspFaceNative_telCall::jni" << LOG_ENDL; |
| | | // |
| | | g_TeleWrapper.pushTask(task); |
| | | } |
| | | |
| | | void Java_cn_com_basic_face_util_RtspFaceNative_Hang(JNIEnv *env, jclass clazz) |
| | | void Java_cn_com_basic_face_util_RtspFaceNative_teleHang(JNIEnv *env, jclass clazz) |
| | | { |
| | | TeleTask task; |
| | | task.command =TeleTask::HANGUP; |
| | | // |
| | | g_TeleWrapper.pushTask(task); |
| | | } |
| | | |
| | | void Java_cn_com_basic_face_util_RtspFaceNative_TelShutdown(JNIEnv *env, jclass clazz) |
| | | void Java_cn_com_basic_face_util_RtspFaceNative_teleShutdown(JNIEnv *env, jclass clazz) |
| | | { |
| | | LOG_DEBUG << "@@@ Java_cn_com_basic_face_util_RtspFaceNative_telShutdown" << LOG_ENDL; |
| | | g_TeleWrapper.stop(); |
| | | } |
| | | |
| | | void Java_cn_com_basic_face_util_RtspFaceNative_setFaceLabel(JNIEnv *env, jclass clazz, jint cameraIdx, jint stTrackId, jstring label) |
| | |
| | | assert(cameraIdx > 0 && cameraIdx <= CAMERA_COUNT); |
| | | cameraIdx -= 1; |
| | | CameraWrapper &cameraWrapper(g_CameraWrappers[cameraIdx]); |
| | | const jchar* jchars = env->GetStringChars(label, nullptr); |
| | | std::wstring wstr; |
| | | int lenth = env->GetStringLength(label); |
| | | |
| | | const char *utfChars = env->GetStringUTFChars(label, NULL); |
| | | std::string labelstr(utfChars); |
| | | std::wstring wlabelstr; |
| | | wlabelstr.assign(labelstr.begin(),labelstr.end()); |
| | | env->ReleaseStringUTFChars(label, utfChars); |
| | | cameraWrapper.setFaceLabel(stTrackId, wlabelstr); |
| | | for (int i = 0; i < lenth; ++i) { |
| | | jchar jc = *(jchars + i); |
| | | wchar_t wt = (wchar_t)jc; |
| | | wstr.push_back(wt); |
| | | } |
| | | env->ReleaseStringChars(label,jchars); |
| | | cameraWrapper.setFaceLabel(stTrackId, wstr); |
| | | } |
| | | |
| | | } // extern C |