Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
Android/openslES: prevent to run out of buffers if Enqueue() fails.
  • Loading branch information
1bsyl committed Feb 5, 2019
1 parent 40781df commit bf823bf
Showing 1 changed file with 7 additions and 5 deletions.
12 changes: 7 additions & 5 deletions src/audio/openslES/SDL_openslES.c
Expand Up @@ -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;
}

Expand Down

0 comments on commit bf823bf

Please sign in to comment.