summaryrefslogtreecommitdiff
path: root/filter.h
diff options
context:
space:
mode:
authorLars Heer <l.heer@gmx.de>2013-09-18 05:50:03 +0200
committerLars Heer <l.heer@gmx.de>2013-09-18 05:50:03 +0200
commitccf6e0f9c6b0481ed13e0f4794e3fbead750f385 (patch)
treeed86efb54f7ee41edfba5c89ca519b5fd10aa0d5 /filter.h
downloadvdr-plugin-mcli-ccf6e0f9c6b0481ed13e0f4794e3fbead750f385.tar.gz
vdr-plugin-mcli-ccf6e0f9c6b0481ed13e0f4794e3fbead750f385.tar.bz2
added vdr-plugin-mcli-0.0.1+svn20120927
Diffstat (limited to 'filter.h')
-rw-r--r--filter.h56
1 files changed, 56 insertions, 0 deletions
diff --git a/filter.h b/filter.h
new file mode 100644
index 0000000..d42bc18
--- /dev/null
+++ b/filter.h
@@ -0,0 +1,56 @@
+/*
+ * (c) BayCom GmbH, http://www.baycom.de, info@baycom.de
+ *
+ * See the COPYING file for copyright information and
+ * how to reach the author.
+ *
+ */
+
+#ifndef VDR_STREAMDEV_FILTER_H
+#define VDR_STREAMDEV_FILTER_H
+
+#include <vdr/config.h>
+#include <vdr/tools.h>
+#include <vdr/thread.h>
+#include "packetbuffer.h"
+
+class cMcliFilter;
+class cMcliPid;
+
+class cMcliPidList:public cList < cMcliPid >
+{
+ public:
+ cMcliPidList (void)
+ {
+ };
+ ~cMcliPidList () {
+ };
+ int GetTidFromPid (int pid);
+ void SetPid (int Pid, int Tid);
+};
+
+class cMcliFilters:public cList < cMcliFilter >, public cThread
+{
+ private:
+ cMyPacketBuffer * m_PB;
+ cMcliPidList m_pl;
+ bool m_closed;
+
+ protected:
+ virtual void Action (void);
+ void GarbageCollect (void);
+ void ProcessChunk(u_short pid, const uchar *block, int len, bool Pusi);
+
+ public:
+ cMcliFilters (void);
+ virtual ~ cMcliFilters ();
+ bool WantPid (int pid);
+ int GetTidFromPid (int pid);
+ int GetPid (int Handle);
+ cMcliFilter *GetFilter (int Handle);
+ int PutTS (const uchar * data, int len);
+ int OpenFilter (u_short Pid, u_char Tid, u_char Mask);
+ int CloseFilter (int Handle);
+};
+
+#endif // VDR_STREAMDEV_FILTER_H