vdr-plugin-streamdev/client/filter.h
schmirl 518886b08b client_filter-data-handling.patch by Petri Hintukainen
- regonize PUSI flag in TS packets (bullet-proof section start+end indicator)
- Use own TS buffer to read directly from socket, no need for ring buffer anymore
- Re-activate all active filters after re-connection to server
- Simplify thread start/stop/running detection to current VDR style
- Update "filter closed by VDR" detection (datagram sockets
  return different errno's than pipes)
- Deliver data to first matching and active filter (do not drop data if first
  matching filter has been closed, there is quite likely new filter for it)
- Add disconnect detection to avoid 100% CPU usage in cTSBuffer::Action()
Modified Files:
	client/filter.c client/filter.h
2007-04-24 11:23:16 +00:00

38 lines
709 B
C++

/*
* $Id: filter.h,v 1.4 2007/04/24 11:23:16 schmirl Exp $
*/
#ifndef VDR_STREAMDEV_FILTER_H
#define VDR_STREAMDEV_FILTER_H
#include <vdr/config.h>
# if VDRVERSNUM >= 10300
#include <vdr/tools.h>
#include <vdr/thread.h>
class cTSBuffer;
class cStreamdevFilter;
class cStreamdevFilters: public cList<cStreamdevFilter>, public cThread {
private:
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);
};
# endif // VDRVERSNUM >= 10300
#endif // VDR_STREAMDEV_FILTER_H