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);
89 std::string m_radio_pic;
91 ePtr<eDVBDemux> m_demux;
92 ePtr<eDVBAudio> m_audio;
93 ePtr<eDVBVideo> m_video;
95 ePtr<eDVBTText> m_text;
96 int m_vpid, m_vtype, m_apid, m_atype, m_pcrpid, m_textpid;
104 int m_changed, m_decoder;
105 int m_is_ff, m_is_sm, m_is_trickmode;
107 ePtr<eConnection> m_demux_event;
109 void demux_event(int event);
111 enum { pidNone = -1 };
112 eTSMPEGDecoder(eDVBDemux *demux, int decoder);
113 virtual ~eTSMPEGDecoder();
114 RESULT setVideoPID(int vpid, int type);
115 RESULT setAudioPID(int apid, int type);
116 RESULT setAudioChannel(int channel);
117 int getAudioChannel();
118 RESULT setPCMDelay(int delay);
119 int getPCMDelay() { return m_pcm_delay; }
120 RESULT setAC3Delay(int delay);
121 int getAC3Delay() { return m_ac3_delay; }
122 RESULT setSyncPCR(int pcrpid);
123 RESULT setTextPID(int textpid);
124 RESULT setSyncMaster(int who);
126 RESULT freeze(int cont);
128 RESULT setSinglePictureMode(int when);
129 RESULT setPictureSkipMode(int what);
130 RESULT setFastForward(int frames_to_skip);
131 RESULT setSlowMotion(int repeat);
132 RESULT setZoom(int what);
134 RESULT setTrickmode(int what);
135 RESULT showSinglePic(const char *filename);
136 RESULT setRadioPic(const std::string &filename);
137 /* what 0=auto, 1=video, 2=audio. */
138 RESULT getPTS(int what, pts_t &pts);