From ae77542a118120adb4b339ad6ec2ec433bf43533 Mon Sep 17 00:00:00 2001 From: Romain Rollet Date: Sat, 20 Jun 2015 15:37:19 +0200 Subject: [PATCH] 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. --- NEWS | 2 ++ src/output/OutputControl.cxx | 3 ++- 2 files changed, 4 insertions(+), 1 deletion(-) 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())