From d9125b1f5e3bfd1c657d75c4ef812f1202dc406d Mon Sep 17 00:00:00 2001
From: houxiao <houxiao@454eff88-639b-444f-9e54-f578c98de674>
Date: 星期一, 10 七月 2017 10:12:44 +0800
Subject: [PATCH] proto support st_track_id

---
 VisitFace/RtspNativeCodec/app/src/main/cpp/RtspNativeCodecJNI.cpp |  137 ++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 134 insertions(+), 3 deletions(-)

diff --git a/VisitFace/RtspNativeCodec/app/src/main/cpp/RtspNativeCodecJNI.cpp b/VisitFace/RtspNativeCodec/app/src/main/cpp/RtspNativeCodecJNI.cpp
index 2607ae2..902077f 100644
--- a/VisitFace/RtspNativeCodec/app/src/main/cpp/RtspNativeCodecJNI.cpp
+++ b/VisitFace/RtspNativeCodec/app/src/main/cpp/RtspNativeCodecJNI.cpp
@@ -1,5 +1,6 @@
 #include "RtspNativeCodecJNI.h"
 #include "CameraWrapper.h"
+#include "CaptureCamera.h"
 #include <logger.h>
 #include <Logger/src/logger.hpp>
 
@@ -16,7 +17,7 @@
 #include <stdlib.h>
 
 #include "DebugNetwork.h"
-
+#include "serial.h"
 //#include <mediastreamer2/include/mediastreamer2/msjava.h>
 
 std::stringstream logss;
@@ -27,6 +28,8 @@
 static std::string g_stface_license_str;
 
 CameraWrapper g_CameraWrappers[CAMERA_COUNT];
+
+CaptureCamera g_CaptureCamera;
 
 extern "C"
 {
@@ -242,7 +245,7 @@
         }
         else if (cameraWrapper.rtspConfig.rtspURL.find("/h264_2") != std::string::npos)
         {
-            w=640;h=480;
+            w=800;h=600;
         }
         else if (cameraWrapper.rtspConfig.rtspURL.find("/h264") != std::string::npos)
         {
@@ -446,7 +449,7 @@
     evpHeader->size = sizeof(EVPHeader) + sizeof(FDP_FaceDetectPB) + buffSize;
     buffSize = evpHeader->size;
 
-    FDP_FaceDetectPB* fdpFaceDetectPB = new (buffer + sizeof(EVPHeader)) FDP_FaceDetectPB(dbId);
+    FDP_FaceDetectPB* fdpFaceDetectPB = new (buffer + sizeof(EVPHeader)) FDP_FaceDetectPB(dbId, cameraIdx + 1);
 
     evpHeader->hton();
     fdpFaceDetectPB->hton();
@@ -649,4 +652,132 @@
     //LOG_ERROR << g_stface_license_str << LOG_ERROR;
 }
 
+void Java_cn_com_basic_face_util_RtspFaceNative_setCaptureSurface(JNIEnv *env, jclass clazz, jobject surfaceCapture)
+{
+    if (g_CaptureCamera.windowRender != nullptr)
+    {
+        ANativeWindow_release((ANativeWindow*)(g_CaptureCamera.windowRender));
+        g_CaptureCamera.windowRender = NULL;
+    }
+    g_CaptureCamera.windowRender = ANativeWindow_fromSurface(env, surfaceCapture);
 }
+
+bool Java_cn_com_basic_face_util_RtspFaceNative_startCapturePlayer(JNIEnv *env, jclass clazz, jstring uri)
+{
+    std::string _uri;
+    {
+        const char *utfFunc = env->GetStringUTFChars(uri, NULL);
+        _uri = utfFunc;
+        env->ReleaseStringUTFChars(uri, utfFunc);
+    }
+
+    if (_uri.empty())
+        return false;
+    if (g_CaptureCamera.windowRender == nullptr)
+        return false;
+
+    g_CaptureCamera.cameraUri = _uri;
+    return g_CaptureCamera.start();
+}
+
+void Java_cn_com_basic_face_util_RtspFaceNative_stopCapturePlayer(JNIEnv *env, jclass clazz)
+{
+
+}
+
+jobject Java_cn_com_basic_face_util_RtspFaceNative_getCaptureImages(JNIEnv* env, jclass clazz)
+{
+
+}
+
+}
+
+
+void Delay(unsigned int nDelay)
+{
+    unsigned int i,j,k;
+    for ( i=0;i<nDelay;i++ )
+        for ( j=0;j<6144;j++ )
+            k++;
+}
+
+void callNum(int fd,char 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;
+    }
+}
+
+void call(const char * phone)
+{
+    int  fd = serialOpen("/dev/ttyS1",2400);
+    serialWriteString(fd,"AA");
+    Delay(10000);
+   while (*phone)
+   {
+       Delay(10000);
+       callNum(fd,*(phone++));
+   }
+}
+
+
+char* jstringTostring(JNIEnv* env, jstring jstr)
+{
+char* rtn = NULL;
+jclass clsstring = env->FindClass("java/lang/String");
+jstring strencode = env->NewStringUTF("utf-8");
+jmethodID mid = env->GetMethodID(clsstring, "getBytes", "(Ljava/lang/String;)[B");
+jbyteArray barr= (jbyteArray)env->CallObjectMethod(jstr, mid, strencode);
+jsize alen = env->GetArrayLength(barr);
+jbyte* ba = env->GetByteArrayElements(barr, JNI_FALSE);
+if (alen > 0)
+{
+rtn = (char*)malloc(alen + 1);
+
+memcpy(rtn, ba, alen);
+rtn[alen] = 0;
+}
+env->ReleaseByteArrayElements(barr, ba, 0);
+return rtn;
+}
+
+void Java_cn_com_basic_face_util_RtspFaceNative_telCall(JNIEnv* env, jclass clazz,jstring phone)
+ {
+     call(jstringTostring(phone));
+ }
+
+ void Java_cn_com_basic_face_util_RtspFaceNative_Hang(JNIEnv* env, jclass clazz)
+ {
+       int  fd = serialOpen("/dev/ttyS1",2400);
+           serialWriteString(fd,"BA");
+ }
\ No newline at end of file

--
Gitblit v1.8.0