diff options
author | Frank Schmirler <vdr@schmirler.de> | 2010-12-02 08:59:14 +0100 |
---|---|---|
committer | Frank Schmirler <vdr@schmirler.de> | 2010-12-02 08:59:14 +0100 |
commit | 5a270cc3ab659a98b4bb674acb77982f7e1ecb14 (patch) | |
tree | 5f2f51c096f192a9b32af9ffd8244eeb6637ad06 /client/filter.h | |
parent | e6249bf957a943920b11abbd9efac1efa18b1d00 (diff) | |
download | vdr-plugin-streamdev-5a270cc3ab659a98b4bb674acb77982f7e1ecb14.tar.gz vdr-plugin-streamdev-5a270cc3ab659a98b4bb674acb77982f7e1ecb14.tar.bz2 |
Snapshot 2007-05-09
Diffstat (limited to 'client/filter.h')
-rw-r--r-- | client/filter.h | 45 |
1 files changed, 9 insertions, 36 deletions
diff --git a/client/filter.h b/client/filter.h index cb46bf0..e0a1575 100644 --- a/client/filter.h +++ b/client/filter.h @@ -1,5 +1,5 @@ /* - * $Id: filter.h,v 1.1.1.1 2004/12/30 22:44:04 lordjaxom Exp $ + * $Id: filter.h,v 1.4 2007/04/24 11:23:16 schmirl Exp $ */ #ifndef VDR_STREAMDEV_FILTER_H @@ -12,52 +12,25 @@ #include <vdr/tools.h> #include <vdr/thread.h> -class cRingBufferFrame; -class cRingBufferLinear; - -class cStreamdevFilter: public cListObject { -private: - uchar m_Buffer[4096]; - int m_Used; - int m_Pipe[2]; - u_short m_Pid; - u_char m_Tid; - u_char m_Mask; - cRingBufferFrame *m_RingBuffer; - -public: - cStreamdevFilter(u_short Pid, u_char Tid, u_char Mask); - virtual ~cStreamdevFilter(); - - bool Matches(u_short Pid, u_char Tid); - bool PutSection(const uchar *Data, int Length); - int ReadPipe(void) const { return m_Pipe[0]; } - - u_short Pid(void) const { return m_Pid; } - u_char Tid(void) const { return m_Tid; } - u_char Mask(void) const { return m_Mask; } - -}; - -inline bool cStreamdevFilter::Matches(u_short Pid, u_char Tid) { - return m_Pid == Pid && m_Tid == (Tid & m_Mask); -} +class cTSBuffer; +class cStreamdevFilter; class cStreamdevFilters: public cList<cStreamdevFilter>, public cThread { private: - bool m_Active; - cRingBufferLinear *m_RingBuffer; - + cTSBuffer *m_TSBuffer; + protected: virtual void Action(void); + void CarbageCollect(void); + + bool ReActivateFilters(void); public: cStreamdevFilters(void); virtual ~cStreamdevFilters(); + void SetConnection(int Handle); int OpenFilter(u_short Pid, u_char Tid, u_char Mask); - cStreamdevFilter *Matches(u_short Pid, u_char Tid); - void Put(const uchar *Data); }; # endif // VDRVERSNUM >= 10300 |