aboutsummaryrefslogtreecommitdiffstats
path: root/src/output/httpd_output_plugin.c
diff options
context:
space:
mode:
authorMax Kellermann <max@duempel.org>2012-08-14 21:39:33 +0200
committerMax Kellermann <max@duempel.org>2012-08-14 21:39:33 +0200
commit302972e9fc179fe17b8d658b8c5b4d47c1b8eeab (patch)
treef4c7e0f102a86bd9c1a034ff3e87812a749a518d /src/output/httpd_output_plugin.c
parent31b380b2664e74d47f6862ecf44d62b0a82eddf2 (diff)
downloadmpd-302972e9fc179fe17b8d658b8c5b4d47c1b8eeab.tar.gz
mpd-302972e9fc179fe17b8d658b8c5b4d47c1b8eeab.tar.xz
mpd-302972e9fc179fe17b8d658b8c5b4d47c1b8eeab.zip
output/httpd: fix throttling bug after resuming playback
Reset the timer when paused and no client is connected. This fixes Mantis ticket 0003527.
Diffstat (limited to 'src/output/httpd_output_plugin.c')
-rw-r--r--src/output/httpd_output_plugin.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/output/httpd_output_plugin.c b/src/output/httpd_output_plugin.c
index f7c6127c8..a063479db 100644
--- a/src/output/httpd_output_plugin.c
+++ b/src/output/httpd_output_plugin.c
@@ -422,6 +422,14 @@ httpd_output_delay(struct audio_output *ao)
{
struct httpd_output *httpd = (struct httpd_output *)ao;
+ if (!httpd_output_lock_has_clients(httpd) && httpd->base.pause) {
+ /* if there's no client and this output is paused,
+ then httpd_output_pause() will not do anything, it
+ will not fill the buffer and it will not update the
+ timer; therefore, we reset the timer here */
+ timer_reset(httpd->timer);
+ }
+
return httpd->timer->started
? timer_delay(httpd->timer)
: 0;