From d81a5dd7415707137147ab6490162322df6f6363 Mon Sep 17 00:00:00 2001
From: xuxiuxi <xuxiuxi@454eff88-639b-444f-9e54-f578c98de674>
Date: 星期五, 28 七月 2017 13:49:09 +0800
Subject: [PATCH]
---
VisitFace/RtspNativeCodec/app/src/main/cpp/RtspNativeCodecJNI.cpp | 80 +++++++++++++++++++++++++++++++++++-----
1 files changed, 70 insertions(+), 10 deletions(-)
diff --git a/VisitFace/RtspNativeCodec/app/src/main/cpp/RtspNativeCodecJNI.cpp b/VisitFace/RtspNativeCodec/app/src/main/cpp/RtspNativeCodecJNI.cpp
index 3174a0b..540437c 100644
--- a/VisitFace/RtspNativeCodec/app/src/main/cpp/RtspNativeCodecJNI.cpp
+++ b/VisitFace/RtspNativeCodec/app/src/main/cpp/RtspNativeCodecJNI.cpp
@@ -15,8 +15,10 @@
#include <face_daemon_proto.h>
#include <stdlib.h>
+#include <endian.h>
#include "DebugNetwork.h"
+#include "TeleWrapper.h"
#include "cpu_sched_test.h"
@@ -33,6 +35,8 @@
CaptureCamera g_CaptureCamera;
+TeleWrapper g_TeleWrapper;
+
extern "C"
{
@@ -43,7 +47,7 @@
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++)
@@ -55,6 +59,8 @@
g_CameraWrappers[i].pipeLineRender = new PipeLine;
//PipeLine& pipeLine(*(g_CameraWrappers[i].pipeLineDecoderDetector));
}
+
+ g_TeleWrapper.start();
}
void
@@ -221,6 +227,22 @@
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);
}
@@ -299,7 +321,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,7 +341,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
@@ -730,19 +755,54 @@
}
+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_teleHang(JNIEnv *env, jclass clazz)
+{
+ TeleTask task;
+ task.command =TeleTask::HANGUP;
+ //
+ g_TeleWrapper.pushTask(task);
+}
+
+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)
{
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);
- 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
--
Gitblit v1.8.0