[pulseaudio-discuss] Underruns when changing sinks on a 'live stream'

Alejandro Gonzalez x0092071 at ti.com
Thu Jun 2 15:02:21 PDT 2011


On Wed, 2011-06-01 at 12:18 -0500, Alejandro Gonzalez wrote:

> I'm using the Ubuntu Natty 0.9.22 version, (I mean the debianized
> package). I found 2 patches from David Henningsson:
> 
> Fighting rewinds: Reduce calls to handle_seek 
> Fighting rewinds: Seek and write data in the same message
> 
> I apply them but it doesn't seem to do any improvement, after a couple
> of switches I start hearing glitches on the playback.
> 
> I guess the issue starts when the 'request to rewinds' and the
> 'limitation' differs by two-digit magnitudes like in:
> 
> D: protocol-native.c: Requesting rewind due to rewrite.
> D: alsa-sink.c: Requested to rewind 130944 bytes.
> D: alsa-sink.c: Limited to 2336 bytes.
> D: alsa-sink.c: before: 292
> D: alsa-sink.c: after: 292
> D: alsa-sink.c: Rewound 2336 bytes.
> D: sink.c: Processing rewind...
> D: sink-input.c: Have to rewind 2336 bytes on render memblockq.
> D: sink-input.c: Have to rewind 2160 bytes on implementor.
> 
> This usually happens just when the new sink starts rendering, the rest
> of the differences are just of a few bytes, usually < 50 bytes.
> 
> That's why I was asking if there is any parameter I can increase
> (buffer-sizes/latencies) in order to lower this difference.

Arun, 

Answering your post on the other email thread:

"It would be helpful to see if this happens only on
GStreamer based applications or all of them."

I'm seeing to different behaviors here:

1) using only 'paplay my_file.wav': I couldn't see progressive
audio-degradation or a progressive increase of Underruns, but after
several profile switches I hit a state where the audio is only noise.
Subsequent playbacks are all noisy. Only after setting a again a new
profile audio was rendered properly, 

2) using gstreamer: After 4-5 profile switching audio start to degrade
with glitches and Underruns messages increase with each profile switch.
But, if I let the playback finish and I start a new one, audio is fine
again, without switching profiles again. 

So, if you can help me with a couple of functions names I can start
adding some debug traces. I assume that when the stream is rerouted to a
new sink, part of the old buffer has to be copied to the new sink
buffer, right? Maybe there is a bug in this procedure, but I'm not sure
where to start looking at. 


Thanks and regards,

Alejandro.






More information about the pulseaudio-discuss mailing list