From f4f3ff0f6bac194589233d2211f3e0572e3a1c90 Mon Sep 17 00:00:00 2001 From: Fraxinas Date: Tue, 1 Sep 2009 14:52:33 +0200 Subject: [PATCH] mediaplayer: stop playback if async-done message reports zero audio or video streams (work around spinlock when trying to play weird containers) --- lib/service/servicemp3.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/lib/service/servicemp3.cpp b/lib/service/servicemp3.cpp index 2844b47..149a190 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(); -- 2.7.4