From 6451ad271a0a2a869ceb80836b01e3c35d60cb3d Mon Sep 17 00:00:00 2001 From: Romain Vimont Date: Fri, 13 Sep 2024 20:03:17 +0200 Subject: [PATCH] Ignore minBufferSize on error A negative return value from AudioRecord.getMinBufferSize() represents an error. Only consider positive values (0 would be invalid). Refs #5228 --- .../com/genymobile/scrcpy/audio/AudioDirectCapture.java | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/server/src/main/java/com/genymobile/scrcpy/audio/AudioDirectCapture.java b/server/src/main/java/com/genymobile/scrcpy/audio/AudioDirectCapture.java index 361c7bac..8d4a4c2d 100644 --- a/server/src/main/java/com/genymobile/scrcpy/audio/AudioDirectCapture.java +++ b/server/src/main/java/com/genymobile/scrcpy/audio/AudioDirectCapture.java @@ -56,8 +56,11 @@ public class AudioDirectCapture implements AudioCapture { builder.setAudioSource(audioSource); builder.setAudioFormat(AudioConfig.createAudioFormat()); int minBufferSize = AudioRecord.getMinBufferSize(SAMPLE_RATE, CHANNEL_CONFIG, ENCODING); - // This buffer size does not impact latency - builder.setBufferSizeInBytes(8 * minBufferSize); + if (minBufferSize > 0) { + // This buffer size does not impact latency + builder.setBufferSizeInBytes(8 * minBufferSize); + } + return builder.build(); }