[pulseaudio-discuss] [PATCH 09/11] pstream: Allow reading/writing through srchannel
David Henningsson
david.henningsson at canonical.com
Tue May 27 07:55:43 PDT 2014
On 2014-05-06 12:14, Tanu Kaskinen wrote:
> On Tue, 2014-04-29 at 15:22 +0200, David Henningsson wrote:
>> +void pa_pstream_set_srchannel(pa_pstream *p, pa_srchannel *sr) {
>> + pa_assert(p);
>> + pa_assert(PA_REFCNT_VALUE(p) > 0);
>> +
>> + if (sr == p->sr)
>> + return;
>> +
>> + /* Make sure we flush the queue, so we don't write half a package on one channel and half on the other */
>> + while (!p->dead && (do_write(p) > 0 || p->write.current)) {
>> + pa_log_debug("Flushing commands before %s srchannel...", sr ? "setting up" : "tearing down");
>> + }
>
> Is your intention to write all pending packets or just the current
> packet? The log message implies the former, but the logic implies the
> latter.
>
> What if the write buffer is full? As far as I can see, this will then
> busy-loop, and if the other end doesn't read, this will busy-loop
> forever.
The intent is to switch when the out buffer is completely empty. Anyway,
due to the busy loop problem you pointed out I'll change this part for
next revision.
--
David Henningsson, Canonical Ltd.
https://launchpad.net/~diwic
More information about the pulseaudio-discuss
mailing list