summaryrefslogtreecommitdiffstats
path: root/media/libmediaplayerservice/nuplayer
diff options
context:
space:
mode:
authorXiaoming Yang <xmyang@codeaurora.org>2015-03-30 18:05:45 +0800
committerSteve Kondik <steve@cyngn.com>2015-12-14 02:58:56 -0800
commitdc5f0eb0bb08885f63a97a111b02e234efc5c413 (patch)
tree90dd9a729d94639967a24a96ad5bfa96db607e00 /media/libmediaplayerservice/nuplayer
parent064bb6a090471c473e4641e28296854eb9850cf1 (diff)
downloadframeworks_av-dc5f0eb0bb08885f63a97a111b02e234efc5c413.zip
frameworks_av-dc5f0eb0bb08885f63a97a111b02e234efc5c413.tar.gz
frameworks_av-dc5f0eb0bb08885f63a97a111b02e234efc5c413.tar.bz2
nuplayer: Fix audio EOS notifiy on AudioSink not ready
Audio EOS won't be notified by renderer if AudioSink is not ready and first buffer itself has EOS. Playback complete won't happen due to missing audio EOS. Hence, audio EOS needs to be handled and notified. Change-Id: I779c7034d1964485c2b064c0179d3cd341af5a5f CRs-Fixed: 801121
Diffstat (limited to 'media/libmediaplayerservice/nuplayer')
-rw-r--r--media/libmediaplayerservice/nuplayer/NuPlayerRenderer.cpp12
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.