From afcb649c8a2785c6095be5762c6077f9e15afd1a Mon Sep 17 00:00:00 2001
From: houxiao <houxiao@454eff88-639b-444f-9e54-f578c98de674>
Date: 星期三, 02 八月 2017 10:33:31 +0800
Subject: [PATCH] c++ dupl image

---
 VisitFace/RtspNativeCodec/app/src/main/cpp/RtspNativeCodecJNI.cpp |  162 +++++++++++++++++++++++------------------------------
 1 files changed, 70 insertions(+), 92 deletions(-)

diff --git a/VisitFace/RtspNativeCodec/app/src/main/cpp/RtspNativeCodecJNI.cpp b/VisitFace/RtspNativeCodec/app/src/main/cpp/RtspNativeCodecJNI.cpp
index 797c337..177b924 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,6 +34,8 @@
 
 CaptureCamera g_CaptureCamera;
 
+TeleWrapper g_TeleWrapper;
+
 extern "C"
 {
 
@@ -44,8 +43,10 @@
 {
     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++)
@@ -57,6 +58,8 @@
         g_CameraWrappers[i].pipeLineRender = new PipeLine;
         //PipeLine& pipeLine(*(g_CameraWrappers[i].pipeLineDecoderDetector));
     }
+
+    g_TeleWrapper.start();
 }
 
 void
@@ -189,16 +192,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 +225,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 +320,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;
     }
 
     {
@@ -318,11 +336,13 @@
         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
@@ -337,7 +357,7 @@
     assert(cameraIdx > 0 && cameraIdx <= CAMERA_COUNT);
     cameraIdx -= 1;
 
-    CameraWrapper &cameraWrapper(g_CameraWrappers[cameraIdx]);
+    CameraWrapper& cameraWrapper(g_CameraWrappers[cameraIdx]);
     cameraWrapper.stop();
 }
 
@@ -481,9 +501,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,94 +754,54 @@
 
 }
 
-int  fd =-1;
-#define PORT  "/dev/ttyS4"
-#define  BAUD 2400
-
-
-static void callNum(  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(PORT, BAUD);
-    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(*(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)
 {
-
-    serialWriteString(fd, "BA");
-    serialClose(fd);
+	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]);
+    const jchar* jchars = env->GetStringChars(label, nullptr);
+    std::wstring wstr;
+    int lenth = env->GetStringLength(label);
 
-    std::string _phoneNumber;
-    {
-        const char *utfFunc = env->GetStringUTFChars(phoneNumber, NULL);
-        _phoneNumber = utfFunc;
-        env->ReleaseStringUTFChars(phoneNumber, utfFunc);
+    for (int i = 0; i < lenth; ++i) {
+        jchar jc = *(jchars + i);
+        wchar_t wt = (wchar_t)jc;
+        wstr.push_back(wt);
     }
-
-    cameraWrapper.setFaceLabel(stTrackId, _phoneNumber);
+    env->ReleaseStringChars(label,jchars);
+    cameraWrapper.setFaceLabel(stTrackId, wstr);
 }
-
 } // extern C

--
Gitblit v1.8.0