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