diff --git a/libarmbox/playback_gst.cpp b/libarmbox/playback_gst.cpp index 8b0b832..cd44af0 100644 --- a/libarmbox/playback_gst.cpp +++ b/libarmbox/playback_gst.cpp @@ -230,6 +230,12 @@ GstBusSyncReply Gst_bus_call(GstBus * bus, GstMessage *msg, gpointer user_data) result = gst_tag_list_merge(m_stream_tags, tags, GST_TAG_MERGE_REPLACE); if (result) { + if (m_stream_tags && gst_tag_list_is_equal(m_stream_tags, result)) + { + gst_tag_list_free(tags); + gst_tag_list_free(result); + break; + } if (m_stream_tags) gst_tag_list_free(m_stream_tags); m_stream_tags = result; @@ -949,6 +955,62 @@ void cPlayback::GetMetadata(std::vector &keys, std::vector