qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-devel] Re: [RESEND PATCH 1/3] pulseaudio: process 1/4 buffer max a


From: malc
Subject: [Qemu-devel] Re: [RESEND PATCH 1/3] pulseaudio: process 1/4 buffer max at once
Date: Tue, 25 Jan 2011 19:57:32 +0300 (MSK)
User-agent: Alpine 2.00 (LNX 1167 2008-08-23)

On Mon, 24 Jan 2011, Gerd Hoffmann wrote:

> Limit the size of data pieces processed by the pulseaudio worker
> threads.  Never ever process more than 1/4 of the buffer at once.
> 
> Background: The buffer area currently processed by the pulseaudio thread
> is blocked, i.e. the main thread (or iothread) can't fill in more data
> there.  The buffer processing time is roughly real-time due to the
> pa_simple_write() call blocking when the output queue to the pulse
> server is full.  Thus processing big chunks at once means blocking
> a large part of the buffer for a long time.  This brings high latency
> and can lead to dropouts.
> 
> When processing the buffer in smaller chunks the rpos handling becomes a
> problem though.  The thread reads hw->rpos without knowing whenever
> qpa_run_out has already seen the last (small) chunk processed and
> updated rpos accordingly.  There is no point in reading hw->rpos though,
> pa->rpos can be used instead.  We just need to take care to initialize
> pa->rpos before kicking the thread.
> 
[..snip...]

Thanks, applied.

-- 
mailto:address@hidden



reply via email to

[Prev in Thread] Current Thread [Next in Thread]