From 2902cdc4ca6416ec85ce32a76fac2a99910aaee8 Mon Sep 17 00:00:00 2001 From: Georg Chini Date: Sat, 24 Oct 2015 13:00:39 +0200 Subject: [PATCH] null-sink: correct update of timestamp when state changes to RUNNING or IDLE u->timestamp should be reset to "now" when the sink state changes from INIT or SUSPENDED to IDLE or RUNNING. Thanks to Olivier Delbeke for reporting the bug and testing the patch. Bug report is here: http://lists.freedesktop.org/archives/pulseaudio-discuss/2015-October/024553.html --- src/modules/module-null-sink.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/modules/module-null-sink.c b/src/modules/module-null-sink.c index 0270ba2ea..5b98ba5cb 100644 --- a/src/modules/module-null-sink.c +++ b/src/modules/module-null-sink.c @@ -93,8 +93,10 @@ static int sink_process_msg( switch (code) { case PA_SINK_MESSAGE_SET_STATE: - if (PA_PTR_TO_UINT(data) == PA_SINK_RUNNING) - u->timestamp = pa_rtclock_now(); + if (pa_sink_get_state(u->sink) == PA_SINK_SUSPENDED || pa_sink_get_state(u->sink) == PA_SINK_INIT) { + if (PA_PTR_TO_UINT(data) == PA_SINK_RUNNING || PA_PTR_TO_UINT(data) == PA_SINK_IDLE) + u->timestamp = pa_rtclock_now(); + } break;