summaryrefslogtreecommitdiff
path: root/libs/backends/alsa/alsa_audiobackend.cc
diff options
context:
space:
mode:
authorRobin Gareus <robin@gareus.org>2015-01-28 13:19:03 +0100
committerRobin Gareus <robin@gareus.org>2015-01-28 13:47:24 +0100
commitcf8e7bc135d356c7cb77730ab289696d006924e6 (patch)
tree4a84d188042e2070e10727d8e9314522bee4d942 /libs/backends/alsa/alsa_audiobackend.cc
parent397ce4ccc72c3618ec43f3edbd5f1f3189d35d2d (diff)
ALSA-backend separate report for error and x-run
Diffstat (limited to 'libs/backends/alsa/alsa_audiobackend.cc')
-rw-r--r--libs/backends/alsa/alsa_audiobackend.cc12
1 files changed, 10 insertions, 2 deletions
diff --git a/libs/backends/alsa/alsa_audiobackend.cc b/libs/backends/alsa/alsa_audiobackend.cc
index dcf719e251..ade04b5c30 100644
--- a/libs/backends/alsa/alsa_audiobackend.cc
+++ b/libs/backends/alsa/alsa_audiobackend.cc
@@ -1420,10 +1420,18 @@ AlsaAudioBackend::main_process_thread ()
++no_proc_errors;
xrun = true;
}
- if (_pcmi->state () < 0 || no_proc_errors > bailout) {
+ if (_pcmi->state () < 0) {
PBD::error << _("AlsaAudioBackend: I/O error. Audio Process Terminated.") << endmsg;
break;
}
+ if (no_proc_errors > bailout) {
+ PBD::error
+ << string_compose (
+ _("AlsaAudioBackend: Audio Process Terminated after %1 consecutive x-runs."),
+ no_proc_errors)
+ << endmsg;
+ break;
+ }
while (nr >= (long)_samples_per_period && _freewheeling == _freewheel) {
uint32_t i = 0;
@@ -1501,7 +1509,7 @@ AlsaAudioBackend::main_process_thread ()
if (xrun && (_pcmi->capt_xrun() > 0 || _pcmi->play_xrun() > 0)) {
engine.Xrun ();
#if 0
- fprintf(stderr, "ALSA x-run read: %.1f ms, write: %.1f ms\n",
+ fprintf(stderr, "ALSA x-run read: %.2f ms, write: %.2f ms\n",
_pcmi->capt_xrun() * 1000.0, _pcmi->play_xrun() * 1000.0);
#endif
}