karlheyes / icecast-kh

KH branch of icecast
GNU General Public License v2.0
298 stars 107 forks source link

MetaData Sync #350

Open Swiftgti opened 3 years ago

Swiftgti commented 3 years ago

Hi Karl, I want to know how to sync audio and metadata. I see that metadata is sent by icecast instantly regardless of in how queue-size has the user connection. Lets say the metadata its not sent to end of the queue-size, its sent in the next data sent to the connection. or I am wrong?

What I am saying that when metadata is changed apparently icecast send metadata to all connections at that precise moment and not at the end of queue-size of the user.. so one user that has 0 buffer and other user that is a slow user that has 100k of queue-size in use, both will receive the metadata at the same time... so if this is how icecast works, how is possible to sync metadata with the audio to slow users?

Thanks you in advance.

rustyhodge commented 2 years ago

That seems to be an issue in the player, not Icecast. We had this issue in our player app where we were parsing (and presenting) the metadata as we got it, not as we played through the buffer.

The metadata is presented synchronously every X bytes in the stream (based on Icy-metaint:), Icecast doesn't know how large the player buffer size is.