Skip to content

Commit c06f2c5

Browse files
committed
fix(aaudio): ensure consistent callback buffer sizes with double-buffering
1 parent ff6f5ca commit c06f2c5

File tree

2 files changed

+4
-1
lines changed

2 files changed

+4
-1
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
- Add `Sample::bits_per_sample` method.
44
- Update `audio_thread_priority` to 0.34.
5+
- AAudio: Configure buffer to ensure consistent callback buffer sizes.
56
- ALSA: Improve `BufferSize::Fixed` latency precision and audio callback performance.
67
- ALSA: Change `BufferSize::Default` to use the device defaults.
78
- ALSA: Change card enumeration to work like `aplay -L` does.

src/host/aaudio/mod.rs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -217,7 +217,9 @@ fn configure_for_device(
217217
builder = builder.sample_rate(config.sample_rate.0.try_into().unwrap());
218218
match &config.buffer_size {
219219
BufferSize::Default => builder,
220-
BufferSize::Fixed(size) => builder.buffer_capacity_in_frames(*size as i32),
220+
BufferSize::Fixed(size) => builder
221+
.frames_per_data_callback(*size as i32)
222+
.buffer_capacity_in_frames((*size * 2) as i32), // Double-buffering
221223
}
222224
}
223225

0 commit comments

Comments
 (0)