houxiao
2017-01-18 0571f31b167fd019924c9e400954f007d0903ce0
fix for compile

git-svn-id: http://192.168.1.226/svn/proxy@96 454eff88-639b-444f-9e54-f578c98de674
9个文件已修改
135 ■■■■ 已修改文件
RtspFace/PL_SensetimeFaceDetect.cpp 13 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
RtspFace/PL_SensetimeFaceDetect.h 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
RtspFace/SensetimeFaceAPIWrapper/src/FaceDBPool.cpp 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
RtspFace/SensetimeFaceAPIWrapper/src/FaceDBPool.h 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
RtspFace/ev_server.cpp 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
RtspFace/ev_server.h 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
RtspFace/main.cpp 76 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
RtspFace/main_face_daemon.cpp 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
RtspFace/make.sh 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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;
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)
    { }
};
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;
    {
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; }
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)
{
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);
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)
    {
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;
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