Bug 1142746 - Make unexpected SL_PLAYEVENT_HEADATMARKER notification non-fatal. r=brsun

This commit is contained in:
Matthew Gregan 2015-03-17 13:30:40 +13:00
parent d43339b8cc
commit 00f0163e46

View File

@ -76,14 +76,17 @@ static void
play_callback(SLPlayItf caller, void * user_ptr, SLuint32 event) play_callback(SLPlayItf caller, void * user_ptr, SLuint32 event)
{ {
cubeb_stream * stm = user_ptr; cubeb_stream * stm = user_ptr;
int draining;
assert(stm); assert(stm);
switch (event) { switch (event) {
case SL_PLAYEVENT_HEADATMARKER: case SL_PLAYEVENT_HEADATMARKER:
pthread_mutex_lock(&stm->mutex); pthread_mutex_lock(&stm->mutex);
assert(stm->draining); draining = stm->draining;
pthread_mutex_unlock(&stm->mutex); pthread_mutex_unlock(&stm->mutex);
stm->state_callback(stm, stm->user_ptr, CUBEB_STATE_DRAINED); if (draining) {
(*stm->play)->SetPlayState(stm->play, SL_PLAYSTATE_PAUSED); stm->state_callback(stm, stm->user_ptr, CUBEB_STATE_DRAINED);
(*stm->play)->SetPlayState(stm->play, SL_PLAYSTATE_PAUSED);
}
break; break;
default: default:
break; break;