diff options
Diffstat (limited to 'lib/service/servicemp3.cpp')
| -rw-r--r-- | lib/service/servicemp3.cpp | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/lib/service/servicemp3.cpp b/lib/service/servicemp3.cpp index fd3587af..2ddfe925 100644 --- a/lib/service/servicemp3.cpp +++ b/lib/service/servicemp3.cpp @@ -196,6 +196,7 @@ eServiceMP3::eServiceMP3(const char *filename, const char *title): m_filename(fi m_currentSubtitleStream = 0; m_subtitle_widget = 0; m_currentTrickRatio = 0; + m_buffer_size = 1*1024*1024; CONNECT(m_seekTimeout->timeout, eServiceMP3::seekTimeoutCB); CONNECT(m_subtitle_sync_timer->timeout, eServiceMP3::pushSubtitles); CONNECT(m_pump.recv_msg, eServiceMP3::gstPoll); @@ -332,6 +333,7 @@ eServiceMP3::eServiceMP3(const char *filename, const char *title): m_filename(fi } gst_element_set_state (m_gst_playbin, GST_STATE_PLAYING); + setBufferSize(m_buffer_size); } eServiceMP3::~eServiceMP3() @@ -1214,6 +1216,14 @@ eDebug("AUDIO STRUCT=%s", g_type); g_free(eventname); } } + break; + } + case GST_MESSAGE_BUFFERING: + { + GstBufferingMode mode; + gst_message_parse_buffering(msg, &(m_bufferInfo.bufferPercent)); + gst_message_parse_buffering_stats(msg, &mode, &(m_bufferInfo.avgInRate), &(m_bufferInfo.avgOutRate), &(m_bufferInfo.bufferingLeft)); + m_event((iPlayableService*)this, evBuffering); } default: break; @@ -1401,6 +1411,7 @@ RESULT eServiceMP3::disableSubtitles(eWidget *parent) PyObject *eServiceMP3::getCachedSubtitle() { +// eDebug("eServiceMP3::getCachedSubtitle"); Py_RETURN_NONE; } @@ -1429,6 +1440,31 @@ PyObject *eServiceMP3::getSubtitleList() return l; } +RESULT eServiceMP3::streamed(ePtr<iStreamedService> &ptr) +{ + ptr = this; + return 0; +} + +PyObject *eServiceMP3::getBufferCharge() +{ + ePyObject tuple = PyTuple_New(5); + PyTuple_SET_ITEM(tuple, 0, PyInt_FromLong(m_bufferInfo.bufferPercent)); + PyTuple_SET_ITEM(tuple, 1, PyInt_FromLong(m_bufferInfo.avgInRate)); + PyTuple_SET_ITEM(tuple, 2, PyInt_FromLong(m_bufferInfo.avgOutRate)); + PyTuple_SET_ITEM(tuple, 3, PyInt_FromLong(m_bufferInfo.bufferingLeft)); + PyTuple_SET_ITEM(tuple, 4, PyInt_FromLong(m_buffer_size)); + return tuple; +} + +int eServiceMP3::setBufferSize(int size) +{ + m_buffer_size = size; + g_object_set (G_OBJECT (m_gst_playbin), "buffer-size", m_buffer_size, NULL); + return 0; +} + + #else #warning gstreamer not available, not building media player #endif |
