From 44d4553031e7e5bd4e6d3007d8530accdce6b7a6 Mon Sep 17 00:00:00 2001 From: Cameron Gutman Date: Sun, 1 Dec 2019 20:51:18 -0800 Subject: [PATCH] Add support for arbitrary audio duration --- Limelight/Stream/Connection.m | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/Limelight/Stream/Connection.m b/Limelight/Stream/Connection.m index 5972823..c1fe4db 100644 --- a/Limelight/Stream/Connection.m +++ b/Limelight/Stream/Connection.m @@ -122,7 +122,8 @@ int ArInit(int audioConfiguration, POPUS_MULTISTREAM_CONFIGURATION opusConfig, v [audioSession setPreferredSampleRate:opusConfig->sampleRate error:&audioSessionError]; [audioSession setCategory: AVAudioSessionCategoryPlayback error: &audioSessionError]; - [audioSession setPreferredIOBufferDuration:0.005 error:&audioSessionError]; + [audioSession setPreferredIOBufferDuration:(opusConfig->samplesPerFrame / (opusConfig->sampleRate / 1000)) / 1000.0 + error:&audioSessionError]; [audioSession setActive: YES error: &audioSessionError]; // FIXME: Calling this breaks surround audio for some reason @@ -391,7 +392,8 @@ void ClConnectionStatusUpdate(int status) _arCallbacks.init = ArInit; _arCallbacks.cleanup = ArCleanup; _arCallbacks.decodeAndPlaySample = ArDecodeAndPlaySample; - _arCallbacks.capabilities = CAPABILITY_DIRECT_SUBMIT; + _arCallbacks.capabilities = CAPABILITY_DIRECT_SUBMIT | + CAPABILITY_SUPPORTS_ARBITRARY_AUDIO_DURATION; LiInitializeConnectionCallbacks(&_clCallbacks); _clCallbacks.stageStarting = ClStageStarting;