client: Don't update smoother while corked
authorArun Raghavan <arun.raghavan@collabora.co.uk>
Tue, 11 Jan 2011 18:28:25 +0000 (23:58 +0530)
committerColin Guthrie <cguthrie@mandriva.org>
Sat, 15 Jan 2011 16:08:45 +0000 (16:08 +0000)
commit3e552bdf19ac06be8377ec318ee405ea81400661
treebf4916bf2f640cdc672bd9e36532ea4fcdc437a2
parentaefa94f05282bb1164be7d1812fff4c086d9d55b
client: Don't update smoother while corked

This prevents the smoother attached to the stream clock from being
updated while the stream is corked, which in turn ensures that once
corking is completed, pa_stream_get_time() always returns the same value
until the stream is uncorked - i.e., the clock does not advance when the
client believes that it will not.

The actual call to pa_smoother_put() happens on things like stream
suspend/unsuspend, which trigger timing updates. This changes the
smoother coefficients, which means that a call to pa_smoother_get() for
the same value of 'x' can return different values before and after a
timing update.
src/pulse/stream.c