[pulseaudio-discuss] [PATCH v0] loopback: Fix cork state not updated after move

Mikel Astiz mikel.astiz.oss at gmail.com
Mon Jul 8 07:25:11 PDT 2013


Hi Tanu,

On Mon, Jul 8, 2013 at 3:06 PM, Tanu Kaskinen
<tanu.kaskinen at linux.intel.com> wrote:
> On Mon, 2013-07-01 at 10:27 +0200, Mikel Astiz wrote:
>> From: Mikel Astiz <mikel.astiz at bmw-carit.de>
>>
>> The source output and sink inputs should be corked if the corresponding
>> sink/source is suspended, as handled during module initialization. This
>> also needs to be handled during stream move, because the suspend state
>> of the destination sink/source might be different to the previous one.
>>
>> This fixes the issue with an infinite number of "Requesting rewind due
>> to end of underrun" traces after a stream move.
>
> module-loopback should certainly update the stream cork states when the
> streams are moved, but this patch looks like it will cause crashing. Did
> you test the patch? The moving() callback is called when i->sink is
> NULL, and pa_sink_input_cork() looks like it will crash in that
> situation.

I did test the patch and didn't reproduce the issue you describe,
neither did Georg, as it seems ([1]). Can you explain how this can be
reproduced?

You mention i->sink is NULL but how could that be the case during
*source*-output-moving?

>
> As an aside, it's not clear to me why there would be endless rewind
> requests if the cork state is wrong. I would expect there to be just
> loads of "Could not peek into queue" messages.

The issue can be reproduced easily by moving a stream from a suspended
source to a running one.

Cheers,
Mikel

[1] http://lists.freedesktop.org/archives/pulseaudio-discuss/2013-July/017735.html

>
> --
> Tanu
>


More information about the pulseaudio-discuss mailing list