forked from VDR4Arch/vdr-mcli-plugin
-
Notifications
You must be signed in to change notification settings - Fork 0
/
filter.h
56 lines (48 loc) · 1.15 KB
/
filter.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
/*
* (c) BayCom GmbH, http://www.baycom.de, info@baycom.de
*
* See the COPYING file for copyright information and
* how to reach the author.
*
*/
#ifndef VDR_STREAMDEV_FILTER_H
#define VDR_STREAMDEV_FILTER_H
#include <vdr/config.h>
#include <vdr/tools.h>
#include <vdr/thread.h>
#include "packetbuffer.h"
class cMcliFilter;
class cMcliPid;
class cMcliPidList:public cList < cMcliPid >
{
public:
cMcliPidList (void)
{
};
~cMcliPidList () {
};
int GetTidFromPid (int pid);
void SetPid (int Pid, int Tid);
};
class cMcliFilters:public cList < cMcliFilter >, public cThread
{
private:
cMyPacketBuffer * m_PB;
cMcliPidList m_pl;
bool m_closed;
protected:
virtual void Action (void);
void GarbageCollect (void);
void ProcessChunk(u_short pid, const uchar *block, int len, bool Pusi);
public:
cMcliFilters (void);
virtual ~ cMcliFilters ();
bool WantPid (int pid);
int GetTidFromPid (int pid);
int GetPid (int Handle);
cMcliFilter *GetFilter (int Handle);
int PutTS (const uchar * data, int len);
int OpenFilter (u_short Pid, u_char Tid, u_char Mask);
int CloseFilter (int Handle);
};
#endif // VDR_STREAMDEV_FILTER_H