Skip to content
Permalink
Browse files

Android/openslES: prevent to run out of buffers if Enqueue() fails.

  • Loading branch information
1bsyl committed Feb 5, 2019
1 parent 40781df commit bf823bf2dce9f3933f025b12709fb0f3978754a5
Showing with 7 additions and 5 deletions.
  1. +7 −5 src/audio/openslES/SDL_openslES.c
@@ -549,19 +549,21 @@ openslES_PlayDevice(_THIS)
SLresult result;

LOGI("======openslES_PlayDevice( )======");
/* Queue it up */

/* Queue it up */
result = (*bqPlayerBufferQueue)->Enqueue(bqPlayerBufferQueue, audiodata->pmixbuff[audiodata->next_buffer], this->spec.size);
if (SL_RESULT_SUCCESS != result) {
/* just puk here */
/* next ! */
}

audiodata->next_buffer++;
if (audiodata->next_buffer >= NUM_BUFFERS) {
audiodata->next_buffer = 0;
}

/* If Enqueue fails, callback won't be called.
* Post the semphore, not to run out of buffer */
if (SL_RESULT_SUCCESS != result) {
SDL_SemPost(audiodata->playsem);
}

return;
}

0 comments on commit bf823bf

Please sign in to comment.