diff options
author | Yoann Lopes <yoann.lopes@digia.com> | 2014-03-21 19:10:23 +0100 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2014-04-09 13:43:42 +0200 |
commit | 464ed66119ba065a8604ceed9963b2626a9ca586 (patch) | |
tree | effd6f665339cb77588cd9c00243c526d986d257 /src/plugins/gstreamer/mediaplayer/qgstreamermetadataprovider.cpp | |
parent | 08216062609dea47e78046dc0eeb12bc1ea8e49a (diff) | |
download | qtmultimedia-464ed66119ba065a8604ceed9963b2626a9ca586.tar.gz |
GStreamer: correctly get metadata from live sources.
For some unknown reason, "iradio-mode" was set to false on the
source element, which was preventing new metadata to be received
when playing live streams.
Task-number: QTBUG-37640
Change-Id: Ib90297e81e26a99c3dfc753bdcd5cbd1ee2f6764
Reviewed-by: Christian Stromme <christian.stromme@digia.com>
Diffstat (limited to 'src/plugins/gstreamer/mediaplayer/qgstreamermetadataprovider.cpp')
-rw-r--r-- | src/plugins/gstreamer/mediaplayer/qgstreamermetadataprovider.cpp | 19 |
1 files changed, 6 insertions, 13 deletions
diff --git a/src/plugins/gstreamer/mediaplayer/qgstreamermetadataprovider.cpp b/src/plugins/gstreamer/mediaplayer/qgstreamermetadataprovider.cpp index 22f203665..fa837d3f4 100644 --- a/src/plugins/gstreamer/mediaplayer/qgstreamermetadataprovider.cpp +++ b/src/plugins/gstreamer/mediaplayer/qgstreamermetadataprovider.cpp @@ -162,25 +162,18 @@ void QGstreamerMetaDataProvider::updateTags() { QVariantMap oldTags = m_tags; m_tags.clear(); - - QSet<QString> allTags = QSet<QString>::fromList(m_tags.keys()); + bool changed = false; QMapIterator<QByteArray ,QVariant> i(m_session->tags()); while (i.hasNext()) { i.next(); //use gstreamer native keys for elements not in m_keysMap QString key = m_keysMap.value(i.key(), i.key()); - m_tags[key] = i.value(); - allTags.insert(key); - } - - bool changed = false; - foreach (const QString &key, allTags) { - const QVariant value = m_tags.value(key); - if (value != oldTags.value(key)) { - changed = true; - emit metaDataChanged(key, value); - } + m_tags.insert(key, i.value()); + if (i.value() != oldTags.value(key)) { + changed = true; + emit metaDataChanged(key, i.value()); + } } if (changed) |