[aud] fix audio stuttering

This commit is contained in:
2024-02-20 22:53:27 +05:30
parent ee3033f236
commit 137ca87fdc
2 changed files with 6 additions and 2 deletions

View File

@@ -1,3 +1,4 @@
use std::time::Duration;
use sdl2::audio::AudioQueue;
use crate::emu::memory::RamMemory;
@@ -35,7 +36,10 @@ impl<'a> AudioProcessor<'a> {
let audio_base_reg = (self.get_audio_base_reg() as u32) << 8;
let fb = self.frame_buffer.as_mut();
if self.audio_queue.size() == 0 {
log::warn!("Detected Queue empty!");
log::trace!("Detected Queue empty!");
}
while self.audio_queue.size() > 10 {
::std::thread::sleep(Duration::from_micros(1))
}
self.ram.try_copy_block(audio_base_reg, fb)?;
self.audio_queue.queue_audio(fb).map_err(|s| { EmulatorError::OtherError(Some(AUDIO), s) })

View File

@@ -77,7 +77,7 @@ fn main() -> EmulatorResult<()> {
canvas.present();
::std::thread::sleep(Duration::new(0, 1_000_000_000u32 / 60));
::std::thread::sleep(Duration::new(0, 1_000_000_000u32 / 60 - 2000_000));
}
Ok(())