From 928db0d6dc74630e35df9360e9d9968f17d11ca9 Mon Sep 17 00:00:00 2001
From: pans <pans@454eff88-639b-444f-9e54-f578c98de674>
Date: 星期三, 28 十二月 2016 14:09:57 +0800
Subject: [PATCH] 

---
 RtspFace/main.cpp |   75 ++++++++++++++++++++++++++-----------
 1 files changed, 52 insertions(+), 23 deletions(-)

diff --git a/RtspFace/main.cpp b/RtspFace/main.cpp
index ea5505d..b75f9ea 100644
--- a/RtspFace/main.cpp
+++ b/RtspFace/main.cpp
@@ -5,6 +5,7 @@
 #include "PL_H264Encoder.h"
 #include "PL_AVFrameYUV420.h"
 #include "PL_AVFrameBGRA.h"
+#include "PL_Queue.h"
 
 #include <iostream>
 using namespace std;
@@ -18,33 +19,61 @@
 	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];
-	rtspConfig.aux = false; // ffmpeg need aux
-	rtspConfig.verbosityLevel = 1;
-	rtspConfig.tunnelOverHTTPPortNum = 0;
-	rtspConfig.args = nullptr;
-	bool ret = rtspClient->init(&rtspConfig);
-	if (!ret)
 	{
-		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)
+		{
+			cout << "rtspClient.init error" << endl;
+			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);
+	}
+
+	//{//#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;
+	//		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);
-	
-	PL_RTSPServer* rtspServer = (PL_RTSPServer*)pipeLine.push_elem("PL_RTSPServer");
-	rtspServer->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);
+	//	}
+	//}
 	
 	while(true)
 	{

--
Gitblit v1.8.0