From 0571f31b167fd019924c9e400954f007d0903ce0 Mon Sep 17 00:00:00 2001 From: houxiao <houxiao@454eff88-639b-444f-9e54-f578c98de674> Date: 星期三, 18 一月 2017 16:13:05 +0800 Subject: [PATCH] fix for compile --- RtspFace/make.sh | 15 +++- RtspFace/ev_server.cpp | 4 + RtspFace/ev_server.h | 2 RtspFace/main_face_daemon.cpp | 7 +- RtspFace/main.cpp | 76 ++++++++++++------------ RtspFace/SensetimeFaceAPIWrapper/src/FaceDBPool.cpp | 10 +- RtspFace/SensetimeFaceAPIWrapper/src/FaceDBPool.h | 4 RtspFace/PL_SensetimeFaceDetect.h | 4 RtspFace/PL_SensetimeFaceDetect.cpp | 13 ++-- 9 files changed, 74 insertions(+), 61 deletions(-) diff --git a/RtspFace/PL_SensetimeFaceDetect.cpp b/RtspFace/PL_SensetimeFaceDetect.cpp index 3707b9f..ceae262 100644 --- a/RtspFace/PL_SensetimeFaceDetect.cpp +++ b/RtspFace/PL_SensetimeFaceDetect.cpp @@ -3,6 +3,7 @@ #include "logger.h" #include "SensetimeFaceAPIWrapper/src/FaceDBPool.h" +#include "SensetimeFaceAPIWrapper/src/faceAPI.h" #include <opencv2/opencv.hpp> #include <cv_face.h> @@ -94,10 +95,10 @@ return false; } - faceAPI* _faceAPI = (faceAPI*)frame->_faceAPI; - if (_faceAPI == nullptr) + FaceDB* _faceDB = (FaceDB*)frame->_faceDB; + if (_faceDB == nullptr) { - LOG_ERROR << "faceAPI is null"; + LOG_ERROR << "FaceDB is null"; return false; } @@ -109,9 +110,9 @@ } cv::Mat yuvMat(cv::Size(frame->width,frame->height), CV_8UC3, frame->buffer); - //cv_feature_t* feature = _faceAPI->extract_feature(yuvMat); - //in->lastResult.st_id = _faceAPI->search_db(feature); - in->lastResult.st_id = _faceAPI->do_reasch(yuvMat); + cv_feature_t* feature = _faceDB->extract_feature(yuvMat); + in->lastResult.st_id = _faceDB->search_db(feature); + //in->lastResult.st_id = _faceDB->do_reasch(yuvMat); //#todo release feature in->lastResult.school_id = frame->school_id; diff --git a/RtspFace/PL_SensetimeFaceDetect.h b/RtspFace/PL_SensetimeFaceDetect.h index 8454ad7..7a3fd0c 100644 --- a/RtspFace/PL_SensetimeFaceDetect.h +++ b/RtspFace/PL_SensetimeFaceDetect.h @@ -8,9 +8,9 @@ struct SensetimeFaceDetectDbFrame : public MB_Frame { int school_id; - void* _faceAPI; + void* _faceDB; - SensetimeFaceDetectDbFrame() : MB_Frame(), school_id(-1), _faceAPI(nullptr) + SensetimeFaceDetectDbFrame() : MB_Frame(), school_id(-1), _faceDB(nullptr) { } }; diff --git a/RtspFace/SensetimeFaceAPIWrapper/src/FaceDBPool.cpp b/RtspFace/SensetimeFaceAPIWrapper/src/FaceDBPool.cpp index 147d4e1..1f87a5c 100644 --- a/RtspFace/SensetimeFaceAPIWrapper/src/FaceDBPool.cpp +++ b/RtspFace/SensetimeFaceAPIWrapper/src/FaceDBPool.cpp @@ -40,7 +40,7 @@ { int dbid; pthread_mutex_t db_mutex; - faceAPI* api; + FaceDB* api; ThreadSafeFaceDB() : dbid(-1), db_mutex(), api(nullptr) { @@ -69,7 +69,7 @@ facedb_map_t* _face_db_map = (facedb_map_t*)face_db_map; for (facedb_map_t::iterator iter = _face_db_map->begin(); iter != _face_db_map->end(); ++iter) { - iter->second->api->db_save(); + iter->second->api->finally(); delete iter->second->api; delete iter->second; } @@ -81,7 +81,7 @@ pool_mutex = nullptr; } -void FaceDBPool::manage(int dbid, faceAPI* db) +void FaceDBPool::manage(int dbid, FaceDB* db) { if (dbid < 0 || db == nullptr) return; @@ -109,14 +109,14 @@ if (iter == _face_db_map->end()) return; - iter->second->api->db_save(); + iter->second->api->finally(); delete iter->second->api; delete iter->second; _face_db_map->erase(iter); } -faceAPI* FaceDBPool::get_free(int dbid) +FaceDB* FaceDBPool::get_free(int dbid) { ThreadSafeFaceDB* tsfdb = nullptr; { diff --git a/RtspFace/SensetimeFaceAPIWrapper/src/FaceDBPool.h b/RtspFace/SensetimeFaceAPIWrapper/src/FaceDBPool.h index dea0b55..f56c5a3 100644 --- a/RtspFace/SensetimeFaceAPIWrapper/src/FaceDBPool.h +++ b/RtspFace/SensetimeFaceAPIWrapper/src/FaceDBPool.h @@ -9,10 +9,10 @@ FaceDBPool(); ~FaceDBPool(); - void manage(int dbid, faceAPI* db); + void manage(int dbid, FaceDB* db); void unmanage(int dbid); - faceAPI* get_free(int dbid); + FaceDB* get_free(int dbid); void release(int dbid); bool wait_free() { return true; } diff --git a/RtspFace/ev_server.cpp b/RtspFace/ev_server.cpp index a6367c1..87f4294 100644 --- a/RtspFace/ev_server.cpp +++ b/RtspFace/ev_server.cpp @@ -42,6 +42,10 @@ { } }; +#ifndef USER_DEFINE_EVCLIENT_PROC +evclient_proc_t evclient_proc = nullptr; +#endif + // Set a socket to non-blocking mode. static int setnonblock(int fd) { diff --git a/RtspFace/ev_server.h b/RtspFace/ev_server.h index aab56d0..75749b5 100644 --- a/RtspFace/ev_server.h +++ b/RtspFace/ev_server.h @@ -38,6 +38,8 @@ typedef bool (*evclient_proc_t)(EVClientStub& client); extern evclient_proc_t evclient_proc; +//#define USER_DEFINE_EVCLIENT_PROC + int server_main(int argc, char **argv); void ev_send_packet(EVClientStub& client); diff --git a/RtspFace/main.cpp b/RtspFace/main.cpp index f900b8e..8d2d693 100644 --- a/RtspFace/main.cpp +++ b/RtspFace/main.cpp @@ -71,25 +71,25 @@ } } - { - PL_Scale_Config config; - config.toWidth = 800; - config.toHeight = 600; - PL_Scale* ple = (PL_Scale*)pipeLine.push_elem("PL_Scale"); - bool ret = ple->init(&config); - if (!ret) - { - LOG_ERROR << "PL_Scale.init error"; - exit(EXIT_FAILURE); - } - } + //{ + // PL_Scale_Config config; + // config.toWidth = 800; + // config.toHeight = 600; + // PL_Scale* ple = (PL_Scale*)pipeLine.push_elem("PL_Scale"); + // bool ret = ple->init(&config); + // if (!ret) + // { + // LOG_ERROR << "PL_Scale.init error"; + // exit(EXIT_FAILURE); + // } + //} - { - SensetimeFaceTrackConfig config; - //config.generate_face_feature = true; - PL_SensetimeFaceTrack* ple = (PL_SensetimeFaceTrack*)pipeLine.push_elem("PL_SensetimeFaceTrack"); - ple->init(&config); - } + //{ + // SensetimeFaceTrackConfig config; + // //config.generate_face_feature = true; + // PL_SensetimeFaceTrack* ple = (PL_SensetimeFaceTrack*)pipeLine.push_elem("PL_SensetimeFaceTrack"); + // ple->init(&config); + //} //PipeLine pipeLine2; //{ @@ -124,26 +124,26 @@ // } //} - { - PL_H264Encoder_Config config; - PL_H264Encoder* h264Encoder = (PL_H264Encoder*)pipeLine.push_elem("PL_H264Encoder"); - bool ret = h264Encoder->init(&config); - if (!ret) - { - LOG_ERROR << "PL_H264Encoder.init error"; - exit(EXIT_FAILURE); - } - } - - { - PL_RTSPServer* rtspServer = (PL_RTSPServer*)pipeLine.push_elem("PL_RTSPServer"); - bool ret = rtspServer->init(nullptr); - if (!ret) - { - LOG_ERROR << "rtspServer.init error"; - exit(EXIT_FAILURE); - } - } + //{ + // PL_H264Encoder_Config config; + // PL_H264Encoder* h264Encoder = (PL_H264Encoder*)pipeLine.push_elem("PL_H264Encoder"); + // bool ret = h264Encoder->init(&config); + // if (!ret) + // { + // LOG_ERROR << "PL_H264Encoder.init error"; + // exit(EXIT_FAILURE); + // } + //} + // + //{ + // PL_RTSPServer* rtspServer = (PL_RTSPServer*)pipeLine.push_elem("PL_RTSPServer"); + // bool ret = rtspServer->init(nullptr); + // if (!ret) + // { + // LOG_ERROR << "rtspServer.init error"; + // exit(EXIT_FAILURE); + // } + //} while(true) { diff --git a/RtspFace/main_face_daemon.cpp b/RtspFace/main_face_daemon.cpp index b614719..2867f70 100644 --- a/RtspFace/main_face_daemon.cpp +++ b/RtspFace/main_face_daemon.cpp @@ -22,6 +22,7 @@ #include "face_daemon_proto.h" #include "SensetimeFaceAPIWrapper/src/FaceDBPool.h" +#include "SensetimeFaceAPIWrapper/src/faceAPI.h" #include "logger.h" @@ -102,8 +103,8 @@ FDP_Image* fdpImage = (FDP_Image*)(client.recvBuff + sizeof(EVPHeader)); - faceAPI* _faceAPI = g_faceAPIPool.get_free(fdpImage->school_id); - if (_faceAPI == nullptr) + FaceDB* _faceDB = g_faceAPIPool.get_free(fdpImage->school_id); + if (_faceDB == nullptr) { LOG_WARN << "can't get face db"; ev_send_status_packet(client, EVPStatus::EVPS_PARAMETER_ERROR); @@ -132,7 +133,7 @@ dbFrame.width = fdpImage->width; dbFrame.height = fdpImage->height; dbFrame.school_id = fdpImage->school_id; - dbFrame._faceAPI = _faceAPI; + dbFrame._faceDB = _faceDB; PipeMaterial pm; pm.type = PipeMaterial::PMT_FRAME; diff --git a/RtspFace/make.sh b/RtspFace/make.sh index 68552da..ac8fc5d 100644 --- a/RtspFace/make.sh +++ b/RtspFace/make.sh @@ -38,17 +38,21 @@ LIBLOG4CPP_LIB="-L$LIBLOG4CPP_BASE/lib -llog4cpp" # -O3 -CPPFLAGS+="-g -mavx -c -std=c++11 -pthread $LIVEMEDIA_INC $FFMPEG_INC $LIBBASE64_INC $LIBYUV_INC $SENSETIMEFACESDK_INC $LIBLOG4CPP_INC $DLIB_INC" -LDFLAGS+="-pthread -levent $LIVEMEDIA_LIB $FFMPEG_LIB $LIBBASE64_LIB $LIBYUV_LIB $LIBX264_LIB $SENSETIMEFACESDK_LIB $OPENCV_LIB $LIBLOG4CPP_LIB $DLIB_LIB" +CPPFLAGS+="-g -mavx -c -std=c++11 -pthread $LIVEMEDIA_INC $FFMPEG_INC $LIBBASE64_INC $LIBYUV_INC $SENSETIMEFACESDK_INC $LIBLOG4CPP_INC $DLIB_INC " +LDFLAGS+="-pthread -levent $LIVEMEDIA_LIB $FFMPEG_LIB $LIBBASE64_LIB $LIBYUV_LIB $LIBX264_LIB $SENSETIMEFACESDK_LIB $OPENCV_LIB $LIBLOG4CPP_LIB $DLIB_LIB " CFLAGS+="-D__STDC_CONSTANT_MACROS" rm rtsp_face rm *.o -#g++ main.cpp $CFLAGS $CPPFLAGS -o main.o +g++ main.cpp $CFLAGS $CPPFLAGS -o main.o + #g++ main_dump_st_face.cpp $CFLAGS $CPPFLAGS -o main.o -g++ main_face_daemon.cpp $CFLAGS $CPPFLAGS -o main.o + +#CPPFLAGS+="-DUSER_DEFINE_EVCLIENT_PROC " +#g++ main_face_daemon.cpp $CFLAGS $CPPFLAGS -o main.o + g++ ev_server.cpp $CFLAGS $CPPFLAGS g++ PipeLine.cpp $CFLAGS $CPPFLAGS g++ PipeLinePool.cpp $CFLAGS $CPPFLAGS @@ -75,6 +79,7 @@ g++ $FFMPEGRTSPSERVER_BASE/LiveServerMediaSubsession.cpp $CFLAGS $CPPFLAGS g++ ./SensetimeFaceAPIWrapper/src/FaceDBPool.cpp $CFLAGS $CPPFLAGS +g++ ./SensetimeFaceAPIWrapper/src/faceAPI.cpp $CFLAGS $CPPFLAGS g++ -g -std=c++11 \ main.o PipeLine.o PipeLinePool.o \ @@ -83,7 +88,7 @@ PL_SensetimeFaceTrack.o PL_SensetimeFaceDetect.o \ PL_DlibFaceTrack.o \ $FFMPEGRTSPSERVER_OBJ PL_RTSPServer.o \ - FaceDBPool.o \ + FaceDBPool.o faceAPI.o \ $LDFLAGS -o rtsp_face #export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$LIBX264_BASE/lib:$FFMPEG_BASE/lib:$SENSETIMEFACESDK_BASE/libs/linux-x86_64:$LIBLOG4CPP_BASE/lib:$DLIB_BASE/build/dlib -- Gitblit v1.8.0