X-Git-Url: http://code.vuplus.com/gitweb/?a=blobdiff_plain;f=lib%2Fservice%2Fservicemp3.cpp;h=5c982aa1d6841875d808066447320e939ccc7fc0;hb=d58b056ba2fff638bfb27b385192abaa9a84e31b;hp=5c882ba21e5f695edbe0a976f0f4f42443fc7124;hpb=77923ed4e1caecf4cef7d46bd6979ef700fed7e2;p=vuplus_dvbapp diff --git a/lib/service/servicemp3.cpp b/lib/service/servicemp3.cpp index 5c882ba..5c982aa 100644 --- a/lib/service/servicemp3.cpp +++ b/lib/service/servicemp3.cpp @@ -174,14 +174,13 @@ int eStaticServiceMP3Info::getLength(const eServiceReference &ref) eServiceMP3::eServiceMP3(const char *filename): m_filename(filename), m_pump(eApp, 1) { + m_seekTimeout = eTimer::create(eApp); m_stream_tags = 0; - m_audioStreams.clear(); - m_subtitleStreams.clear(); m_currentAudioStream = 0; m_currentSubtitleStream = 0; m_subtitle_widget = 0; m_currentTrickRatio = 0; - CONNECT(m_seekTimeout.timeout, eServiceMP3::seekTimeoutCB); + CONNECT(m_seekTimeout->timeout, eServiceMP3::seekTimeoutCB); CONNECT(m_pump.recv_msg, eServiceMP3::gstPoll); GstElement *source = 0; @@ -274,31 +273,31 @@ eServiceMP3::eServiceMP3(const char *filename): m_filename(filename), m_pump(eAp queue_audio = gst_element_factory_make("queue", "queue_audio"); queue_video = gst_element_factory_make("queue", "queue_video"); - char demux_type[14]; + std::string demux_type; switch (sourceinfo.containertype) { case ctMPEGTS: - strcat(demux_type, "flutsdemux"); + demux_type = "flutsdemux"; break; case ctMPEGPS: case ctVCD: - strcat(demux_type, "flupsdemux"); + demux_type = "flupsdemux"; break; case ctMKV: - strcat(demux_type, "matroskademux"); + demux_type = "matroskademux"; break; case ctAVI: - strcat(demux_type, "avidemux"); + demux_type = "avidemux"; break; case ctMP4: - strcat(demux_type, "qtdemux"); + demux_type = "qtdemux"; break; default: break; } - videodemux = gst_element_factory_make(demux_type, "videodemux"); + videodemux = gst_element_factory_make(demux_type.c_str(), "videodemux"); if (!videodemux) - m_error_message = "GStreamer plugin " + (std::string)demux_type + " not available!\n"; + m_error_message = "GStreamer plugin " + demux_type + " not available!\n"; switch_audio = gst_element_factory_make ("input-selector", "switch_audio"); if (!switch_audio) @@ -527,9 +526,9 @@ RESULT eServiceMP3::setFastForward(int ratio) { m_currentTrickRatio = ratio; if (ratio) - m_seekTimeout.start(1000, 0); + m_seekTimeout->start(1000, 0); else - m_seekTimeout.stop(); + m_seekTimeout->stop(); return 0; } @@ -543,13 +542,13 @@ void eServiceMP3::seekTimeoutCB() if (ppos < 0) { ppos = 0; - m_seekTimeout.stop(); + m_seekTimeout->stop(); } if (ppos > len) { ppos = 0; stop(); - m_seekTimeout.stop(); + m_seekTimeout->stop(); return; } seekTo(ppos); @@ -1330,7 +1329,7 @@ PyObject *eServiceMP3::getSubtitleList() ePyObject l = PyList_New(0); int stream_count[sizeof(subtype_t)]; - for ( int i = 0; i < sizeof(subtype_t); i++ ) + for ( unsigned int i = 0; i < sizeof(subtype_t); i++ ) stream_count[i] = 0; for (std::vector::iterator IterSubtitleStream(m_subtitleStreams.begin()); IterSubtitleStream != m_subtitleStreams.end(); ++IterSubtitleStream)