diff --git a/src/media/audio/opensl/audio_player.cpp b/src/media/audio/opensl/audio_player.cpp index 7760c803f35a65c28f2c3c34ff322e64ebdb0071..913afd96f47ce843517432aab13fe715eb9392eb 100644 --- a/src/media/audio/opensl/audio_player.cpp +++ b/src/media/audio/opensl/audio_player.cpp @@ -86,11 +86,12 @@ AudioPlayer::processSLCallback(SLAndroidSimpleBufferQueueItf bq) playQueue_->pop(); } if (devShadowQueue_.size() == 0) { - // JAMI_ERR("AudioPlayer: nothing to play %zu %zu %zu", freeQueue_->size(), - // playQueue_->size(), devShadowQueue_.size()); for (int i = 0; i < DEVICE_SHADOW_BUFFER_QUEUE_LEN; i++) { - (*bq)->Enqueue(bq, silentBuf_.buf_, silentBuf_.size_); - devShadowQueue_.push(&silentBuf_); + if ((*bq)->Enqueue(bq, silentBuf_.buf_, silentBuf_.size_) == SL_RESULT_SUCCESS) { + devShadowQueue_.push(&silentBuf_); + } else { + JAMI_ERR("Enqueue silentBuf_ failed"); + } } } } @@ -208,9 +209,12 @@ AudioPlayer::start() result = (*playItf_)->SetPlayState(playItf_, SL_PLAYSTATE_STOPPED); SLASSERT(result); - SLASSERT( - (*playBufferQueueItf_)->Enqueue(playBufferQueueItf_, silentBuf_.buf_, silentBuf_.size_)); devShadowQueue_.push(&silentBuf_); + result = (*playBufferQueueItf_)->Enqueue(playBufferQueueItf_, silentBuf_.buf_, silentBuf_.size_); + if (result != SL_RESULT_SUCCESS) { + JAMI_ERR("Enqueue silentBuf_ failed, result = %d", result); + devShadowQueue_.pop(); + } lk.unlock(); result = (*playItf_)->SetPlayState(playItf_, SL_PLAYSTATE_PLAYING); diff --git a/src/media/audio/opensl/opensllayer.cpp b/src/media/audio/opensl/opensllayer.cpp index d433389447e1daa0f896f275de429b47665c88a0..7e682f4e0fd7684a66767551d740e96304691063 100644 --- a/src/media/audio/opensl/opensllayer.cpp +++ b/src/media/audio/opensl/opensllayer.cpp @@ -167,7 +167,8 @@ OpenSLLayer::initAudioEngine() SLASSERT((*engineObject_)->Realize(engineObject_, SL_BOOLEAN_FALSE)); SLASSERT((*engineObject_)->GetInterface(engineObject_, SL_IID_ENGINE, &engineInterface_)); - uint32_t bufSize = hardwareBuffSize_ * hardwareFormat_.getBytesPerFrame(); + size_t bufSize = hardwareBuffSize_ * hardwareFormat_.getBytesPerFrame(); + JAMI_DBG("OpenSL init: using buffer of %u bytes to support %s with %zu samples per channel", bufSize, hardwareFormat_.toString().c_str(), hardwareBuffSize_); bufs_ = allocateSampleBufs(BUF_COUNT * 3, bufSize); for (int i = 0; i < BUF_COUNT; i++) freePlayBufQueue_.push(&bufs_[i]);