From b022b91c0c6fa807424b6c12cc92ac5946838083 Mon Sep 17 00:00:00 2001 From: houxiao <houxiao@454eff88-639b-444f-9e54-f578c98de674> Date: 星期四, 13 七月 2017 16:34:39 +0800 Subject: [PATCH] update pipeline --- RtspFace/PipeLine.h | 43 ++++++++++++++++++++++++++++++++++++------- 1 files changed, 36 insertions(+), 7 deletions(-) diff --git a/RtspFace/PipeLine.h b/RtspFace/PipeLine.h index 5c3e03c..4848d69 100644 --- a/RtspFace/PipeLine.h +++ b/RtspFace/PipeLine.h @@ -8,12 +8,18 @@ #define PLGP_RTSP_SDP "RTSP_SDP" #define PLGP_RTSP_FMTP "RTSP_FMTP" +#define PLGP_RTSP_WIDTH "RTSP_WIDTH" +#define PLGP_RTSP_HEIGHT "RTSP_HEIGHT" +#define PLGP_RTSP_FPS "RTSP_FPS" + +#define ENABLE_PIPELINE_ELEM_TIMING_DEBUGGER class PipeLineElem; class PipeLine; struct PipeMaterial; -typedef void (* pm_deleter_func)(PipeMaterial* pm); +typedef void (* pm_deleter_func)(PipeMaterial* pm, bool lastRet); +typedef bool (* pm_breaker_func)(const PipeMaterial* pm, void* args); // return true if continue breaking up // PipeMaterial instance should be unref when pay() finished struct PipeMaterial @@ -21,11 +27,12 @@ enum PipeMaterialBufferType { PMT__FIRST, - PMT_NONE, // buffer = nullptr, buffSize = 0 - PMT_BYTES, // buffer = uint8_t[N], buffSize = N - PMT_FRAME, // buffer = MB_Frame*, buffSize = 0 - PMT_PM_LIST, // buffer = PipeMaterial*[N], buffSize = N - PMT_FRAME_LIST, // buffer = MB_Frame*[N], buffSize = N + PMT_NONE, // buffer = nullptr, buffSize = 0 + PMT_BYTES, // buffer = uint8_t[N], buffSize = N + PMT_PTR, // buffer = void*, buffSize = 0 + PMT_FRAME, // buffer = MB_Frame*, buffSize = 0 + PMT_PM_LIST, // buffer = PipeMaterial*[N], buffSize = N + PMT_FRAME_LIST, // buffer = MB_Frame*[N], buffSize = N PMT__LAST }; @@ -38,7 +45,19 @@ PipeMaterial(); - void exec_deleter(); + void exec_deleter(bool lastRet); + + void reset() + { + PipeMaterial _temp; + *this = _temp; + } + + int breake(PipeMaterialBufferType selectPmType, int _selectMbfType, + pm_breaker_func breaker, void* args = nullptr) const; + + //#todo assemble pm/mbf into this pm + void assemble(); }; class PipeLineElem @@ -109,4 +128,14 @@ params_map_t params_map; }; +class PipeLineElemTimingDebugger +{ +public: + PipeLineElemTimingDebugger(const PipeLineElem* _elem); + ~PipeLineElemTimingDebugger(); + + const PipeLineElem* elem; + uint64_t beginTime; +}; + #endif -- Gitblit v1.8.0