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 static int m_pcm_delay;
86 static int m_ac3_delay;
87 static int m_audio_channel;
88 DECLARE_REF(eTSMPEGDecoder);
90 ePtr<eDVBDemux> m_demux;
91 ePtr<eDVBAudio> m_audio;
92 ePtr<eDVBVideo> m_video;
94 ePtr<eDVBTText> m_text;
95 int m_vpid, m_vtype, m_apid, m_atype, m_pcrpid, m_textpid;
103 int m_changed, m_decoder;
104 int m_is_ff, m_is_sm, m_is_trickmode;
106 ePtr<eConnection> m_demux_event;
108 void demux_event(int event);
110 enum { pidNone = -1 };
111 eTSMPEGDecoder(eDVBDemux *demux, int decoder);
112 virtual ~eTSMPEGDecoder();
113 RESULT setVideoPID(int vpid, int type);
114 RESULT setAudioPID(int apid, int type);
115 RESULT setAudioChannel(int channel);
116 int getAudioChannel();
117 RESULT setPCMDelay(int delay);
118 int getPCMDelay() { return m_pcm_delay; }
119 RESULT setAC3Delay(int delay);
120 int getAC3Delay() { return m_ac3_delay; }
121 RESULT setSyncPCR(int pcrpid);
122 RESULT setTextPID(int textpid);
123 RESULT setSyncMaster(int who);
125 RESULT freeze(int cont);
127 RESULT setSinglePictureMode(int when);
128 RESULT setPictureSkipMode(int what);
129 RESULT setFastForward(int frames_to_skip);
130 RESULT setSlowMotion(int repeat);
131 RESULT setZoom(int what);
133 RESULT setTrickmode(int what);
135 /* what 0=auto, 1=video, 2=audio. */
136 RESULT getPTS(int what, pts_t &pts);