[pulseaudio-discuss] null-sink rewinds causing stutter

Daniel windseeker at gmx.de
Fri Nov 22 04:56:16 PST 2013


Dear list,

I ask you for some assistance with null-sink and skipping/stutter.

On client connect/disconnect and volume changes and many more things,
pulseaudio does a buffer rewind to let the changes take effect immediately.
So far,s o good, on all my soundcards this works like a charm.

Now I have some audio stream setup where I play audio to a null-sink and
record it from null.monitor. This works really great, until some action
like pause/play, volume change, or connecting another audio client is
causing a rewind. Then the recorded audio hangs for approx 200ms or even
more. On soft volume changes, there are many many rewinds done, and so I
have many of these skips.

The skipping audio is actually hanging, it does not drop any data. There is
just a silent break of about 200ms inserted into the stream.

Of course it would be great to make rewinding on null sink just work as it
does on alsa sinks, but in case this is inevitable, I would be fine with
some possibility to disable rewinding. I know that all action then are
delayed, but that would be okay for me as the stream is delayed about 8
seconds anyway, until it reaches the receiver.

Here is some log excerpt:

(  81.716|   0.039) D: [pulseaudio] protocol-native.c: Client spotify
changes volume of sink input Spotify.
(  81.716|   0.000) D: [null-sink] module-null-sink.c: Requested to rewind
376320 bytes.
(  81.716|   0.000) D: [null-sink] sink.c: Processing rewind...
(  81.716|   0.000) D: [null-sink] sink-input.c: Have to rewind 376320
bytes on render memblockq.
(  81.716|   0.000) D: [null-sink] sink-input.c: Have to rewind 172872
bytes on implementor.
(  81.716|   0.000) D: [null-sink] source.c: Processing rewind...
(  81.716|   0.000) D: [null-sink] module-null-sink.c: Rewound 376320 bytes.
(  81.717|   0.000) I: [pulseaudio] module-stream-restore.c: Storing
volume/mute/device for stream sink-input-by-media-role:music.
(  81.739|   0.022) D: [pulseaudio] protocol-native.c: Client spotify
changes volume of sink input Spotify.
(  81.767|   0.027) D: [null-sink] module-null-sink.c: Requested to rewind
376320 bytes.
(  81.767|   0.000) D: [null-sink] sink.c: Processing rewind...
(  81.767|   0.000) I: [pulseaudio] module-stream-restore.c: Storing
volume/mute/device for stream sink-input-by-media-role:music.
(  81.767|   0.000) D: [null-sink] sink-input.c: Have to rewind 364404
bytes on render memblockq.
(  81.767|   0.000) D: [null-sink] sink-input.c: Have to rewind 167400
bytes on implementor.
(  81.767|   0.000) D: [null-sink] source.c: Processing rewind...
(  81.767|   0.000) D: [null-sink] module-null-sink.c: Rewound 364404 bytes.
(  81.843|   0.075) D: [pulseaudio] protocol-native.c: Client spotify
changes volume of sink input Spotify.
(  81.843|   0.000) D: [null-sink] module-null-sink.c: Requested to rewind
376320 bytes.
(  81.843|   0.000) D: [null-sink] sink.c: Processing rewind...
(  81.843|   0.000) D: [null-sink] sink-input.c: Have to rewind 367448
bytes on render memblockq.
(  81.843|   0.000) D: [null-sink] sink-input.c: Have to rewind 168800
bytes on implementor.
(  81.843|   0.000) D: [null-sink] source.c: Processing rewind...
(  81.843|   0.000) D: [null-sink] module-null-sink.c: Rewound 367448 bytes.
(  81.844|   0.000) I: [pulseaudio] module-stream-restore.c: Storing
volume/mute/device for stream sink-input-by-media-role:music.
(  81.990|   0.146) D: [pulseaudio] protocol-native.c: Client spotify
changes volume of sink input Spotify.
(  81.990|   0.000) I: [pulseaudio] module-stream-restore.c: Storing
volume/mute/device for stream sink-input-by-media-role:music.
(  81.990|   0.000) D: [null-sink] module-null-sink.c: Requested to rewind
376320 bytes.
(  81.990|   0.000) D: [null-sink] sink.c: Processing rewind...
(  81.990|   0.000) D: [null-sink] sink-input.c: Have to rewind 350372
bytes on render memblockq.
(  81.990|   0.000) D: [null-sink] sink-input.c: Have to rewind 160956
bytes on implementor.
(  81.991|   0.000) D: [null-sink] source.c: Processing rewind...
(  81.991|   0.000) D: [null-sink] module-null-sink.c: Rewound 350372 bytes.
(  82.228|   0.237) D: [pulseaudio] protocol-native.c: Client spotify
changes volume of sink input Spotify.
(  82.228|   0.000) D: [null-sink] module-null-sink.c: Requested to rewind
376320 bytes.
(  82.228|   0.000) D: [null-sink] sink.c: Processing rewind...
(  82.228|   0.000) I: [pulseaudio] module-stream-restore.c: Storing
volume/mute/device for stream sink-input-by-media-role:music.
(  82.228|   0.000) D: [null-sink] sink-input.c: Have to rewind 291320
bytes on render memblockq.
(  82.228|   0.000) D: [null-sink] sink-input.c: Have to rewind 133828
bytes on implementor.
(  82.228|   0.000) D: [null-sink] source.c: Processing rewind...
(  82.228|   0.000) D: [null-sink] module-null-sink.c: Rewound 291320 bytes.
(  82.262|   0.033) D: [pulseaudio] protocol-native.c: Client spotify
changes volume of sink input Spotify.
(  82.262|   0.000) I: [pulseaudio] module-stream-restore.c: Storing
volume/mute/device for stream sink-input-by-media-role:music.
(  82.262|   0.000) D: [null-sink] module-null-sink.c: Requested to rewind
376320 bytes.
(  82.262|   0.000) D: [null-sink] sink.c: Processing rewind...
(  82.262|   0.000) D: [null-sink] sink-input.c: Have to rewind 376320
bytes on render memblockq.
(  82.262|   0.000) D: [null-sink] sink-input.c: Have to rewind 172872
bytes on implementor.
(  82.262|   0.000) D: [null-sink] source.c: Processing rewind...
(  82.262|   0.000) D: [null-sink] module-null-sink.c: Rewound 376320 bytes.

Thank you for any help!

Best regards,
Daniel
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/pulseaudio-discuss/attachments/20131122/892372fe/attachment.html>


More information about the pulseaudio-discuss mailing list