summary refs log tree commit diff stats
diff options
context:
space:
mode:
-rw-r--r--audio/coreaudio.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/audio/coreaudio.c b/audio/coreaudio.c
index 6afc55cb26..534fb3ef7c 100644
--- a/audio/coreaudio.c
+++ b/audio/coreaudio.c
@@ -33,9 +33,11 @@
 
 struct {
     int buffer_frames;
+    int nbuffers;
     int isAtexit;
 } conf = {
     .buffer_frames = 512,
+    .nbuffers = 4,
     .isAtexit = 0
 };
 
@@ -393,7 +395,7 @@ static int coreaudio_init_out (HWVoiceOut *hw, audsettings_t *as)
                            "Could not get device buffer frame size\n");
         return -1;
     }
-    hw->samples = 4 * core->audioDevicePropertyBufferFrameSize;
+    hw->samples = conf.nbuffers * core->audioDevicePropertyBufferFrameSize;
 
     /* get StreamFormat */
     propertySize = sizeof(core->outputStreamBasicDescription);
@@ -527,6 +529,8 @@ static void coreaudio_audio_fini (void *opaque)
 static struct audio_option coreaudio_options[] = {
     {"BUFFER_SIZE", AUD_OPT_INT, &conf.buffer_frames,
      "Size of the buffer in frames", NULL, 0},
+    {"BUFFER_COUNT", AUD_OPT_INT, &conf.nbuffers,
+     "Number of buffers", NULL, 0},
     {NULL, 0, NULL, NULL, NULL, 0}
 };