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 | 71 +++++++++++++++++++++++++++-------- 1 files changed, 55 insertions(+), 16 deletions(-) diff --git a/RtspFace/main.cpp b/RtspFace/main.cpp index b31af5c..b75f9ea 100644 --- a/RtspFace/main.cpp +++ b/RtspFace/main.cpp @@ -1,8 +1,11 @@ #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; @@ -12,29 +15,65 @@ 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) { - 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); + //{ + // 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