mirror of
https://projects.vdr-developer.org/git/vdr-plugin-streamdev.git
synced 2023-10-10 19:16:51 +02:00
518886b08b
- 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
38 lines
709 B
C++
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
|