[pulseaudio-discuss] how's fighting rewind going?
Lu Guanqun
guanqun.lu at intel.com
Fri Jun 17 10:35:27 PDT 2011
On Sat, Jun 18, 2011 at 12:49:33AM +0800, David Henningsson wrote:
<snip>
> PulseAudio has some packet overhead, and rewinding has some extra
> overhead. Here's how it gets stuck:
>
> When PulseAudio's buffer is empty, and a new packet comes in that is to
> be played immediately, that causes a rewind. Now assume this packet is
> so small, that by the time PulseAudio gets to process the next packet,
> the buffer is empty again, because the few samples added have already
> been played. Then a new rewind will be triggered, and this goes on and
> on until the kernel kills PA for having used too much CPU with realtime
> priority.
Thanks for the info.
The phenomenon here is it will rewind for ever, while the CPU load is
not very high. Maybe my test time should last longer.
>
> So, the time taken to process the packet, including the rewind, and
> possibly also time stolen by other processes etc, must be less than the
> time taken to play back the samples that the packet carries. (And
> probably with a decent margin.)
>
> What my PA patch does is to try to merge several packets that PA has in
> its processing queue so it will only do rewind once.
> What my GStreamer patch should do, is to remove some strange packet
> splitter in the pulsesink end, but I might have misunderstood something
> since it got reverted. It did however help me, and quite a few other
> people as well, so it's still in Ubuntu.
So is it supposed to be the bigger buffer in pulsesink, the less number
of rewind it will encounter?
>
> --
> David Henningsson, Canonical Ltd.
> http://launchpad.net/~diwic
--
guanqun
More information about the pulseaudio-discuss
mailing list