You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The current approach of pausing the output after every failed read leads to stuttering playback on a loaded system, particularly if the filesystem is being taxed. In these cases we likely still have plenty of buffer between the DMA and read loop.
Instead we should either debounce the pause to only occur after a number of failed reads, or we should buffer the reads and only pause when the read buffer is exhausted.
Buffering has the side effect of adding additional latency but is easier to determine if we are at risk of underrun. Debouncing won't add any latency but underrun won't be as easy to detect.
The text was updated successfully, but these errors were encountered:
The current approach of pausing the output after every failed read leads to stuttering playback on a loaded system, particularly if the filesystem is being taxed. In these cases we likely still have plenty of buffer between the DMA and read loop.
Instead we should either debounce the pause to only occur after a number of failed reads, or we should buffer the reads and only pause when the read buffer is exhausted.
Buffering has the side effect of adding additional latency but is easier to determine if we are at risk of underrun. Debouncing won't add any latency but underrun won't be as easy to detect.
The text was updated successfully, but these errors were encountered: