diff options
| author | Fraxinas <andreas.frisch@multimedia-labs.de> | 2009-06-03 13:28:31 +0200 |
|---|---|---|
| committer | Fraxinas <andreas.frisch@multimedia-labs.de> | 2009-06-03 13:28:31 +0200 |
| commit | 2aa38f5ceb6991e26df20dc0f463aa64466f09ed (patch) | |
| tree | 2f834312b4074e31b3f637a1ff86a3023a1ae3a4 /lib/service/servicemp3.h | |
| parent | 65fdd1a9bcf67c1f63501a13f12b4aff5a2d46b7 (diff) | |
| download | enigma2-2aa38f5ceb6991e26df20dc0f463aa64466f09ed.tar.gz enigma2-2aa38f5ceb6991e26df20dc0f463aa64466f09ed.zip | |
introduce new iStreamedService interface (e.g. controlling buffer for streaming media)
Diffstat (limited to 'lib/service/servicemp3.h')
| -rw-r--r-- | lib/service/servicemp3.h | 22 |
1 files changed, 20 insertions, 2 deletions
diff --git a/lib/service/servicemp3.h b/lib/service/servicemp3.h index f4d657ca..1d77483f 100644 --- a/lib/service/servicemp3.h +++ b/lib/service/servicemp3.h @@ -50,7 +50,7 @@ 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 Object + public iServiceInformation, public iSeekableService, public iAudioTrackSelection, public iAudioChannelSelection, public iSubtitleOutput, public iStreamedService, public Object { DECLARE_REF(eServiceMP3); public: @@ -78,8 +78,8 @@ public: RESULT cueSheet(ePtr<iCueSheet> &ptr) { ptr = 0; return -1; } RESULT audioDelay(ePtr<iAudioDelay> &ptr) { ptr = 0; return -1; } RESULT rdsDecoder(ePtr<iRdsDecoder> &ptr) { ptr = 0; return -1; } - RESULT stream(ePtr<iStreamableService> &ptr) { ptr = 0; return -1; } RESULT keys(ePtr<iServiceKeys> &ptr) { ptr = 0; return -1; } + RESULT stream(ePtr<iStreamableService> &ptr) { ptr = 0; return -1; } // iPausableService RESULT pause(); @@ -117,6 +117,11 @@ public: PyObject *getSubtitleList(); PyObject *getCachedSubtitle(); + // iStreamedService + RESULT streamed(ePtr<iStreamedService> &ptr); + PyObject *getBufferCharge(); + int setBufferSize(int size); + struct audioStream { GstPad* pad; @@ -149,6 +154,17 @@ public: { } }; + struct bufferInfo + { + int bufferPercent; + int avgInRate; + int avgOutRate; + long long bufferingLeft; + bufferInfo() + :bufferPercent(0), avgInRate(0), avgOutRate(0), bufferingLeft(-1) + { + } + }; private: int m_currentAudioStream; int m_currentSubtitleStream; @@ -162,6 +178,8 @@ private: friend class eServiceFactoryMP3; std::string m_filename; std::string m_title; + int m_buffer_size; + bufferInfo m_bufferInfo; eServiceMP3(const char *filename, const char *title); Signal2<void,iPlayableService*,int> m_event; enum |
