Skip to content

Commit

Permalink
coreaudio: we don't need to track number of allocated audio buffers a…
Browse files Browse the repository at this point in the history
…nymore.

CoreAudio takes care of iterating through the buffers and freeing them now,
so we don't have to manage this ourselves.
  • Loading branch information
icculus committed May 24, 2017
1 parent fc4402e commit 6844d92
Show file tree
Hide file tree
Showing 2 changed files with 6 additions and 8 deletions.
1 change: 0 additions & 1 deletion src/audio/coreaudio/SDL_coreaudio.h
Expand Up @@ -47,7 +47,6 @@ struct SDL_PrivateAudioData
{
SDL_Thread *thread;
AudioQueueRef audioQueue;
int numAudioBuffers;
AudioQueueBufferRef *audioBuffer;
void *buffer;
UInt32 bufferOffset;
Expand Down
13 changes: 6 additions & 7 deletions src/audio/coreaudio/SDL_coreaudio.m
Expand Up @@ -667,23 +667,22 @@ static BOOL update_audio_session(_THIS, SDL_bool open)

/* Make sure we can feed the device at least 50 milliseconds at a time. */
const double msecs = (this->spec.samples / ((double) this->spec.freq)) * 1000.0;
if (msecs >= 10.0) {
this->hidden->numAudioBuffers = 2;
} else {
this->hidden->numAudioBuffers = (int) (SDL_ceil(10.0 / msecs) * 2);
int numAudioBuffers = 2;
if (msecs < 10.0) { /* use more buffers if we have a VERY small sample set. */
numAudioBuffers = (int) (SDL_ceil(10.0 / msecs) * 2);
}

this->hidden->audioBuffer = SDL_calloc(1, sizeof (AudioQueueBufferRef) * this->hidden->numAudioBuffers);
this->hidden->audioBuffer = SDL_calloc(1, sizeof (AudioQueueBufferRef) * numAudioBuffers);
if (this->hidden->audioBuffer == NULL) {
SDL_OutOfMemory();
return 0;
}

#if DEBUG_COREAUDIO
printf("COREAUDIO: numAudioBuffers == %d\n", this->hidden->numAudioBuffers);
printf("COREAUDIO: numAudioBuffers == %d\n", numAudioBuffers);
#endif

for (i = 0; i < this->hidden->numAudioBuffers; i++) {
for (i = 0; i < numAudioBuffers; i++) {
result = AudioQueueAllocateBuffer(this->hidden->audioQueue, this->spec.size, &this->hidden->audioBuffer[i]);
CHECK_RESULT("AudioQueueAllocateBuffer");
SDL_memset(this->hidden->audioBuffer[i]->mAudioData, this->spec.silence, this->hidden->audioBuffer[i]->mAudioDataBytesCapacity);
Expand Down

0 comments on commit 6844d92

Please sign in to comment.