fix: move the S->MS conversion to the total bytesize, instead of it being the last operation.

due to if small audio fragments are divided trough integer division,
they'll evaluate to 0 miliseconds, which is inaccurate.
This commit is contained in:
2025-03-25 11:35:02 +01:00
parent 6aa4840777
commit 9d41a2a65b

View File

@@ -185,9 +185,9 @@ audiodata audio_wav_load(audiodevice const* dev, char const* fpath) {
return (audiodata){0}; return (audiodata){0};
} }
audio.ms = 1000 * (((audio.len) / (SDL_AUDIO_BITSIZE(dev->fmt) / 8)) / spec.channels / dev->freq);
// calculate the time in milliseconds of the audio fragment // calculate the time in milliseconds of the audio fragment
// by dividing the audio bytelength by the format's bitsize, by the audio device's channels and the audio device's frequency // by dividing the audio bytelength by the format's bitsize, by the audio device's channels and the audio device's frequency
audio.ms = (((1000 * audio.len) / (SDL_AUDIO_BITSIZE(dev->fmt) / 8)) / spec.channels / dev->freq);
return audio; return audio;
} }