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 0270ba2..45532cc 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; -- 2.5.0