4 #include <lib/base/object.h>
5 #include <lib/dvb/demux.h>
7 class eDVBAudio: public iObject
9 DECLARE_REF(eDVBAudio);
11 ePtr<eDVBDemux> m_demux;
12 int m_fd, m_fd_demux, m_dev;
14 enum { aMPEG, aAC3, aDTS, aAAC };
15 eDVBAudio(eDVBDemux *demux, int dev);
16 int startPid(int pid, int type);
17 enum { aMonoLeft, aStereo, aMonoRight };
18 void setChannel(int channel);
20 #if HAVE_DVB_API_VERSION < 3
27 int getPTS(pts_t &now);
31 class eDVBVideo: public iObject
33 DECLARE_REF(eDVBVideo);
35 ePtr<eDVBDemux> m_demux;
36 int m_fd, m_fd_demux, m_dev;
38 int m_is_slow_motion, m_is_fast_forward;
40 enum { MPEG2, MPEG4_H264 };
41 eDVBVideo(eDVBDemux *demux, int dev);
42 int startPid(int pid, int type=MPEG2);
44 #if HAVE_DVB_API_VERSION < 3
50 int setSlowMotion(int repeat);
51 int setFastForward(int skip);
53 int getPTS(pts_t &now);
57 class eDVBPCR: public iObject
61 ePtr<eDVBDemux> m_demux;
64 eDVBPCR(eDVBDemux *demux);
65 int startPid(int pid);
70 class eDVBTText: public iObject
72 DECLARE_REF(eDVBTText);
74 ePtr<eDVBDemux> m_demux;
77 eDVBTText(eDVBDemux *demux);
78 int startPid(int pid);
83 class eTSMPEGDecoder: public Object, public iTSMPEGDecoder
85 DECLARE_REF(eTSMPEGDecoder);
87 ePtr<eDVBDemux> m_demux;
88 ePtr<eDVBAudio> m_audio;
89 ePtr<eDVBVideo> m_video;
91 ePtr<eDVBTText> m_text;
92 int m_vpid, m_vtype, m_apid, m_atype, m_pcrpid, m_textpid;
100 int m_changed, m_decoder;
101 int m_is_ff, m_is_sm, m_is_trickmode;
103 ePtr<eConnection> m_demux_event;
105 void demux_event(int event);
107 enum { pidNone = -1 };
108 eTSMPEGDecoder(eDVBDemux *demux, int decoder);
109 virtual ~eTSMPEGDecoder();
110 RESULT setVideoPID(int vpid, int type);
111 RESULT setAudioPID(int apid, int type);
112 RESULT setAudioChannel(int channel);
113 RESULT setSyncPCR(int pcrpid);
114 RESULT setTextPID(int textpid);
115 RESULT setSyncMaster(int who);
117 RESULT freeze(int cont);
119 RESULT setSinglePictureMode(int when);
120 RESULT setPictureSkipMode(int what);
121 RESULT setFastForward(int frames_to_skip);
122 RESULT setSlowMotion(int repeat);
123 RESULT setZoom(int what);
125 RESULT setTrickmode(int what);
127 /* what 0=auto, 1=video, 2=audio. */
128 RESULT getPTS(int what, pts_t &pts);