diff options
Diffstat (limited to 'media/libmediaplayerservice/nuplayer')
-rw-r--r-- | media/libmediaplayerservice/nuplayer/NuPlayerRenderer.cpp | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/media/libmediaplayerservice/nuplayer/NuPlayerRenderer.cpp b/media/libmediaplayerservice/nuplayer/NuPlayerRenderer.cpp index 9cf6b62..4135426 100644 --- a/media/libmediaplayerservice/nuplayer/NuPlayerRenderer.cpp +++ b/media/libmediaplayerservice/nuplayer/NuPlayerRenderer.cpp @@ -850,6 +850,18 @@ bool NuPlayer::Renderer::onDrainAudioQueue() { // immediately after start. Investigate error message // "vorbis_dsp_synthesis returned -135", along with RTSP. uint32_t numFramesPlayed; + if(!mAudioSink->ready() && !mAudioQueue.empty()) { + while (!mAudioQueue.empty()) { + QueueEntry *entry = &*mAudioQueue.begin(); + if (entry->mBuffer == NULL) { + notifyEOS(true /* audio */, entry->mFinalResult); + } + mAudioQueue.erase(mAudioQueue.begin()); + entry = NULL; + } + return false; + } + if (mAudioSink->getPosition(&numFramesPlayed) != OK) { // When getPosition fails, renderer will not reschedule the draining // unless new samples are queued. |