[pulseaudio-discuss] can rewindings in the null sink produce noises in programs recording its monitor?

Arun Raghavan arun at arunraghavan.net
Thu Oct 11 13:15:34 UTC 2018


On Tue, 9 Oct 2018, at 1:57 PM, Tanu Kaskinen wrote:
> On Sat, 2018-10-06 at 15:29 -0300, wellington wallace wrote:
> > Hi! PulseEffects developer here again.
> > 
> > Like the title says I'd like to know if rewinds can cause crackling noises
> > when we are recording from a null sink monitor.
> 
> Yes it can: 
> https://gitlab.freedesktop.org/pulseaudio/pulseaudio/issues/304
> 
> > In PulseEffecs I use the
> > plugin pulsesrc from GStreamer to record the null sink monitor and whenever
> > there is a change in the null sink volume or in the volume of a sink input
> > playing to the null sink I can here noises. Looking at Pulseaudio's logs I
> > can see lines with:
> > 
> > [null-sink] module-null-sink.c: Requested to rewind 3528 bytes.
> > [null-sink] sink.c: Processing rewind...
> > [null-sink] sink-input.c: Have to rewind 2840 bytes on render memblockq.
> > [null-sink] sink-input.c: Have to rewind 1420 bytes on implementor.
> > [null-sink] source.c: Processing rewind...
> > [null-sink] module-null-sink.c: Rewound 2840 bytes.
> > [pulseaudio] module-stream-restore.c: Storing volume/mute/device for stream
> > sink-input-by-media-role:music.
> > [pulseaudio] protocol-native.c: Client spotify changes volume of sink input
> > Spotify.
> > 
> > whenever the application volume is changed. At the same time they are shown
> > I can hear cracklings. So it seems related. I noticed that forcing pulsesrc
> > to use lower latencies help but do not fix the problem. Changing volumes
> > with pulsesrc latency-time parameter set to 1000 us produces less noises
> > than when it is set to 10000 us.
> > 
> > I tried my best to see if there is anything I can do on my side to remove
> > this noise I found nothing. Is that how things are or is there anything
> > that can be done to remove this noises?
> 
> This is how things are. It would be great if someone would have a hard
> look at the monitor source rewinding code and see what goes wrong
> there.

I'd love it if someone beat me to it, but I think we need some unit testing for this.

In general, I've been trying to add some high-level utilities to allow us to write such tests easily, and we need to extend this to do a lot more:

  https://gitlab.freedesktop.org/pulseaudio/pulseaudio/tree/master/src/tests/lo-test-util.h
  https://gitlab.freedesktop.org/arun/pulseaudio/blob/reconfigure/src/tests/test-util.h

Cheers,
Arun


More information about the pulseaudio-discuss mailing list