X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/2f95f50608f64e18a0513ac2e1b713a603db0498..1a0088bffb8804bebd31ac6377656191684e4cae:/lib/service/servicemp3.cpp diff --git a/lib/service/servicemp3.cpp b/lib/service/servicemp3.cpp index 569272b0..80356dc5 100644 --- a/lib/service/servicemp3.cpp +++ b/lib/service/servicemp3.cpp @@ -40,6 +40,7 @@ eServiceFactoryMP3::eServiceFactoryMP3() extensions.push_back("dat"); extensions.push_back("flac"); extensions.push_back("mp4"); + extensions.push_back("mov"); extensions.push_back("m4a"); sc->addServiceFactory(eServiceFactoryMP3::id, this, extensions); } @@ -223,7 +224,7 @@ eServiceMP3::eServiceMP3(const char *filename): m_filename(filename), m_pump(eAp sourceinfo.containertype = ctAVI; sourceinfo.is_video = TRUE; } - else if ( strcasecmp(ext, ".mp4") == 0 ) + else if ( strcasecmp(ext, ".mp4") == 0 || strcasecmp(ext, ".mov") == 0) { sourceinfo.containertype = ctMP4; sourceinfo.is_video = TRUE; @@ -620,7 +621,7 @@ RESULT eServiceMP3::connectEvent(const Slot2 &event, RESULT eServiceMP3::start() { - assert(m_state == stIdle); + ASSERT(m_state == stIdle); m_state = stRunning; if (m_gst_pipeline) @@ -634,7 +635,7 @@ RESULT eServiceMP3::start() RESULT eServiceMP3::stop() { - assert(m_state != stIdle); + ASSERT(m_state != stIdle); if (m_state == stStopped) return -1; eDebug("MP3: %s stop\n", m_filename.c_str()); @@ -695,6 +696,9 @@ void eServiceMP3::seekTimeoutCB() // iPausableService RESULT eServiceMP3::pause() { + if (m_state != stRunning) + return; + if (!m_gst_pipeline) return -1; GstStateChangeReturn res = gst_element_set_state(m_gst_pipeline, GST_STATE_PAUSED); @@ -709,6 +713,9 @@ RESULT eServiceMP3::pause() RESULT eServiceMP3::unpause() { + if (m_state != stRunning) + return; + if (!m_gst_pipeline) return -1;