Skip to content

Commit fdc835d

Browse files
authored
Merge pull request #4898 from JeffM2501/better_buffer_defaults
[RAUDIO] Better computation of the default audio stream buffer size
2 parents f6d05cc + 5185d4c commit fdc835d

File tree

1 file changed

+6
-2
lines changed

1 file changed

+6
-2
lines changed

src/raudio.c

+6-2
Original file line numberDiff line numberDiff line change
@@ -2104,8 +2104,12 @@ AudioStream LoadAudioStream(unsigned int sampleRate, unsigned int sampleSize, un
21042104
// The size of a streaming buffer must be at least double the size of a period
21052105
unsigned int periodSize = AUDIO.System.device.playback.internalPeriodSizeInFrames;
21062106

2107-
// If the buffer is not set, compute one that would give us a buffer good enough for a decent frame rate
2108-
unsigned int subBufferSize = (AUDIO.Buffer.defaultSize == 0)? AUDIO.System.device.sampleRate/30 : AUDIO.Buffer.defaultSize;
2107+
// If the buffer is not set, compute one that would give us a buffer good enough for a decent frame rate at the device bit size/rate
2108+
int deviceBitsPerSample = AUDIO.System.device.playback.format;
2109+
if (deviceBitsPerSample > 4) deviceBitsPerSample = 4;
2110+
deviceBitsPerSample *= AUDIO.System.device.playback.channels;
2111+
2112+
unsigned int subBufferSize = (AUDIO.Buffer.defaultSize == 0) ? (AUDIO.System.device.sampleRate / 30 * deviceBitsPerSample) : AUDIO.Buffer.defaultSize;
21092113

21102114
if (subBufferSize < periodSize) subBufferSize = periodSize;
21112115

0 commit comments

Comments
 (0)