When I run my app streaming FLAC in background on a Surface device, when I let the screen turns itself off, I get sometimes sound stutterring (especially when I change the volume with physical volume keys).
I replaced the default FileSystem with my own to work directly with WinRT IRandomAccessStream, because I need to decrypt files on the fly (decrypting is not cpu intensive at all and my RandomAccessStream implementation does readahead in order to avoid Stream buffer starvation so I don’t think the problem comes from there.)
I also made Stream buffer size quite large (128KB).
CPU / memory usage of the app is quite good during streaming (2-3% CPU, 30MB), so I’m very surprised of this stuterring. It seems to me that the Tegra CPU is quite aggressivly underclocked when the screen is turned off (it must go in a "connected standby" mode that should be really low power). So maybe Under these circumstance the FMOD pipeline do not fill the PCM buffer fast enough because its threads are not scheduled as often as required.
Are my conclusions right ? Is there something I’m missing ?
PS: I tried to set the dsp buffer size to 32K * 4, but the stuttering still occurs.
- sferquel asked 6 years ago
I can’t replicate this using a simple test application streaming a FLAC source on my ARM tablet. Unfortunately this is not a Surface so the test isn’t 100% accurate.
What version of FMOD are you using? In 4.44.00 we changed the way we map to the system’s worker threads which could have an effect on issues like this.
Please login first to submit.