Public feed
#723139
The non-DMA case:
+-------------------+-----------------------------------------------------------------------------------+
| : | : rs | |
| <--fixed--> : rs | <-- changeable buffer --------------------------------------------------------> |
| 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
| |
| if the fixed buffer fill level | if the changeable buffer fill level
| drops below the delay minus | drops below the goal minus reqsize
| reqsize, we move more data from the | we ask the app for more data.
| changeable buffer to the fixed
| buffer.
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.