diff options
author | Mahesh Lanka <mlanka@codeaurora.org> | 2014-03-14 12:34:01 +0530 |
---|---|---|
committer | Gerrit - the friendly Code Review server <code-review@localhost> | 2014-05-07 07:22:01 -0700 |
commit | c78d2f6f7815a1da8e2a48bbf043fc37e1dc4347 (patch) | |
tree | 3e9df550e35d16e0d20e89540921779c447b139e | |
parent | af072387706558c0fc1f4f2233879be062a808eb (diff) | |
download | android_hardware_qcom_media-c78d2f6f7815a1da8e2a48bbf043fc37e1dc4347.tar.gz android_hardware_qcom_media-c78d2f6f7815a1da8e2a48bbf043fc37e1dc4347.tar.bz2 android_hardware_qcom_media-c78d2f6f7815a1da8e2a48bbf043fc37e1dc4347.zip |
dashplayer: Handle Eos Error Propagation in Renderer
Handle usecase where first frame after audio decoder
creation is EOS frame.
Change-Id: I9bcbfd3930eb3961ce5b5bfa36d692812aa92e9f
CRs-Fixed: 625722
-rw-r--r-- | dashplayer/DashPlayerRenderer.cpp | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/dashplayer/DashPlayerRenderer.cpp b/dashplayer/DashPlayerRenderer.cpp index 35b8fab4..cc81d705 100644 --- a/dashplayer/DashPlayerRenderer.cpp +++ b/dashplayer/DashPlayerRenderer.cpp @@ -233,6 +233,21 @@ void DashPlayer::Renderer::signalAudioSinkChanged() { bool DashPlayer::Renderer::onDrainAudioQueue() { uint32_t numFramesPlayed; + + // Check if first frame is EOS, process EOS and return + if(1 == mAudioQueue.size()) + { + QueueEntry *entry = &*mAudioQueue.begin(); + if (entry->mBuffer == NULL) { + ALOGE("onDrainAudioQueue process EOS"); + notifyEOS(true /* audio */, entry->mFinalResult); + + mAudioQueue.erase(mAudioQueue.begin()); + entry = NULL; + return false; + } + } + if (mAudioSink->getPosition(&numFramesPlayed) != OK) { return false; } |