diff options
author | Lars Heer <l.heer@gmx.de> | 2013-09-18 05:50:03 +0200 |
---|---|---|
committer | Lars Heer <l.heer@gmx.de> | 2013-09-18 05:50:03 +0200 |
commit | ccf6e0f9c6b0481ed13e0f4794e3fbead750f385 (patch) | |
tree | ed86efb54f7ee41edfba5c89ca519b5fd10aa0d5 /filter.h | |
download | vdr-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.h | 56 |
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 |