diff options
Diffstat (limited to 'libao2/ao_coreaudio.c')
-rw-r--r-- | libao2/ao_coreaudio.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/libao2/ao_coreaudio.c b/libao2/ao_coreaudio.c index e3ed62136c..7ceaff6646 100644 --- a/libao2/ao_coreaudio.c +++ b/libao2/ao_coreaudio.c @@ -1025,6 +1025,7 @@ static OSStatus RenderCallbackSPDIF( AudioDeviceID inDevice, static int play(void* output_samples,int num_bytes,int flags) { int wrote, b_digital; + SInt32 exit_reason; // Check whether we need to reset the digital output stream. if (ao->b_digital && ao->b_stream_format_changed) @@ -1052,6 +1053,11 @@ static int play(void* output_samples,int num_bytes,int flags) wrote=write_buffer(output_samples, num_bytes); audio_resume(); + + do { + exit_reason = CFRunLoopRunInMode(kCFRunLoopDefaultMode, 0.01, true); + } while (exit_reason == kCFRunLoopRunHandledSource); + return wrote; } |