blob: 6694e9fcdb60814f97a0ad260dfe808d1ee5b1d8 (
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
57
58
59
60
61
62
63
64
65
66
|
#ifndef __decoder_h
#define __decoder_h
#include <lib/base/object.h>
#include <lib/dvb/demux.h>
class eDVBAudio: public virtual iObject
{
DECLARE_REF;
private:
ePtr<eDVBDemux> m_demux;
int m_fd, m_fd_demux;
public:
eDVBAudio(eDVBDemux *demux, int dev);
int startPid(int pid);
void stop();
virtual ~eDVBAudio();
};
class eDVBVideo: public virtual iObject
{
DECLARE_REF;
private:
ePtr<eDVBDemux> m_demux;
int m_fd, m_fd_demux;
public:
eDVBVideo(eDVBDemux *demux, int dev);
int startPid(int pid);
void stop();
virtual ~eDVBVideo();
};
class eTSMPEGDecoder: public virtual iTSMPEGDecoder
{
DECLARE_REF;
private:
ePtr<eDVBDemux> m_demux;
ePtr<eDVBAudio> m_audio;
ePtr<eDVBVideo> m_video;
int m_vpid, m_apid, m_atype, m_pcrpid;
enum
{
changeVideo = 1,
changeAudio = 2,
changePCR = 4
};
int m_changed;
int setState();
public:
enum { pidNone = -1 };
eTSMPEGDecoder(eDVBDemux *demux, int decoder);
virtual ~eTSMPEGDecoder();
RESULT setVideoPID(int vpid);
RESULT setAudioPID(int apid, int type);
RESULT setSyncPCR(int pcrpid);
RESULT setSyncMaster(int who);
RESULT start();
RESULT freeze(int cont);
RESULT unfreeze();
RESULT setSinglePictureMode(int when);
RESULT setPictureSkipMode(int what);
RESULT setSlowMotion(int repeat);
RESULT setZoom(int what);
};
#endif
|