From 3e33bd1bcbcb7620e45fe08814685cf1d621d75e Mon Sep 17 00:00:00 2001 From: 987123879113 <63495610+987123879113@users.noreply.github.com> Date: Thu, 1 Apr 2021 21:12:10 +0900 Subject: Changed audio_latency valid range from 1-5 to 0-5 (#7916) --- src/osd/modules/lib/osdobj_common.cpp | 2 +- src/osd/modules/sound/direct_sound.cpp | 3 ++- src/osd/modules/sound/xaudio2_sound.cpp | 3 ++- 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/src/osd/modules/lib/osdobj_common.cpp b/src/osd/modules/lib/osdobj_common.cpp index 932beed416b..cedc39a17e0 100644 --- a/src/osd/modules/lib/osdobj_common.cpp +++ b/src/osd/modules/lib/osdobj_common.cpp @@ -129,7 +129,7 @@ const options_entry osd_options::s_option_entries[] = { nullptr, nullptr, OPTION_HEADER, "OSD SOUND OPTIONS" }, { OSDOPTION_SOUND, OSDOPTVAL_AUTO, OPTION_STRING, "sound output method: " }, - { OSDOPTION_AUDIO_LATENCY "(1-5)", "2", OPTION_INTEGER, "set audio latency (increase to reduce glitches, decrease for responsiveness)" }, + { OSDOPTION_AUDIO_LATENCY "(0-5)", "2", OPTION_INTEGER, "set audio latency (increase to reduce glitches, decrease for responsiveness)" }, #ifndef NO_USE_PORTAUDIO { nullptr, nullptr, OPTION_HEADER, "PORTAUDIO OPTIONS" }, diff --git a/src/osd/modules/sound/direct_sound.cpp b/src/osd/modules/sound/direct_sound.cpp index 05333674541..45c3d8a0d44 100644 --- a/src/osd/modules/sound/direct_sound.cpp +++ b/src/osd/modules/sound/direct_sound.cpp @@ -428,7 +428,8 @@ HRESULT sound_direct_sound::dsound_init() stream_format.nAvgBytesPerSec = stream_format.nSamplesPerSec * stream_format.nBlockAlign; // compute the buffer size based on the output sample rate - DWORD stream_buffer_size = stream_format.nSamplesPerSec * stream_format.nBlockAlign * m_audio_latency / 10; + int audio_latency = std::max(m_audio_latency, 1); + DWORD stream_buffer_size = stream_format.nSamplesPerSec * stream_format.nBlockAlign * audio_latency / 10; stream_buffer_size = std::max(DWORD(1024), (stream_buffer_size / 1024) * 1024); LOG(("stream_buffer_size = %u\n", (unsigned)stream_buffer_size)); diff --git a/src/osd/modules/sound/xaudio2_sound.cpp b/src/osd/modules/sound/xaudio2_sound.cpp index 1d9e1036f9a..9c76e16c07b 100644 --- a/src/osd/modules/sound/xaudio2_sound.cpp +++ b/src/osd/modules/sound/xaudio2_sound.cpp @@ -479,7 +479,8 @@ void sound_xaudio2::create_buffers(const WAVEFORMATEX &format) { // Compute the buffer size // buffer size is equal to the bytes we need to hold in memory per X tenths of a second where X is audio_latency - float audio_latency_in_seconds = m_audio_latency / 10.0f; + int audio_latency = std::max(m_audio_latency, 1); + float audio_latency_in_seconds = audio_latency / 10.0f; uint32_t format_bytes_per_second = format.nSamplesPerSec * format.nBlockAlign; uint32_t total_buffer_size = format_bytes_per_second * audio_latency_in_seconds * RESAMPLE_TOLERANCE; -- cgit v1.2.3