X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/fdad4815a5c267a5f20f10604617b833d85ec32e..f24b1a713e78a462c279c8fcb10e0a1d1b9b9caa:/lib/dvb/decoder.h diff --git a/lib/dvb/decoder.h b/lib/dvb/decoder.h index cd59b3d9..5b9d352a 100644 --- a/lib/dvb/decoder.h +++ b/lib/dvb/decoder.h @@ -8,7 +8,7 @@ class eSocketNotifier; class eDVBAudio: public iObject { -DECLARE_REF(eDVBAudio); + DECLARE_REF(eDVBAudio); private: ePtr m_demux; int m_fd, m_fd_demux, m_dev, m_is_freezed; @@ -36,7 +36,7 @@ public: class eDVBVideo: public iObject, public Object { -DECLARE_REF(eDVBVideo); + DECLARE_REF(eDVBVideo); private: ePtr m_demux; int m_fd, m_fd_demux, m_dev; @@ -44,9 +44,10 @@ private: m_fd_video; #endif int m_is_slow_motion, m_is_fast_forward, m_is_freezed; - eSocketNotifier *m_sn; + ePtr m_sn; void video_event(int what); Signal1 m_event; + int m_width, m_height, m_framerate, m_aspect, m_progressive; public: enum { MPEG2, MPEG4_H264 }; eDVBVideo(eDVBDemux *demux, int dev); @@ -67,11 +68,16 @@ public: int getPTS(pts_t &now); virtual ~eDVBVideo(); RESULT connectEvent(const Slot1 &event, ePtr &conn); + int getWidth(); + int getHeight(); + int getProgressive(); + int getFrameRate(); + int getAspect(); }; class eDVBPCR: public iObject { -DECLARE_REF(eDVBPCR); + DECLARE_REF(eDVBPCR); private: ePtr m_demux; int m_fd_demux; @@ -89,7 +95,7 @@ public: class eDVBTText: public iObject { -DECLARE_REF(eDVBTText); + DECLARE_REF(eDVBTText); private: ePtr m_demux; int m_fd_demux; @@ -102,12 +108,12 @@ public: class eTSMPEGDecoder: public Object, public iTSMPEGDecoder { + DECLARE_REF(eTSMPEGDecoder); +private: static int m_pcm_delay; static int m_ac3_delay; static int m_audio_channel; -DECLARE_REF(eTSMPEGDecoder); std::string m_radio_pic; -private: ePtr m_demux; ePtr m_audio; ePtr m_video; @@ -130,6 +136,9 @@ private: void demux_event(int event); void video_event(struct videoEvent); Signal1 m_video_event; + int m_video_clip_fd; + ePtr m_showSinglePicTimer; + void finishShowSinglePic(); // called by timer public: enum { pidNone = -1 }; eTSMPEGDecoder(eDVBDemux *demux, int decoder); @@ -161,6 +170,11 @@ public: /* what 0=auto, 1=video, 2=audio. */ RESULT getPTS(int what, pts_t &pts); RESULT connectVideoEvent(const Slot1 &event, ePtr &connection); + int getVideoWidth(); + int getVideoHeight(); + int getVideoProgressive(); + int getVideoFrameRate(); + int getVideoAspect(); }; #endif