Merge branch 'v0.16.x'
Conflicts: src/player_thread.c src/playlist_control.c
This commit is contained in:
@@ -508,6 +508,14 @@ configure_hw:
|
||||
g_debug("buffer_size=%u period_size=%u",
|
||||
(unsigned)alsa_buffer_size, (unsigned)alsa_period_size);
|
||||
|
||||
if (alsa_period_size == 0)
|
||||
/* this works around a SIGFPE bug that occurred when
|
||||
an ALSA driver indicated period_size==0; this
|
||||
caused a division by zero in alsa_play(). By using
|
||||
the fallback "1", we make sure that this won't
|
||||
happen again. */
|
||||
alsa_period_size = 1;
|
||||
|
||||
ad->period_frames = alsa_period_size;
|
||||
ad->period_position = 0;
|
||||
|
||||
|
||||
@@ -493,7 +493,8 @@ httpd_output_pause(void *data)
|
||||
|
||||
if (has_clients) {
|
||||
static const char silence[1020];
|
||||
return httpd_output_play(data, silence, sizeof(silence), NULL);
|
||||
return httpd_output_play(data, silence, sizeof(silence),
|
||||
NULL) > 0;
|
||||
} else {
|
||||
g_usleep(100000);
|
||||
return true;
|
||||
@@ -522,7 +523,7 @@ httpd_output_tag(void *data, const struct tag *tag)
|
||||
|
||||
/* flush the current stream, and end it */
|
||||
|
||||
encoder_flush(httpd->encoder, NULL);
|
||||
encoder_pre_tag(httpd->encoder, NULL);
|
||||
httpd_output_encoder_to_clients(httpd);
|
||||
|
||||
/* send the tag to the encoder - which starts a new
|
||||
|
||||
@@ -518,7 +518,7 @@ static void my_shout_set_tag(void *data,
|
||||
if (sd->encoder->plugin->tag != NULL) {
|
||||
/* encoder plugin supports stream tags */
|
||||
|
||||
ret = encoder_flush(sd->encoder, &error);
|
||||
ret = encoder_pre_tag(sd->encoder, &error);
|
||||
if (!ret) {
|
||||
g_warning("%s", error->message);
|
||||
g_error_free(error);
|
||||
|
||||
Reference in New Issue
Block a user