aboutsummaryrefslogtreecommitdiff
path: root/lib/service
diff options
context:
space:
mode:
authorFraxinas <andreas.frisch@multimedia-labs.de>2009-09-01 14:52:33 +0200
committerFraxinas <andreas.frisch@multimedia-labs.de>2009-09-01 14:52:33 +0200
commitf4f3ff0f6bac194589233d2211f3e0572e3a1c90 (patch)
tree68a6a78b274c3e15366dba1b194f26278c94925a /lib/service
parentaff1a2d62ca6de2b4cf373fe6040e6af30a5f9ae (diff)
downloadenigma2-f4f3ff0f6bac194589233d2211f3e0572e3a1c90.tar.gz
enigma2-f4f3ff0f6bac194589233d2211f3e0572e3a1c90.zip
mediaplayer: stop playback if async-done message reports zero audio or video streams (work around spinlock when trying to play weird containers)
Diffstat (limited to 'lib/service')
-rw-r--r--lib/service/servicemp3.cpp4
1 files changed, 3 insertions, 1 deletions
diff --git a/lib/service/servicemp3.cpp b/lib/service/servicemp3.cpp
index 2844b477..149a1906 100644
--- a/lib/service/servicemp3.cpp
+++ b/lib/service/servicemp3.cpp
@@ -1095,7 +1095,6 @@ void eServiceMP3::gstBusCall(GstBus *bus, GstMessage *msg)
eWarning("Gstreamer error: %s (%i) from %s", err->message, err->code, sourceName );
if ( err->domain == GST_STREAM_ERROR )
{
- eDebug("err->code %d", err->code);
if ( err->code == GST_STREAM_ERROR_CODEC_NOT_FOUND )
{
if ( g_strrstr(sourceName, "videosink") )
@@ -1164,6 +1163,9 @@ void eServiceMP3::gstBusCall(GstBus *bus, GstMessage *msg)
eDebug("eServiceMP3::async-done - %d video, %d audio, %d subtitle", n_video, n_audio, n_text);
+ if ( n_video + n_audio <= 0 )
+ stop();
+
active_idx = 0;
m_audioStreams.clear();