From 1e7e2ba704be9ba78f1c50ecc637212414706b82 Mon Sep 17 00:00:00 2001
From: pans <pans@454eff88-639b-444f-9e54-f578c98de674>
Date: 星期五, 30 十二月 2016 10:27:05 +0800
Subject: [PATCH]
---
RtspFace/main.cpp | 90 +++++++++++++++++++++++++++++++++++----------
1 files changed, 70 insertions(+), 20 deletions(-)
diff --git a/RtspFace/main.cpp b/RtspFace/main.cpp
index b31af5c..2e9ae59 100644
--- a/RtspFace/main.cpp
+++ b/RtspFace/main.cpp
@@ -1,45 +1,95 @@
#include "PipeLine.h"
#include "PL_RTSPClient.h"
+#include "PL_RTSPServer.h"
#include "PL_H264Decoder.h"
#include "PL_H264Encoder.h"
#include "PL_AVFrameYUV420.h"
+#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);
+ pipeLine.register_elem_creator("PL_RTSPServer", create_PL_RTSPServer);
pipeLine.register_elem_creator("PL_H264Decoder", create_PL_H264Decoder);
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);
- PL_RTSPClient* rtspClient = (PL_RTSPClient*)pipeLine.push_elem("PL_RTSPClient");
- RTSPConfig rtspConfig;
- rtspConfig.progName = argv[0];
- rtspConfig.rtspURL = argv[1];
- bool ret = rtspClient->init(&rtspConfig);
- if (!ret)
+ pipeLine.register_elem_creator("PL_SensetimeFaceDetect", create_PL_SensetimeFaceDetect);
+
{
- cout << "rtspClient.init error" << endl;
- exit(EXIT_FAILURE);
+ PL_RTSPClient* rtspClient = (PL_RTSPClient*)pipeLine.push_elem("PL_RTSPClient");
+ RTSPConfig rtspConfig;
+ rtspConfig.progName = argv[0];
+ rtspConfig.rtspURL = argv[1];
+ rtspConfig.aux = true; // ffmpeg need aux, but live555 not
+ rtspConfig.verbosityLevel = 1;
+ rtspConfig.tunnelOverHTTPPortNum = 0;
+ rtspConfig.args = nullptr;
+ bool ret = rtspClient->init(&rtspConfig);
+ if (!ret)
+ {
+ LOG(ERROR) << "rtspClient.init error";
+ exit(EXIT_FAILURE);
+ }
+ }
+
+ {
+ PL_H264Decoder* h264Decoder = (PL_H264Decoder*)pipeLine.push_elem("PL_H264Decoder");
+ h264Decoder->init(nullptr);
+ }
+
+ {
+ PL_AVFrameYUV420* avFrameYUV420 = (PL_AVFrameYUV420*)pipeLine.push_elem("PL_AVFrameYUV420");
+ 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)
+ // {
+ // LOG(ERROR) << "queue1.init error";
+ // exit(EXIT_FAILURE);
+ // }
+ //}
+
+ {
+ PL_H264Encoder* h264Encoder = (PL_H264Encoder*)pipeLine.push_elem("PL_H264Encoder");
+ h264Encoder->init(nullptr);
}
- PL_H264Decoder* h264Decoder = (PL_H264Decoder*)pipeLine.push_elem("PL_H264Decoder");
- h264Decoder->init(nullptr);
-
- //PL_AVFrameYUV420* avFrameYUV420 = (PL_AVFrameYUV420*)pipeLine.push_elem("PL_AVFrameYUV420");
- //avFrameYUV420->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)
+ {
+ 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";
}
}
--
Gitblit v1.8.0