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 | 90 ++++++++++++++++++++++++++------------------
1 files changed, 53 insertions(+), 37 deletions(-)
diff --git a/VisitFace/RtspNativeCodec/app/src/main/cpp/RtspNativeCodecJNIClient.cpp b/VisitFace/RtspNativeCodec/app/src/main/cpp/RtspNativeCodecJNIClient.cpp
index 474f89b..afffcb8 100644
--- a/VisitFace/RtspNativeCodec/app/src/main/cpp/RtspNativeCodecJNIClient.cpp
+++ b/VisitFace/RtspNativeCodec/app/src/main/cpp/RtspNativeCodecJNIClient.cpp
@@ -39,10 +39,17 @@
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"
{
@@ -66,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
}
@@ -361,41 +367,46 @@
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]);
- // #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);
+ // 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);
+ auto result = sendAct.wait(waitScope);
ret = result.getFaceList().size() > 0;
- LOG_DEBUG << "@@@ getFaceList get data" << LOG_ENDL;
- memcpy(pBufPB,result.getFaceList().begin(),buffSize);
+ LOG_DEBUG << "@@@ getFaceList get data!!!!!!!!!!!!!" << LOG_ENDL;
+ 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;
+ LOG_ERROR <<"client : i want getFaceList end!!!!!!!!!!!!!"<< LOG_ENDL;
//ret = cameraWrapper.faceCache.getFaceListPb(pBufPB, buffSize);
if (!ret)
@@ -457,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();
@@ -466,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)
@@ -483,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)
@@ -657,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) {
@@ -674,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();
@@ -687,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);
}
@@ -701,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