/* * (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 #include #include #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