From b20956e2070a71f0581348838a7666c80db45767 Mon Sep 17 00:00:00 2001 From: "alexey.lysiuk" Date: Wed, 16 Mar 2016 15:18:29 +0200 Subject: [PATCH] Made FMOD Ex stream buffer size customizable Use snd_streambuffersize to set size of stream buffer in KB, default is 64 See http://forum.zdoom.org/viewtopic.php?t=51230 --- src/sound/fmodsound.cpp | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/src/sound/fmodsound.cpp b/src/sound/fmodsound.cpp index 106abd776a..d1a4efd17f 100644 --- a/src/sound/fmodsound.cpp +++ b/src/sound/fmodsound.cpp @@ -109,6 +109,18 @@ CUSTOM_CVAR (Float, snd_waterlp, 250, CVAR_ARCHIVE|CVAR_GLOBALCONFIG) } } +CUSTOM_CVAR (Int, snd_streambuffersize, 64, CVAR_ARCHIVE|CVAR_GLOBALCONFIG) +{ + if (self < 16) + { + self = 16; + } + else if (self > 1024) + { + self = 1024; + } +} + #ifndef NO_FMOD #if FMOD_VERSION < 0x43400 #define FMOD_OPENSTATE_PLAYING FMOD_OPENSTATE_STREAMING @@ -1168,9 +1180,7 @@ bool FMODSoundRenderer::Init() } Sys->set3DSettings(0.5f, 96.f, 1.f); Sys->set3DRolloffCallback(RolloffCallback); - // The default is 16k, which periodically starves later FMOD versions - // when streaming FLAC files. - Sys->setStreamBufferSize(64*1024, FMOD_TIMEUNIT_RAWBYTES); + Sys->setStreamBufferSize(snd_streambuffersize * 1024, FMOD_TIMEUNIT_RAWBYTES); snd_sfxvolume.Callback (); return true; }