On 2 January 2015 at 18:04, Tanu Kaskinen <tanu.kaskinen at linux.intel.com> wrote: > I noticed that when resuming the tunnel sink, there was a small amount > of previously played audio before the new audio started to play. > Normally that probably wouldn't be noticeable, because there would be > a few seconds of silence played before suspending the sink due to > inactivity, so the unwanted old audio would be just silence, but in my > configuration sinks are suspended immediately when there's nothing > playing to them, so the glitch becomes audible. > --- > src/modules/module-tunnel-sink-new.c | 9 +++++++++ > 1 file changed, 9 insertions(+) > > diff --git a/src/modules/module-tunnel-sink-new.c b/src/modules/module-tunnel-sink-new.c > index 7d3bd99..1b3858d 100644 > --- a/src/modules/module-tunnel-sink-new.c > +++ b/src/modules/module-tunnel-sink-new.c > @@ -109,6 +109,15 @@ static void cork_stream(struct userdata *u, bool cork) { > pa_assert(u); > pa_assert(u->stream); > > + if (cork) { > + /* When the sink becomes suspended (which is the only case where we > + * cork the stream), we don't want to keep any old data around, because > + * the old data is most likely unrelated to the audio that will be > + * played at the time when the sink starts running again. */ > + if ((operation = pa_stream_flush(u->stream, NULL, NULL))) > + pa_operation_unref(operation); > + } > + > if ((operation = pa_stream_cork(u->stream, cork, NULL, NULL))) > pa_operation_unref(operation); > } Looks good to me. -- Arun