diff --git a/src/plugins/gstreamer/camerabin/camerabinimagecapture.cpp b/src/plugins/gstreamer/camerabin/camerabinimagecapture.cpp index 4d77e982..ccc5d299 100644 --- a/src/plugins/gstreamer/camerabin/camerabinimagecapture.cpp +++ b/src/plugins/gstreamer/camerabin/camerabinimagecapture.cpp @@ -301,7 +301,9 @@ bool CameraBinImageCapture::processBusMessage(const QGstreamerMessage &message) if (!element) return false; - QString elementName = QString::fromLatin1(gst_element_get_name(element)); + gchar *name = gst_element_get_name(element); + QString elementName = QString::fromLatin1(name); + g_free(name); #if !GST_CHECK_VERSION(1,0,0) GstElementClass *elementClass = GST_ELEMENT_GET_CLASS(element); QString elementLongName = elementClass->details.longname; diff --git a/src/plugins/gstreamer/mediaplayer/qgstreamerplayersession.cpp b/src/plugins/gstreamer/mediaplayer/qgstreamerplayersession.cpp index 3d6c455a..5a841c0f 100644 --- a/src/plugins/gstreamer/mediaplayer/qgstreamerplayersession.cpp +++ b/src/plugins/gstreamer/mediaplayer/qgstreamerplayersession.cpp @@ -1896,7 +1896,7 @@ void QGstreamerPlayerSession::playlistTypeFindFunction(GstTypeFind *find, gpoint { QGstreamerPlayerSession* session = (QGstreamerPlayerSession*)userData; - const gchar *uri = 0; + gchar *uri = 0; #if GST_CHECK_VERSION(1,0,0) g_object_get(G_OBJECT(session->m_playbin), "current-uri", &uri, NULL); #else @@ -1909,10 +1909,13 @@ void QGstreamerPlayerSession::playlistTypeFindFunction(GstTypeFind *find, gpoint else length = qMin(length, guint64(1024)); + QString currentUri = QString::fromUtf8(uri); + g_free(uri); + while (length > 0) { const guint8 *data = gst_type_find_peek(find, 0, length); if (data) { - session->m_isPlaylist = (QPlaylistFileParser::findPlaylistType(QString::fromUtf8(uri), 0, data, length) != QPlaylistFileParser::UNKNOWN); + session->m_isPlaylist = (QPlaylistFileParser::findPlaylistType(currentUri, 0, data, length) != QPlaylistFileParser::UNKNOWN); return; } length >>= 1; // for HTTP files length is not available,