houxiao
2016-12-29 633e76c1d533c3d9c257b92df7ebdfd36c9fd8a0
RtspFace/main.cpp
@@ -7,11 +7,14 @@
#include "PL_AVFrameBGRA.h"
#include "PL_Queue.h"
#include <iostream>
using namespace std;
#include "PL_SensetimeFaceDetect.h"
#include "logger.h"
int main(int argc, char** argv)
{
   initLogger(2);
   PipeLine pipeLine;
   
   pipeLine.register_elem_creator("PL_RTSPClient", create_PL_RTSPClient);
@@ -20,6 +23,8 @@
   pipeLine.register_elem_creator("PL_AVFrameYUV420", create_PL_AVFrameYUV420);
   pipeLine.register_elem_creator("PL_H264Encoder", create_PL_H264Encoder);
   pipeLine.register_elem_creator("PL_Queue", create_PL_Queue);
   pipeLine.register_elem_creator("PL_SensetimeFaceDetect", create_PL_SensetimeFaceDetect);
   
   {
      PL_RTSPClient* rtspClient = (PL_RTSPClient*)pipeLine.push_elem("PL_RTSPClient");
@@ -33,7 +38,7 @@
      bool ret = rtspClient->init(&rtspConfig);
      if (!ret)
      {
         cout << "rtspClient.init error" << endl;
         LOG(ERROR) << "rtspClient.init error";
         exit(EXIT_FAILURE);
      }
   }
@@ -48,37 +53,43 @@
      avFrameYUV420->init(nullptr);
   }
   {
      SensetimeFaceDetectConfig config;
      PL_SensetimeFaceDetect* stFaceDetect = (PL_SensetimeFaceDetect*)pipeLine.push_elem("PL_SensetimeFaceDetect");
      stFaceDetect->init(&config);
   }
   //{//#todo queue should support deep copy
   //   PL_Queue_Config config;
   //   PL_Queue* queue1 = (PL_Queue*)pipeLine.push_elem("PL_Queue");
   //   bool ret = queue1->init(&config);
   //   if (!ret)
   //   {
   //      cout << "queue1.init error" << endl;
   //      LOG(ERROR) << "queue1.init error";
   //      exit(EXIT_FAILURE);
   //   }
   //}
   //{
   //   PL_H264Encoder* h264Encoder = (PL_H264Encoder*)pipeLine.push_elem("PL_H264Encoder");
   //   h264Encoder->init(nullptr);
   //}
   {
      PL_H264Encoder* h264Encoder = (PL_H264Encoder*)pipeLine.push_elem("PL_H264Encoder");
      h264Encoder->init(nullptr);
   }
   
   //{
   //   RTSPServerConfig config;
   //   PL_RTSPServer* rtspServer = (PL_RTSPServer*)pipeLine.push_elem("PL_RTSPServer");
   //   bool ret = rtspServer->init(&config);
   //   if (!ret)
   //   {
   //      cout << "rtspServer.init error" << endl;
   //      exit(EXIT_FAILURE);
   //   }
   //}
   {
      RTSPServerConfig config;
      PL_RTSPServer* rtspServer = (PL_RTSPServer*)pipeLine.push_elem("PL_RTSPServer");
      bool ret = rtspServer->init(&config);
      if (!ret)
      {
         LOG(ERROR) << "rtspServer.init error";
         exit(EXIT_FAILURE);
      }
   }
   
   while(true)
   {
      //cout << "begin pipe" << endl;
      //LOG(ERROR) << "begin pipe";
      pipeLine.pipe();
      //cout << "end pipe" << endl;
      //LOG(ERROR) << "end pipe";
   }
}