X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/7544e052e6ed6a5d1e0fd783bd04f4b8aa0d45ce..8c84c2a2c0b8d33404540ab50278de63d3c7fccc:/lib/dvb/decoder.h diff --git a/lib/dvb/decoder.h b/lib/dvb/decoder.h index df639551..fb543fed 100644 --- a/lib/dvb/decoder.h +++ b/lib/dvb/decoder.h @@ -11,13 +11,17 @@ private: ePtr m_demux; int m_fd, m_fd_demux; public: + enum {aMPEG, aAC3, aDTS }; eDVBAudio(eDVBDemux *demux, int dev); - int startPid(int pid); + int startPid(int pid, int type); void stop(); #if HAVE_DVB_API_VERSION < 3 void start(); void stopPid(); #endif + void flush(); + void freeze(); + void unfreeze(); virtual ~eDVBAudio(); }; @@ -27,6 +31,8 @@ DECLARE_REF(eDVBVideo); private: ePtr m_demux; int m_fd, m_fd_demux; + + int m_is_slow_motion, m_is_fast_forward; public: eDVBVideo(eDVBDemux *demux, int dev); int startPid(int pid); @@ -35,6 +41,11 @@ public: void start(); void stopPid(); #endif + void flush(); + void freeze(); + int setSlowMotion(int repeat); + int setFastForward(int skip); + void unfreeze(); virtual ~eDVBVideo(); }; @@ -51,7 +62,7 @@ public: virtual ~eDVBPCR(); }; -class eTSMPEGDecoder: public iTSMPEGDecoder +class eTSMPEGDecoder: public Object, public iTSMPEGDecoder { DECLARE_REF(eTSMPEGDecoder); private: @@ -67,7 +78,11 @@ private: changePCR = 4 }; int m_changed; + int m_is_ff, m_is_sm, m_is_trickmode; int setState(); + ePtr m_demux_event; + + void demux_event(int event); public: enum { pidNone = -1 }; eTSMPEGDecoder(eDVBDemux *demux, int decoder); @@ -81,7 +96,10 @@ public: RESULT unfreeze(); RESULT setSinglePictureMode(int when); RESULT setPictureSkipMode(int what); + RESULT setFastForward(int frames_to_skip); RESULT setSlowMotion(int repeat); RESULT setZoom(int what); + RESULT flush(); + RESULT setTrickmode(int what); }; #endif