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