summaryrefslogtreecommitdiff
path: root/client/filter.h
diff options
context:
space:
mode:
authorschmirl <schmirl>2007-04-24 11:23:16 +0000
committerschmirl <schmirl>2007-04-24 11:23:16 +0000
commit518886b08b5913cf8278f69905e7981424d46825 (patch)
treec03de260d1c8ec9c769f8a3197e3708cfd6a8ff2 /client/filter.h
parent52bf110aa9108dee206463c33a03bf55c3be3534 (diff)
downloadvdr-plugin-streamdev-518886b08b5913cf8278f69905e7981424d46825.tar.gz
vdr-plugin-streamdev-518886b08b5913cf8278f69905e7981424d46825.tar.bz2
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
Diffstat (limited to 'client/filter.h')
-rw-r--r--client/filter.h13
1 files changed, 6 insertions, 7 deletions
diff --git a/client/filter.h b/client/filter.h
index 04e8c75..e0a1575 100644
--- a/client/filter.h
+++ b/client/filter.h
@@ -1,5 +1,5 @@
/*
- * $Id: filter.h,v 1.3 2007/04/23 12:52:28 schmirl Exp $
+ * $Id: filter.h,v 1.4 2007/04/24 11:23:16 schmirl Exp $
*/
#ifndef VDR_STREAMDEV_FILTER_H
@@ -12,26 +12,25 @@
#include <vdr/tools.h>
#include <vdr/thread.h>
-class cRingBufferLinear;
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