1
0
mirror of https://gitlab.xiph.org/xiph/icecast-server.git synced 2024-11-03 04:17:17 -05:00

prevent updated metadata being passed to listeners when the text hasn't

actually changed

svn path=/icecast/trunk/icecast/; revision=8214
This commit is contained in:
Karl Heyes 2004-11-17 20:35:35 +00:00
parent 1e6232c531
commit b2b2850708

View File

@ -93,8 +93,11 @@ int format_mp3_get_plugin (source_t *source)
plugin->_state = state; plugin->_state = state;
meta = refbuf_new (1); /* initial metadata needs to be blank for sending to clients and for
memcpy (meta->data, "", 1); comparing with new metadata */
meta = refbuf_new (2);
memcpy (meta->data, "\0\0", 2);
meta->len = 1;
state->metadata = meta; state->metadata = meta;
state->interval = ICY_METADATA_INTERVAL; state->interval = ICY_METADATA_INTERVAL;
@ -518,8 +521,9 @@ static refbuf_t *mp3_get_filter_meta (source_t *source)
bytes -= metadata_remaining; bytes -= metadata_remaining;
memmove (src, src+metadata_remaining, bytes); memmove (src, src+metadata_remaining, bytes);
/* assign metadata if it's not 1 byte, as that indicates a change */ /* assign metadata if it's greater than 1 byte, and the text has changed */
if (source_mp3->build_metadata_len > 1) if (source_mp3->build_metadata_len > 1 &&
strcmp (source_mp3->build_metadata+1, source_mp3->metadata->data+1) != 0)
{ {
refbuf_t *meta = refbuf_new (source_mp3->build_metadata_len); refbuf_t *meta = refbuf_new (source_mp3->build_metadata_len);
memcpy (meta->data, source_mp3->build_metadata, memcpy (meta->data, source_mp3->build_metadata,