xuxiuxi
2017-07-23 94e704acde59df60bd42f6f90b94d462d1bfa37c
VisitFace/RtspNativeCodec/app/src/main/cpp/RtspNativeCodecJNI.cpp
@@ -18,11 +18,7 @@
#include "DebugNetwork.h"
extern "C"
{
#include "serial.h"
}
#include "cpu_sched_test.h"
//#include <mediastreamer2/include/mediastreamer2/msjava.h>
@@ -43,6 +39,8 @@
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 +187,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);
@@ -337,7 +333,7 @@
    assert(cameraIdx > 0 && cameraIdx <= CAMERA_COUNT);
    cameraIdx -= 1;
    CameraWrapper &cameraWrapper(g_CameraWrappers[cameraIdx]);
    CameraWrapper& cameraWrapper(g_CameraWrappers[cameraIdx]);
    cameraWrapper.stop();
}
@@ -481,9 +477,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 +730,19 @@
}
static 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;
    }
}
bool Java_cn_com_basic_face_util_RtspFaceNative_telCall(JNIEnv *env, jclass clazz, jstring phone)
{
    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;
}
void Java_cn_com_basic_face_util_RtspFaceNative_Hang(JNIEnv *env, jclass clazz)
{
    int fd = serialOpen("/dev/ttyS4", 2400);
    serialWriteString(fd, "BA");
}
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