+---------------+-----------------------------------------------------------------------------------+ | | : | | <--delay--> | <-- changeable buffer --------------------------------------------------------> | | | : | +---------------+-----------------------------------------------------------------------------------+ ^ ^ ^ ^ | Where the | The delay, i.e. | somewhere here we | here's where we enforce | audio hw | where the changable buffer | have the goal | the maximum buffer size, | read samples | is handed to the fixed buf | | considerably larger then the goal Data is requested from the application only in blocks >= the reqsize, and also moved only in blocks >= the reqsize from the changeable buffer to the fixed buffer.