Browse Source

Stop CoreAudio from doing expensive audio rate conversion

Sam Lantinga 8 years ago
parent
commit
71a4e8ed13
1 changed files with 7 additions and 0 deletions
  1. 7 0
      src/audio/coreaudio/SDL_coreaudio.m

+ 7 - 0
src/audio/coreaudio/SDL_coreaudio.m

@@ -734,6 +734,13 @@ COREAUDIO_OpenDevice(_THIS, void *handle, const char *devname, int iscapture)
     if (!update_audio_session(this, SDL_TRUE)) {
         return -1;
     }
+
+    /* Stop CoreAudio from doing expensive audio rate conversion */
+    @autoreleasepool {
+        AVAudioSession* session = [AVAudioSession sharedInstance];
+        [session setPreferredSampleRate:this->spec.freq error:nil];
+        this->spec.freq = (int)session.sampleRate;
+    }
 #endif
 
     /* Setup a AudioStreamBasicDescription with the requested format */