pans
2017-08-18 7572cd33f27b512691b6acf39cd0d78d35017a46
VisitFace/RtspNativeCodec/app/src/main/cpp/RtspNativeCodecJNIClient.cpp
@@ -39,9 +39,9 @@
const size_t _faceImagesSize = MAX_FACE * MAX_FACE_WIDTH * MAX_FACE_HEIGHT * 3;
uint8_t _faceImages[_faceImagesSize]; // android stack is small
// #todo optimize not copy data here, set data to jbyteArray directly
//Java_cn_com_basic_face_util_RtspFaceNative_getFaceList
// Y channel of YUV420p, packed in protobuf
//// #todo optimize not copy data here, set data to jbyteArray directly
////Java_cn_com_basic_face_util_RtspFaceNative_getFaceList
//// Y channel of YUV420p, packed in protobuf
static uint8_t buffer[MAX_FACE * MAX_FACE_WIDTH * MAX_FACE_HEIGHT] = {0};
static size_t buffSize = sizeof(buffer);
@@ -73,12 +73,11 @@
        //PipeLine& pipeLine(*(g_CameraWrappers[i].pipeLineDecoderDetector));
    }
    g_TeleWrapper.start();
    //pansen test Client start
    LOG_ERROR << "pansen test Client start" << std::endl;
    //capnp server start
    startRemoteServer();
    LOG_ERROR << "pansen test Client end" << std::endl;
    //pansen test Client end
}
@@ -368,29 +367,34 @@
    LOG_DEBUG << "@@@ Java_cn_com_basic_face_util_RtspFaceNative_getFaceList" << LOG_ENDL;
    assert(cameraIdx > 0 && cameraIdx <= CAMERA_COUNT);
    cameraIdx -= 1;
    if(cameraIdx <0){
        cameraIdx += 1;
    }
    CameraWrapper &cameraWrapper(g_CameraWrappers[cameraIdx]);
    // Change to Global variable
    //   uint8_t buffer[MAX_FACE * MAX_FACE_WIDTH * MAX_FACE_HEIGHT] = {0};
    //  size_t buffSize = sizeof(buffer);
    bool ret = false;
    uint8_t *pBufPB = buffer + sizeof(EVPHeader) + sizeof(FDP_FaceDetectPB);
    buffSize = sizeof(buffer) - sizeof(EVPHeader) - sizeof(FDP_FaceDetectPB);
// ps add -----8.11-----
// add -----8.11-----calling getfacelist
    try
    {
        LOG_ERROR <<"client : i want getFaceList!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"<< LOG_ENDL;
        LOG_ERROR <<"client : i want getFaceList!!!!!!!!!!!!"<< LOG_ENDL;
        RtspFaceViewClient* client = getRtspFaceViewClient();
        RtspFaceView::Client rClient = client->getEzRpcClient()->getMain<RtspFaceView>();
        //auto& waitScope =client->getEzRpcClient()->getWaitScope();
        auto& waitScope =client->getWaitScope();
        auto  request = rClient.getFaceListRequest();
        request.setCameraIndex(cameraIdx);
        request.setCameraIndex(cameraIdx+1);
        auto sendAct = request.send();
        auto  result = sendAct.wait(waitScope);
        ret = result.getFaceList().size() > 0;
        LOG_DEBUG << "@@@ getFaceList get data" << LOG_ENDL;
        LOG_DEBUG << "@@@ getFaceList get data!!!!!!!!!!!!!" << LOG_ENDL;
        memcpy(pBufPB,result.getFaceList().begin(),result.getFaceList().size());
    }
    catch (const kj::Exception& e){
@@ -402,7 +406,7 @@
        ret = false;
    }
    //-------end-------
    LOG_ERROR <<"client : i want getFaceList   end!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"<< LOG_ENDL;
    LOG_ERROR <<"client : i want getFaceList   end!!!!!!!!!!!!!"<< LOG_ENDL;
    //ret = cameraWrapper.faceCache.getFaceListPb(pBufPB, buffSize);
    if (!ret)
