output/shout: minimize the unpause latency
During the pause loop, manually sleep for 500ms if shout_delay() returns a value greater than that. Don't exhaust libshout's buffer.
This commit is contained in:
@@ -448,8 +448,15 @@ my_shout_play(void *data, const void *chunk, size_t size, GError **error)
|
||||
static bool
|
||||
my_shout_pause(void *data)
|
||||
{
|
||||
struct shout_data *sd = (struct shout_data *)data;
|
||||
static const char silence[1020];
|
||||
|
||||
if (shout_delay(sd->shout_conn) > 500) {
|
||||
/* cap the latency for unpause */
|
||||
g_usleep(500000);
|
||||
return true;
|
||||
}
|
||||
|
||||
return my_shout_play(data, silence, sizeof(silence), NULL);
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user