From 5cf652629fb40796cd2e0ab17c3617ed52365473 Mon Sep 17 00:00:00 2001 From: pans <pans@454eff88-639b-444f-9e54-f578c98de674> Date: 星期五, 18 八月 2017 10:32:05 +0800 Subject: [PATCH] capnp client fix bug --- VisitFace/RtspNativeCodec/app/src/main/cpp/RtspNativeCodecJNIClient.cpp | 71 ++++++++++++++++++++--------------- 1 files changed, 40 insertions(+), 31 deletions(-) diff --git a/VisitFace/RtspNativeCodec/app/src/main/cpp/RtspNativeCodecJNIClient.cpp b/VisitFace/RtspNativeCodec/app/src/main/cpp/RtspNativeCodecJNIClient.cpp index ae204ec..afffcb8 100644 --- a/VisitFace/RtspNativeCodec/app/src/main/cpp/RtspNativeCodecJNIClient.cpp +++ b/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 -- Gitblit v1.8.0