GStreamer: fix looping a media when it's loaded from qrc.
authorYoann Lopes <yoann.lopes@digia.com>
Tue, 17 Jun 2014 12:28:20 +0000 (14:28 +0200)
committerYoann Lopes <yoann.lopes@digia.com>
Thu, 3 Jul 2014 13:45:46 +0000 (15:45 +0200)
When playing a media for the second time, the backend resets the
the media by calling setMedia() with the same value.
The problem is that setMedia() clears the previous media, which is
a QFile in this case and is the one we are trying to set again...
The QFile was deleted, causing the current media to be a dangling
pointer.

Change-Id: I6854b40212fd084d1e31e756a040a02ad103b7ba
Reviewed-by: Christian Stromme <christian.stromme@digia.com>
src/plugins/gstreamer/mediaplayer/qgstreamerplayercontrol.cpp

index ff99aa3..99c471b 100644 (file)
@@ -371,7 +371,7 @@ void QGstreamerPlayerControl::setMedia(const QMediaContent &content, QIODevice *
         emit bufferStatusChanged(0);
     }
 
-    if (m_stream) {
+    if (m_stream && m_stream != stream) {
         if (m_ownStream)
             delete m_stream;
         m_stream = 0;