blob: e92b1e75c6df7e89442a7cfc25b10d006774992f (
plain)
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
|
#ifndef __dvb_idemux_h
#define __dvb_idemux_h
#include <lib/dvb/idvb.h>
class iDVBSectionReader: public iObject
{
public:
virtual RESULT start(const eDVBSectionFilterMask &mask)=0;
virtual RESULT stop()=0;
virtual RESULT connectRead(const Slot1<void,const __u8*> &read, ePtr<eConnection> &conn)=0;
virtual ~iDVBSectionReader() { };
};
class iDVBPESReader: public iObject
{
public:
virtual RESULT start(int pid)=0;
virtual RESULT stop()=0;
virtual RESULT connectRead(const Slot2<void,const __u8*, int> &read, ePtr<eConnection> &conn)=0;
virtual ~iDVBPESReader() { };
};
/* records a given set of pids into a file descriptor. */
/* the FD must not be modified between start() and stop() ! */
class iDVBTSRecorder: public iObject
{
public:
virtual RESULT start() = 0;
virtual RESULT addPID(int pid) = 0;
virtual RESULT removePID(int pid) = 0;
virtual RESULT setTimingPID(int pid, int type) = 0;
virtual RESULT setTargetFD(int fd) = 0;
/* for saving additional meta data. */
virtual RESULT setTargetFilename(const char *filename) = 0;
virtual RESULT setBoundary(off_t max) = 0;
virtual RESULT stop() = 0;
virtual RESULT getCurrentPCR(pts_t &pcr) = 0;
enum {
eventWriteError,
/* a write error has occured. data won't get lost if fd is writable after return. */
/* you MUST respond with either stop() or fixing the problems, else you get the error */
/* again. */
eventReachedBoundary,
/* the programmed boundary was reached. you might set a new target fd. you can close the */
/* old one. */
};
virtual RESULT connectEvent(const Slot1<void,int> &event, ePtr<eConnection> &conn)=0;
};
#endif
|