aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRomain Rollet <romain.rollet@gmail.com>2015-06-20 15:37:19 +0200
committerMax Kellermann <max@duempel.org>2015-06-20 15:37:19 +0200
commitae77542a118120adb4b339ad6ec2ec433bf43533 (patch)
treeba8b6c0cdc8dba738ac31fe2162ebde4ddaf840e
parent980187f85643adbb67c95d72794fbe74e585acd5 (diff)
downloadmpd-ae77542a118120adb4b339ad6ec2ec433bf43533.tar.gz
mpd-ae77542a118120adb4b339ad6ec2ec433bf43533.tar.xz
mpd-ae77542a118120adb4b339ad6ec2ec433bf43533.zip
OutputControl: fix fail_timer check right after booting
Right after booting, the monotonic clock starts with a very small value, and AudioOutput::LockUpdate() may believe that the fail_timer has not recovered yet.
-rw-r--r--NEWS2
-rw-r--r--src/output/OutputControl.cxx3
2 files changed, 4 insertions, 1 deletions
diff --git a/NEWS b/NEWS
index c07674e83..03400d83a 100644
--- a/NEWS
+++ b/NEWS
@@ -6,6 +6,8 @@ ver 0.19.10 (not yet released)
- ffmpeg: improve seeking accuracy
* encoder
- opus: fix bogus granulepos
+* output
+ - fix failure to open device right after booting
* neighbor
- nfs: fix deadlock when connecting
diff --git a/src/output/OutputControl.cxx b/src/output/OutputControl.cxx
index 89428fa87..9eafdb166 100644
--- a/src/output/OutputControl.cxx
+++ b/src/output/OutputControl.cxx
@@ -184,7 +184,8 @@ AudioOutput::LockUpdate(const AudioFormat audio_format,
const ScopeLock protect(mutex);
if (enabled && really_enabled) {
- if (fail_timer.Check(REOPEN_AFTER * 1000)) {
+ if (!fail_timer.IsDefined() ||
+ fail_timer.Check(REOPEN_AFTER * 1000)) {
return Open(audio_format, mp);
}
} else if (IsOpen())