client_filter-visibility.patch by Petri Hintukainen

- Move cStreamdevFilter definition from filter.h to filter.c
- Add IsClosed() and Reset() members to cStreamdevFilter:
  * IsClosed() returns true if filter was closed by VDR
  * Reset() discards (incomplete) queued section data

Modified Files:
	client/filter.c client/filter.h
This commit is contained in:
schmirl
2007-04-23 11:23:15 +00:00
parent 3ceb716ea9
commit 313da9682d
2 changed files with 62 additions and 32 deletions

View File

@@ -1,5 +1,5 @@
/*
* $Id: filter.h,v 1.1 2004/12/30 22:44:04 lordjaxom Exp $
* $Id: filter.h,v 1.2 2007/04/23 11:23:15 schmirl Exp $
*/
#ifndef VDR_STREAMDEV_FILTER_H
@@ -12,36 +12,9 @@
#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: