From 0e783cfea4a4e1d2cb1ff61784b2506cd75f3439 Mon Sep 17 00:00:00 2001 From: Martin Pulec Date: Thu, 21 Feb 2019 15:15:23 +0100 Subject: [PATCH] Coreaudio play.: option to specify buffer size --- src/audio/playback/coreaudio.cpp | 8 +++++++- src/host.cpp | 2 +- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/src/audio/playback/coreaudio.cpp b/src/audio/playback/coreaudio.cpp index 1e953c939..f9ee08af6 100644 --- a/src/audio/playback/coreaudio.cpp +++ b/src/audio/playback/coreaudio.cpp @@ -162,7 +162,13 @@ static int audio_play_ca_reconfigure(void *state, struct audio_desc desc) ring_buffer_destroy(s->buffer); s->buffer = NULL; - s->buffer = ring_buffer_init(desc.bps * desc.ch_count * desc.sample_rate); + { + int buf_len = desc.bps * desc.ch_count * (desc.sample_rate / 5); // 200 ms by default + if (get_commandline_param("audio-buffer-len")) { + buf_len = atoi(get_commandline_param("audio-buffer-len")) / (desc.bps * desc.ch_count) * (desc.bps * desc.ch_count); + } + s->buffer = ring_buffer_init(buf_len); + } size = sizeof(stream_desc); ret = AudioUnitGetProperty(s->auHALComponentInstance, kAudioUnitProperty_StreamFormat, kAudioUnitScope_Input, diff --git a/src/host.cpp b/src/host.cpp index e49541e8a..825ede421 100644 --- a/src/host.cpp +++ b/src/host.cpp @@ -394,7 +394,7 @@ bool register_mainloop(mainloop_t m, void *u) // some common parameters used within multiple modules ADD_TO_PARAM(audio_buffer_len, "audio-buffer-len", "* audio-buffer-len=\n" - " Sets length of software audio playback buffer (in ms, ALSA/Portaudio)\n"); + " Sets length of software audio playback buffer (in ms, ALSA/Coreaudio/Portaudio)\n"); ADD_TO_PARAM(low_latency_audio, "low-latency-audio", "* low-latency-audio\n" " Try to reduce audio latency at the expense of worse reliability\n"); ADD_TO_PARAM(window_title, "window-title", "* window-title=\n"