From ce9ee38304af932c65bd6e1d6591dc3c3552e7d7 Mon Sep 17 00:00:00 2001
From: gd <gd@iotide.com>
Date: Wed, 29 Jan 2025 08:45:21 +0200
Subject: [PATCH] decoder/Bridge: DecoderBridge::UpdateStreamTag - return false
 if stream tag not changed.

Some streams send the same tags frequently, causeing unnecessary update
events.
---
 src/decoder/Bridge.cxx | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/src/decoder/Bridge.cxx b/src/decoder/Bridge.cxx
index 78a222e70..0eec4a1d1 100644
--- a/src/decoder/Bridge.cxx
+++ b/src/decoder/Bridge.cxx
@@ -239,6 +239,10 @@ DecoderBridge::UpdateStreamTag(InputStream *is) noexcept
 		/* discard the song tag; we don't need it */
 		song_tag.reset();
 
+	if (stream_tag && tag && *stream_tag == *tag)
+		/* not changed */
+		return false;
+
 	stream_tag = std::move(tag);
 	return true;
 }