diff --git a/CHANGELOG.md b/CHANGELOG.md index 49beef28c..2a4b23daf 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,7 @@ - Add `Sample::bits_per_sample` method. - Update `audio_thread_priority` to 0.34. +- AAudio: Configure buffer to ensure consistent callback buffer sizes. - ALSA: Improve `BufferSize::Fixed` latency precision and audio callback performance. - ALSA: Change `BufferSize::Default` to use the device defaults. - ALSA: Change card enumeration to work like `aplay -L` does. diff --git a/src/host/aaudio/mod.rs b/src/host/aaudio/mod.rs index f5f024461..b87c86a36 100644 --- a/src/host/aaudio/mod.rs +++ b/src/host/aaudio/mod.rs @@ -217,7 +217,9 @@ fn configure_for_device( builder = builder.sample_rate(config.sample_rate.0.try_into().unwrap()); match &config.buffer_size { BufferSize::Default => builder, - BufferSize::Fixed(size) => builder.buffer_capacity_in_frames(*size as i32), + BufferSize::Fixed(size) => builder + .frames_per_data_callback(*size as i32) + .buffer_capacity_in_frames((*size * 2) as i32), // Double-buffering } }