From 4ef430e946e717d72e923c4708a9120f94d55dbd Mon Sep 17 00:00:00 2001 From: houxiao <houxiao@454eff88-639b-444f-9e54-f578c98de674> Date: 星期三, 28 十二月 2016 09:35:14 +0800 Subject: [PATCH] test h264 encoder --- RtspFace/PipeLine.h | 26 +++++++++++++++++++++++--- 1 files changed, 23 insertions(+), 3 deletions(-) diff --git a/RtspFace/PipeLine.h b/RtspFace/PipeLine.h index 898e1f6..2a59df7 100644 --- a/RtspFace/PipeLine.h +++ b/RtspFace/PipeLine.h @@ -12,13 +12,32 @@ class PipeLineElem; class PipeLine; +enum PipeMaterialBufferType +{ + PMT__FIRST, + PMT_BYTES, + PMT_TEXT, + PMT_IMAGE, + PMT_PM_LIST, + PMT_PTR_AVFRAME, + PMT__LAST +}; + +struct PipeMaterial; +typedef void (* pm_deleter_func)(PipeMaterial* pm); + struct PipeMaterial { + PipeMaterialBufferType type; uint8_t* buffer; size_t buffSize; PipeLineElem* former; + pm_deleter_func deleter; + void* args; PipeMaterial(); + + void exec_deleter(); }; class PipeLineElem @@ -41,9 +60,10 @@ typedef PipeLineElem* (*elem_create_func_t)(); // 0 (there is no elem). do nothing -// 1 (there is one elem). gain -// 2 (there is two elems). gain --> pay -// 3 (there is more than two elems). gain --> pay gain --> pay gain --> ... --> pay +// 1 (there is one elem). gain --> pm.deleter +// 2 (there is two elems). gain --> pay --> pm.deleter +// 3 (there is more than two elems). +// gain --> [pay --> pm.deleter --> gain -->] [pay --> pm.deleter --> gain -->] ... --> pay --> pm.deleter class PipeLine { public: -- Gitblit v1.8.0