[PATCH] alsa: reset watermark to initial values on resume

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

 



On 10/08/2011 11:27 AM, Arun Raghavan wrote:
> On Fri, 2011-10-07 at 18:12 -0500, Pierre-Louis Bossart wrote:
>> Watermark level and latency values are not restored when
>> resuming, the values used prior to suspending are reused.
>> This leads to side effects when underruns happen and buffer
>> sizes are updated, PulseAudio can never meet lower latency
>> requirements.
>>
>> Solution: keep track of watermark and latency values on sink or
>> source creation, and reapply them on resume to start with
>> a clean slate.
>
> One possible concern here -- if the default values are too low for a
> system, every suspend-unsuspend cycle will force readjustment,
> potentially causing artefacts.
>
> I'd argue that it's better to adjust the defaults on such a system,
> though, and broadly take the optimistic view that any major
> readjustments are unlikely to be required permanently.
>
> This is in my tree now -- just pointing out one side effect in case
> anyone else has similar concerns.

For the reason pointed out above, I think this is in general a bad idea.

Or put in another way - what is it that causes the underrun and 
watermark to increase in the first place? Shouldn't we try to fix *that* 
instead?

But if we can't fix that something, what is it that says that it has 
gone away because we suspend/resume the stream? Can there be better 
methods to determine the "something" has stopped, e g if we have 
fulfilled our watermark with a big margin for a specific amount of time?

-- 
David Henningsson, Canonical Ltd.
http://launchpad.net/~diwic


[Index of Archives]     [Linux Audio Users]     [AMD Graphics]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux