From 6139230828ff9c70e4af4a8eff6b9c61d64e208f Mon Sep 17 00:00:00 2001 From: Romain Vimont Date: Sun, 12 Nov 2023 18:34:04 +0100 Subject: [PATCH] Increase default audio buffer for FLAC FLAC is not low latency: the default encoder produces blocks of 4096 samples, which represent ~85.333ms. Increase the audio buffer by default so that audio playback works. --- app/src/cli.c | 13 +++++++++++++ app/src/options.c | 2 +- 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/app/src/cli.c b/app/src/cli.c index 1e716d6d..54aa87db 100644 --- a/app/src/cli.c +++ b/app/src/cli.c @@ -2264,6 +2264,19 @@ parse_args_with_getopt(struct scrcpy_cli_args *args, int argc, char *argv[], opts->require_audio = true; } + if (opts->audio_playback && opts->audio_buffer == -1) { + if (opts->audio_codec == SC_CODEC_FLAC) { + // Use 50 ms audio buffer by default, but use a higher value for FLAC, + // which is not low latency (the default encoder produces blocks of + // 4096 samples, which represent ~85.333ms). + LOGI("FLAC audio: audio buffer increased to 120 ms (use " + "--audio-buffer to set a custom value)"); + opts->audio_buffer = SC_TICK_FROM_MS(120); + } else { + opts->audio_buffer = SC_TICK_FROM_MS(50); + } + } + #ifdef HAVE_V4L2 if (v4l2) { if (opts->lock_video_orientation == diff --git a/app/src/options.c b/app/src/options.c index 6c72d767..092fbd56 100644 --- a/app/src/options.c +++ b/app/src/options.c @@ -46,7 +46,7 @@ const struct scrcpy_options scrcpy_options_default = { .window_height = 0, .display_id = 0, .display_buffer = 0, - .audio_buffer = SC_TICK_FROM_MS(50), + .audio_buffer = -1, // depends on the audio format, .audio_output_buffer = SC_TICK_FROM_MS(5), .time_limit = 0, #ifdef HAVE_V4L2