| | |
| | | |
| | | #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 |
| | |
| | | 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 |
| | | }; |
| | | |
| | |
| | | |
| | | 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 |
| | |
| | | params_map_t params_map; |
| | | }; |
| | | |
| | | class PipeLineElemTimingDebugger |
| | | { |
| | | public: |
| | | PipeLineElemTimingDebugger(const PipeLineElem* _elem); |
| | | ~PipeLineElemTimingDebugger(); |
| | | |
| | | const PipeLineElem* elem; |
| | | uint64_t beginTime; |
| | | }; |
| | | |
| | | #endif |