pans
2017-08-18 7572cd33f27b512691b6acf39cd0d78d35017a46
VisitFace/RtspNativeCodec/app/src/main/cpp/RtspNativeCodecJNIServer.cpp
@@ -20,6 +20,7 @@
#include "TeleWrapper.h"
#include "cpu_sched_test.h"
#include "RemoteFuncServer.h"
//#include <mediastreamer2/include/mediastreamer2/msjava.h>
@@ -38,7 +39,8 @@
const size_t _faceImagesSize = MAX_FACE * MAX_FACE_WIDTH * MAX_FACE_HEIGHT * 3;
uint8_t _faceImages[_faceImagesSize]; // android stack is small
const size_t  _faceListBufferSize = sizeof(MAX_FACE * MAX_FACE_WIDTH * MAX_FACE_HEIGHT*3);
//const size_t  _faceListBufferSize = sizeof(MAX_FACE * MAX_FACE_WIDTH * MAX_FACE_HEIGHT*3);
const size_t  _faceListBufferSize = MAX_FACE * MAX_FACE_WIDTH * MAX_FACE_HEIGHT*3;
uint8_t faceListBuffer[_faceListBufferSize] = {0};
void remoteGetFaceListImage(const RtspFaceView::GetFaceImagesParams::Reader& params, RtspFaceView::GetFaceImagesResults::Builder& results){
@@ -49,7 +51,7 @@
    memset(_faceImages, 0, _faceImagesSize);
    bool ret = cameraWrapper.faceCache.getFaceListImage(imgIdxes, _faceImages, faceImagesSize);
    if (imgIdxes.size() == 0){
        LOG_INFO << "No face image captured" << LOG_ENDL;
        LOG_INFO << "No face image captured!!!!!" << LOG_ENDL;
        return;
    }
    int imgIdxesSize = imgIdxes.size() * sizeof(NativeImgIdx);
@@ -57,9 +59,13 @@
    memcpy(imgIndexData.begin(), imgIdxes.data(), imgIdxesSize);
    auto imgData = results.initImgData(_faceImagesSize);
    memcpy(imgData.begin(), _faceImages, _faceImagesSize);
    results.setImgData(imgData);
    results.setImgIndexData(imgIndexData);
    LOG_ERROR <<"c++ server : remoteGetFaceListImage!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"<< LOG_ENDL;
}
void remoteGetFaceList(const RtspFaceView::GetFaceListParams::Reader& params, RtspFaceView::GetFaceListResults::Builder& results){
    const int cameraIdx = params.getCameraIndex() - 1;
    CameraWrapper& cameraWrapper(g_CameraWrappers[cameraIdx]);
    uint8_t *pBufPB = faceListBuffer + sizeof(EVPHeader) + sizeof(FDP_FaceDetectPB);
@@ -67,11 +73,13 @@
    cameraWrapper.faceCache.getFaceListPb(pBufPB, faceListBufferSize);
    auto buffer = results.initFaceList(faceListBufferSize);
    memcpy(buffer.begin(), pBufPB, faceListBufferSize);
    results.setFaceList(buffer);
}
void remoteSetFaceLabel(const RtspFaceView::SetFaceLabelParams::Reader& params, RtspFaceView::SetFaceLabelResults::Builder& results){
    const int cameraIdx = params.getCameraIndex() - 1;
    CameraWrapper& cameraWrapper(g_CameraWrappers[cameraIdx]);
    LOG_DEBUG<<"!!!!lable"<< params.toString().flatten().cStr() <<LOG_ENDL;
    cameraWrapper.setFaceLabel(params.getTrackId(),std::wstring((wchar_t*)params.getLabel().begin()));
}
@@ -80,7 +88,7 @@
void Java_cn_com_basic_face_util_RtspFaceNative_init(JNIEnv *env, jclass clazz)
{
    g_logger.set_level(INFO);
    g_logger.set_level(VERBOSE);
    cpu_sched();
@@ -98,6 +106,9 @@
    }
    g_TeleWrapper.start();
    startRemoteServer();
    LOG_ERROR << "@@@ this is test Server end" << LOG_ENDL;
}
void
@@ -358,8 +369,8 @@
        cameraWrapper.asvrConfig.outputOriginFrame = true;
        cameraWrapper.asvrConfig.outputRenderFrame = true;
        cameraWrapper.asvrConfig.scaleToWidth = 0;
      cameraWrapper.asvrConfig.scaleToHeight = 0;
      cameraWrapper.asvrConfig.directlyDisplay = true;
        cameraWrapper.asvrConfig.scaleToHeight = 0;
        cameraWrapper.asvrConfig.directlyDisplay = true;
    }
    {
@@ -378,9 +389,9 @@
        cameraWrapper.sftConfig.score_min = 0.4f;
    }
   cameraWrapper.fontPath = "/data/msyh.ttc";
    cameraWrapper.fontPath = "/data/msyh.ttc";
   bool ret = cameraWrapper.initPl();
    bool ret = cameraWrapper.initPl();
    if (ret)
        return (cameraWrapper.start() ? JNI_TRUE : JNI_FALSE);
    else
@@ -598,33 +609,38 @@
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);
   }
    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);
    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);
    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();
    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)
{
}
} // extern C