@@ -464,8 +468,8 @@
#ifdef USE_ST_SDK
    //#ps add --------8.11-------
    LOG_ERROR <<"client : i want getFaceImages!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"<< LOG_ENDL;
    //#ps add --------8.11------- calling getfaceimages
    LOG_ERROR <<"client : i want getFaceImages!!!!!!!!!!!!!!!!"<< LOG_ENDL;
    try
    {
        RtspFaceViewClient* client = getRtspFaceViewClient();
@@ -473,15 +477,17 @@
        auto& waitScope =client->getWaitScope();
        auto  request = rClient.getFaceImagesRequest();
        request.setCameraIndex(cameraIdx);
        request.setCameraIndex(cameraIdx+1);
        auto sendAct = request.send();
        auto result = sendAct.wait(waitScope);
        if(result.getImgIndexData().size() >0 && result.getImgData().size()>0)
        {
            ret =true;
            LOG_DEBUG << "@@@ getFaceImages  get data" << LOG_ENDL;
            LOG_DEBUG << "@@@ getFaceImages  get data!!!!!!!" << LOG_ENDL;
            memcpy(_faceImages,result.getImgData().begin(),result.getImgData().size());
            memcpy(&imgIdxes ,result.getImgIndexData().begin() ,result.getImgIndexData().size());
            imgIdxes.resize(result.getImgIndexData().size()/sizeof(NativeImgIdx));
            memcpy(imgIdxes.data() ,result.getImgIndexData().begin() ,result.getImgIndexData().size());
        }
    }
    catch (const kj::Exception& e)
@@ -490,9 +496,9 @@
        ret = false;
        LOG_ERROR << "Java_cn_com_basic_face_util_RtspFaceNative_getFaceImages try fail" << LOG_ENDL;
    }
    LOG_ERROR <<"client : i want getFaceImages    end!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"<< LOG_ENDL;
    LOG_ERROR <<"client : i want getFaceImages    end!!!!!!!!!!!!!!!!!"<< LOG_ENDL;
    //-------end-------
    ret = cameraWrapper.faceCache.getFaceListImage(imgIdxes, _faceImages, _faceImagesSize);
    //ret = cameraWrapper.faceCache.getFaceListImage(imgIdxes, _faceImages, _faceImagesSize);
#endif
    if (imgIdxes.size() == 0)
@@ -664,13 +670,12 @@
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;
    LOG_ERROR <<"ps ------------start"<< 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;
    LOG_ERROR <<"ps ------------4"<< LOG_ENDL;
    int lenth = env->GetStringLength(label);
    for (int i = 0; i < lenth; ++i) {
@@ -681,8 +686,8 @@
    env->ReleaseStringChars(label,jchars);
    // ps add ------8.11---------
    LOG_ERROR <<"client : i want setFacelable!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"<< LOG_ENDL;
    // ps add ------8.11--------- calling setfacelable
    LOG_ERROR <<"client : i want setFacelable!!!!!!!"<< LOG_ENDL;
    try
    {
//        auto& waitScope = getRtspFaceViewClient()->getWaitScope();
@@ -694,12 +699,17 @@
        auto  request = rClient.setFaceLabelRequest();
        request.setCameraIndex(cameraIdx);
        const capnp::Data::Builder &labelData = request.initLabel(wstr.size());
        LOG_ERROR <<"ps ------------3"<< LOG_ENDL;
        memcpy((char*)labelData.begin(), wstr.c_str(), wstr.size());
        request.setLabel(labelData);
        auto labelData = request.initLabel(wstr.size()*4);
        char temp[100];char temp1[100];
        memcpy(labelData.begin(), wstr.c_str(), wstr.size()*4);
        memcpy(temp, labelData.begin(), wstr.size()*4);
        memcpy(temp1, request.getLabel().begin(), wstr.size()*4);
        request.setTrackId(stTrackId);
        LOG_ERROR <<"ps ------------2"<< LOG_ENDL;
        const std::wstring &string = std::wstring((wchar_t*)labelData.begin());
        auto sendAct = request.send();
        sendAct.wait(waitScope);
    }
@@ -708,9 +718,8 @@
        std::cout << e.getDescription().cStr() << std::endl;
        return;
    }
    LOG_ERROR <<"client : i want setFacelable   end!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"<< LOG_ENDL;
    LOG_ERROR <<"client : i want setFacelable   end!!!!!!!!!!!!!!"<< LOG_ENDL;
    //-------end-------
    //cameraWrapper.setFaceLabel(stTrackId, wstr);
}
} // extern C