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;
14 enum {aMPEG, aAC3, aDTS };
15 eDVBAudio(eDVBDemux *demux, int dev);
16 int startPid(int pid, int type);
18 #if HAVE_DVB_API_VERSION < 3
28 class eDVBVideo: public iObject
30 DECLARE_REF(eDVBVideo);
32 ePtr<eDVBDemux> m_demux;
35 int m_is_slow_motion, m_is_fast_forward;
37 eDVBVideo(eDVBDemux *demux, int dev);
38 int startPid(int pid);
40 #if HAVE_DVB_API_VERSION < 3
46 int setSlowMotion(int repeat);
47 int setFastForward(int skip);
52 class eDVBPCR: public iObject
56 ePtr<eDVBDemux> m_demux;
59 eDVBPCR(eDVBDemux *demux);
60 int startPid(int pid);
65 class eDVBTText: public iObject
67 DECLARE_REF(eDVBTText);
69 ePtr<eDVBDemux> m_demux;
72 eDVBTText(eDVBDemux *demux);
73 int startPid(int pid);
78 class eTSMPEGDecoder: public Object, public iTSMPEGDecoder
80 DECLARE_REF(eTSMPEGDecoder);
82 ePtr<eDVBDemux> m_demux;
83 ePtr<eDVBAudio> m_audio;
84 ePtr<eDVBVideo> m_video;
86 ePtr<eDVBTText> m_text;
87 int m_vpid, m_apid, m_atype, m_pcrpid, m_textpid;
96 int m_is_ff, m_is_sm, m_is_trickmode;
98 ePtr<eConnection> m_demux_event;
100 void demux_event(int event);
102 enum { pidNone = -1 };
103 eTSMPEGDecoder(eDVBDemux *demux, int decoder);
104 virtual ~eTSMPEGDecoder();
105 RESULT setVideoPID(int vpid);
106 RESULT setAudioPID(int apid, int type);
107 RESULT setSyncPCR(int pcrpid);
108 RESULT setTextPID(int textpid);
109 RESULT setSyncMaster(int who);
111 RESULT freeze(int cont);
113 RESULT setSinglePictureMode(int when);
114 RESULT setPictureSkipMode(int what);
115 RESULT setFastForward(int frames_to_skip);
116 RESULT setSlowMotion(int repeat);
117 RESULT setZoom(int what);
119 RESULT setTrickmode(int what);