On 03/21/2012 10:13 AM, Jarkko Nikula wrote:
Oh yes. I guess start_threshold is not even known yet when we are ruling the buffer size so we cannot use it as a source for alternative rules?
We do place rule for the buffer size, so it is guarantied that it is bigger than the FIFO. Start threshold is set by the application, and it is not really guarantied when the application will set it. It can be runtime changes as well - being sw_param. In most case overwriting in pcm_prepare phase might work, but it is not guarantied.
Not sure, but what would be probably useful here is to have a way from the driver level to let userspace/ALSA know that we should use this and that start_threshold. If application does not care ALSA would use this driver provided information. If application specifies the start_threshold, we should obey it. In this case the period size would be needed to have the constraint, but we do not know beforehand what application wants to do.