From 514795c44cbad68fe213c5f00c902d370464c022 Mon Sep 17 00:00:00 2001 From: houxiao <houxiao@454eff88-639b-444f-9e54-f578c98de674> Date: 星期一, 24 七月 2017 20:18:21 +0800 Subject: [PATCH] add panshen TeleWrapper --- VisitFace/RtspNativeCodec/app/src/main/cpp/RtspNativeCodecJNI.cpp | 145 ++++++++++++++++++++--------------------------- 1 files changed, 62 insertions(+), 83 deletions(-) diff --git a/VisitFace/RtspNativeCodec/app/src/main/cpp/RtspNativeCodecJNI.cpp b/VisitFace/RtspNativeCodec/app/src/main/cpp/RtspNativeCodecJNI.cpp index d25de07..b0bb8e1 100644 --- a/VisitFace/RtspNativeCodec/app/src/main/cpp/RtspNativeCodecJNI.cpp +++ b/VisitFace/RtspNativeCodec/app/src/main/cpp/RtspNativeCodecJNI.cpp @@ -17,12 +17,9 @@ #include <stdlib.h> #include "DebugNetwork.h" +#include "TeleWrapper.h" - -extern "C" -{ -#include "serial.h" -} +#include "cpu_sched_test.h" //#include <mediastreamer2/include/mediastreamer2/msjava.h> @@ -37,12 +34,16 @@ CaptureCamera g_CaptureCamera; +TeleWrapper g_TeleWrapper; + extern "C" { void Java_cn_com_basic_face_util_RtspFaceNative_init(JNIEnv *env, jclass clazz) { g_logger.set_level(INFO); + + cpu_sched(); #ifdef USE_ST_SDK PipeLine::register_global_elem_creator("PL_SensetimeFaceTrack", create_PL_SensetimeFaceTrack); @@ -189,16 +190,14 @@ 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); @@ -224,6 +223,22 @@ 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); } @@ -303,7 +318,8 @@ cameraWrapper.asvrConfig.outputOriginFrame = true; cameraWrapper.asvrConfig.outputRenderFrame = true; cameraWrapper.asvrConfig.scaleToWidth = 0; - cameraWrapper.asvrConfig.scaleToHeight = 0; + cameraWrapper.asvrConfig.scaleToHeight = 0; + cameraWrapper.asvrConfig.directlyDisplay = true; } { @@ -322,7 +338,9 @@ cameraWrapper.sftConfig.score_min = 0.2f; } - bool ret = cameraWrapper.initPl(); + cameraWrapper.fontPath = "/data/msyh.ttc"; + + bool ret = cameraWrapper.initPl(); if (ret) return (cameraWrapper.start() ? JNI_TRUE : JNI_FALSE); else @@ -337,7 +355,7 @@ assert(cameraIdx > 0 && cameraIdx <= CAMERA_COUNT); cameraIdx -= 1; - CameraWrapper &cameraWrapper(g_CameraWrappers[cameraIdx]); + CameraWrapper& cameraWrapper(g_CameraWrappers[cameraIdx]); cameraWrapper.stop(); } @@ -481,9 +499,7 @@ 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(); @@ -736,88 +752,51 @@ } -static void callNum(int fd, char phone) +bool Java_cn_com_basic_face_util_RtspFaceNative_teleCall(JNIEnv *env, jclass clazz, jstring phone) { - switch (phone) - { - case '1': - serialWriteString(fd, "DA");//1 - break; - case '2': - serialWriteString(fd, "DB");//2 - break; - case '3': - serialWriteString(fd, "DC");//3 - break; - case '4': - serialWriteString(fd, "DD");//4 - break; - case '5': - serialWriteString(fd, "DE");//5 - break; - case '6': - serialWriteString(fd, "DF");//6 - break; - case '7': - serialWriteString(fd, "DG");//7 - break; - case '8': - serialWriteString(fd, "DH");//8 - break; - case '9': - serialWriteString(fd, "DI");//9 - break; - case '0': - serialWriteString(fd, "DJ");//0 - break; - } + 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); } -bool Java_cn_com_basic_face_util_RtspFaceNative_telCall(JNIEnv *env, jclass clazz, jstring phone) +void Java_cn_com_basic_face_util_RtspFaceNative_teleHang(JNIEnv *env, jclass clazz) { - int fd = serialOpen("/dev/ttyS4", 2400); - serialWriteString(fd, "AA"); - sleep(1); - - std::string _phone; - { - const char *utfFunc = env->GetStringUTFChars(phone, NULL); - _phone = utfFunc; - env->ReleaseStringUTFChars(phone, utfFunc); - } - - const char *phoneNum = _phone.c_str(); - - while (*phoneNum) - { - sleep(1); - callNum(fd, *(phoneNum++)); - } - - return false; + TeleTask task; + task.command =TeleTask::HANGUP; + // + 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_teleShutdown(JNIEnv *env, jclass clazz) { - int fd = serialOpen("/dev/ttyS4", 2400); - serialWriteString(fd, "BA"); + 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 phoneNumber) +void Java_cn_com_basic_face_util_RtspFaceNative_setFaceLabel(JNIEnv *env, jclass clazz, jint cameraIdx, jint stTrackId, jstring label) { LOG_DEBUG << "@@@ Java_cn_com_basic_face_util_RtspFaceNative_setFaceLabel" << LOG_ENDL; assert(cameraIdx > 0 && cameraIdx <= CAMERA_COUNT); cameraIdx -= 1; CameraWrapper &cameraWrapper(g_CameraWrappers[cameraIdx]); - std::string _phoneNumber; - { - const char *utfFunc = env->GetStringUTFChars(phoneNumber, NULL); - _phoneNumber = utfFunc; - env->ReleaseStringUTFChars(phoneNumber, utfFunc); - } - - cameraWrapper.setFaceLabel(stTrackId, _phoneNumber); + 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); } } // extern C -- Gitblit v1.8.0