X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/37bac1d63115720ca83f064e0e4f5426271fc364..0e903a5d9d38bd48c792c095d786fc40091a47fa:/lib/service/servicemp3.h diff --git a/lib/service/servicemp3.h b/lib/service/servicemp3.h index 29c1d438..56a068b9 100644 --- a/lib/service/servicemp3.h +++ b/lib/service/servicemp3.h @@ -41,6 +41,7 @@ class eStaticServiceMP3Info: public iStaticServiceInformation public: RESULT getName(const eServiceReference &ref, std::string &name); int getLength(const eServiceReference &ref); + int getInfo(const eServiceReference &ref, int w); }; typedef struct _GstElement GstElement; @@ -49,8 +50,9 @@ typedef enum { atUnknown, atMPEG, atMP3, atAC3, atDTS, atAAC, atPCM, atOGG, atFL typedef enum { stPlainText, stSSA, stSRT } subtype_t; typedef enum { ctNone, ctMPEGTS, ctMPEGPS, ctMKV, ctAVI, ctMP4, ctVCD, ctCDA } containertype_t; -class eServiceMP3: public iPlayableService, public iPauseableService, - public iServiceInformation, public iSeekableService, public iAudioTrackSelection, public iAudioChannelSelection, public iSubtitleOutput, public iStreamedService, public Object +class eServiceMP3: public iPlayableService, public iPauseableService, + public iServiceInformation, public iSeekableService, public iAudioTrackSelection, public iAudioChannelSelection, + public iSubtitleOutput, public iStreamedService, public iAudioDelay, public Object { DECLARE_REF(eServiceMP3); public: @@ -70,13 +72,14 @@ public: RESULT audioTracks(ePtr &ptr); RESULT audioChannel(ePtr &ptr); RESULT subtitle(ePtr &ptr); + RESULT audioDelay(ePtr &ptr); // not implemented (yet) RESULT frontendInfo(ePtr &ptr) { ptr = 0; return -1; } RESULT subServices(ePtr &ptr) { ptr = 0; return -1; } RESULT timeshift(ePtr &ptr) { ptr = 0; return -1; } RESULT cueSheet(ePtr &ptr) { ptr = 0; return -1; } - RESULT audioDelay(ePtr &ptr) { ptr = 0; return -1; } + RESULT rdsDecoder(ePtr &ptr) { ptr = 0; return -1; } RESULT keys(ePtr &ptr) { ptr = 0; return -1; } RESULT stream(ePtr &ptr) { ptr = 0; return -1; } @@ -122,6 +125,12 @@ public: PyObject *getBufferCharge(); int setBufferSize(int size); + // iAudioDelay + int getAC3Delay(); + int getPCMDelay(); + void setAC3Delay(int); + void setPCMDelay(int); + struct audioStream { GstPad* pad; @@ -166,6 +175,8 @@ public: } }; private: + static int pcm_delay; + static int ac3_delay; int m_currentAudioStream; int m_currentSubtitleStream; int selectAudioStream(int i); @@ -204,6 +215,9 @@ private: void pullSubtitle(); int m_subs_to_pull; eSingleLock m_subs_to_pull_lock; + gulong m_subs_to_pull_handler_id; + + RESULT seekToImpl(pts_t to); gint m_aspect, m_width, m_height, m_framerate, m_progressive; RESULT trickSeek(gdouble ratio);