Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
coreaudio: we don't need to track number of allocated audio buffers a…
…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.