pans
2017-08-16 e473f9eeb0233afcbd38de5de975dea4d131026d
VisitFace/RtspNativeCodec/app/src/main/cpp/RtspNativeCodecJNIClient.cpp
@@ -39,17 +39,24 @@
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
static uint8_t buffer[MAX_FACE * MAX_FACE_WIDTH * MAX_FACE_HEIGHT] = {0};
static size_t buffSize = sizeof(buffer);
void remoteFireFaceCountListener(const RtspFaceDetect::FireFaceCountListenerParams::Reader& params, RtspFaceDetect::FireFaceCountListenerResults::Builder& results){
    int count = params.getFaceCount();
    int index = params.getCameraIndex();
    g_CameraWrappers[index].fireFaceCount(count);
    LOG_INFO <<count<< "+" << index<< LOG_ENDL;
    g_CameraWrappers[index - 1].fireFaceCount(count);
}
extern "C"
{
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();
@@ -363,10 +370,7 @@
    cameraIdx -= 1;
    CameraWrapper &cameraWrapper(g_CameraWrappers[cameraIdx]);
    // #todo optimize not copy data here, set data to jbyteArray directly
    // Y channel of YUV420p, packed in protobuf
    uint8_t buffer[MAX_FACE * MAX_FACE_WIDTH * MAX_FACE_HEIGHT] = {0};
    size_t buffSize = sizeof(buffer);
    bool ret = false;
@@ -379,21 +383,24 @@
        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);
        auto sendAct = request.send();
        auto  result =sendAct.wait(waitScope);
        auto  result = sendAct.wait(waitScope);
        ret = result.getFaceList().size() > 0;
        LOG_DEBUG << "@@@ getFaceList get data" << LOG_ENDL;
        memcpy(pBufPB,result.getFaceList().begin(),buffSize);
        memcpy(pBufPB,result.getFaceList().begin(),result.getFaceList().size());
    }
    catch (const kj::Exception& e)
    {
    catch (const kj::Exception& e){
        LOG_ERROR <<e.getDescription().cStr()<< LOG_ENDL;
        ret = false;
    }
    catch (...)
    {
        ret = false;
    }
    //-------end-------
    LOG_ERROR <<"client : i want getFaceList   end!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"<< LOG_ENDL;
    //ret = cameraWrapper.faceCache.getFaceListPb(pBufPB, buffSize);