From 0d1dc234fac406cce67e872dfa8391db2c64fc4e Mon Sep 17 00:00:00 2001 From: marauder2k7 Date: Sat, 25 May 2024 10:04:51 +0100 Subject: [PATCH] Update sfxSndStream.cpp we always want shorts --- Engine/source/sfx/media/sfxSndStream.cpp | 26 ++++++++---------------- 1 file changed, 8 insertions(+), 18 deletions(-) diff --git a/Engine/source/sfx/media/sfxSndStream.cpp b/Engine/source/sfx/media/sfxSndStream.cpp index 955f118d8..96ad07711 100644 --- a/Engine/source/sfx/media/sfxSndStream.cpp +++ b/Engine/source/sfx/media/sfxSndStream.cpp @@ -60,13 +60,11 @@ bool SFXSndStream::_readHeader() bitsPerSample = 16; break; case SF_FORMAT_VORBIS: - bitsPerSample = 16; - sf_command(sndFile, SFC_SET_SCALE_FLOAT_INT_READ, NULL, SF_TRUE); - break; case SF_FORMAT_PCM_24: case SF_FORMAT_PCM_32: case SF_FORMAT_FLOAT: - bitsPerSample = 32; + bitsPerSample = 16; + sf_command(sndFile, SFC_SET_SCALE_FLOAT_INT_READ, NULL, SF_TRUE); break; default: // missed, set it to 16 anyway. @@ -119,18 +117,14 @@ U32 SFXSndStream::read(U8* buffer, U32 length) { case SF_FORMAT_PCM_S8: case SF_FORMAT_PCM_U8: - framesRead = sf_readf_int(sndFile, reinterpret_cast(buffer), framesToRead); + framesRead = sf_readf_int(sndFile, (int*)buffer, framesToRead); break; case SF_FORMAT_PCM_16: - framesRead = sf_readf_short(sndFile, reinterpret_cast(buffer), framesToRead); - break; case SF_FORMAT_VORBIS: - framesRead = sf_readf_short(sndFile, reinterpret_cast(buffer), framesToRead); - break; case SF_FORMAT_PCM_24: case SF_FORMAT_PCM_32: case SF_FORMAT_FLOAT: - framesRead = sf_readf_float(sndFile, reinterpret_cast(buffer), framesToRead); + framesRead = sf_readf_short(sndFile, (short*)buffer, framesToRead); break; default: Con::errorf("SFXSndStream - read: Unsupported format."); @@ -142,15 +136,11 @@ U32 SFXSndStream::read(U8* buffer, U32 length) Con::errorf("SFXSndStream - read: %s", sf_strerror(sndFile)); } - // make sure we are more than 0 position. - if (getPosition() > 0) + // (convert to frames) - number of frames available < MAX_BUFFER? reset + if (((getPosition() / mFormat.getBytesPerSample()) - sfinfo.frames) < MAX_BUFFER) { - // (convert to frames) - number of frames available < MAX_BUFFER? - if (((getPosition() / mFormat.getBytesPerSample()) - sfinfo.frames) < MAX_BUFFER) - { - // reset stream - setPosition(0); - } + // reset stream + setPosition(0); }