From fc2f5b2cd655f1391f2abda1b39e37cdec98a951 Mon Sep 17 00:00:00 2001 From: Felix Domke Date: Fri, 17 Oct 2003 15:35:43 +0000 Subject: Initial revision --- lib/dvb/decoder.h | 66 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 66 insertions(+) create mode 100644 lib/dvb/decoder.h (limited to 'lib/dvb/decoder.h') diff --git a/lib/dvb/decoder.h b/lib/dvb/decoder.h new file mode 100644 index 00000000..6694e9fc --- /dev/null +++ b/lib/dvb/decoder.h @@ -0,0 +1,66 @@ +#ifndef __decoder_h +#define __decoder_h + +#include +#include + +class eDVBAudio: public virtual iObject +{ +DECLARE_REF; +private: + ePtr 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 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 m_demux; + ePtr m_audio; + ePtr 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 -- cgit v1.2.3