X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/1917887e66e15f79b06830993365f8659623d1aa..8b5176ab8d8a334dfee75cfbda878240e2501823:/lib/dvb/decoder.h diff --git a/lib/dvb/decoder.h b/lib/dvb/decoder.h index 001139e5..409a4421 100644 --- a/lib/dvb/decoder.h +++ b/lib/dvb/decoder.h @@ -11,17 +11,21 @@ class eDVBAudio: public iObject DECLARE_REF(eDVBAudio); private: ePtr m_demux; - int m_fd, m_fd_demux, m_dev; + int m_fd, m_fd_demux, m_dev, m_is_freezed; public: enum { aMPEG, aAC3, aDTS, aAAC }; eDVBAudio(eDVBDemux *demux, int dev); - int startPid(int pid, int type); enum { aMonoLeft, aStereo, aMonoRight }; void setChannel(int channel); void stop(); #if HAVE_DVB_API_VERSION < 3 - void start(); - void stopPid(); + int setPid(int pid, int type); + int startPid(); + int start(); + int stopPid(); + int setAVSync(int val); +#else + int startPid(int pid, int type); #endif void flush(); void freeze(); @@ -36,19 +40,24 @@ DECLARE_REF(eDVBVideo); private: ePtr m_demux; int m_fd, m_fd_demux, m_dev; - - int m_is_slow_motion, m_is_fast_forward; +#if HAVE_DVB_API_VERSION < 3 + m_fd_video; +#endif + int m_is_slow_motion, m_is_fast_forward, m_is_freezed; eSocketNotifier *m_sn; void video_event(int what); Signal1 m_event; public: enum { MPEG2, MPEG4_H264 }; eDVBVideo(eDVBDemux *demux, int dev); - int startPid(int pid, int type=MPEG2); void stop(); #if HAVE_DVB_API_VERSION < 3 - void start(); - void stopPid(); + int setPid(int pid); + int startPid(); + int start(); + int stopPid(); +#else + int startPid(int pid, int type=MPEG2); #endif void flush(); void freeze(); @@ -68,7 +77,12 @@ private: int m_fd_demux; public: eDVBPCR(eDVBDemux *demux); +#if HAVE_DVB_API_VERSION < 3 + int setPid(int pid); + int startPid(); +#else int startPid(int pid); +#endif void stop(); virtual ~eDVBPCR(); }; @@ -93,7 +107,6 @@ class eTSMPEGDecoder: public Object, public iTSMPEGDecoder static int m_audio_channel; DECLARE_REF(eTSMPEGDecoder); std::string m_radio_pic; -private: ePtr m_demux; ePtr m_audio; ePtr m_video; @@ -116,6 +129,9 @@ private: void demux_event(int event); void video_event(struct videoEvent); Signal1 m_video_event; + int m_video_clip_fd; + eTimer m_showSinglePicTimer; + void finishShowSinglePic(); // called by timer public: enum { pidNone = -1 }; eTSMPEGDecoder(eDVBDemux *demux, int decoder);