diff options
author | Ronghua Wu <ronghuawu@google.com> | 2014-08-18 16:27:08 -0700 |
---|---|---|
committer | Ronghua Wu <ronghuawu@google.com> | 2014-08-19 10:05:45 -0700 |
commit | 3e5efb37308aa1f54c2a72cd8a7a73d2d7921a90 (patch) | |
tree | e574d7fb45d5b7e06032d58afbbde44e61fde8a1 /media | |
parent | f2575571d88cd42508407e98957a19a875dcf926 (diff) | |
download | frameworks_av-3e5efb37308aa1f54c2a72cd8a7a73d2d7921a90.zip frameworks_av-3e5efb37308aa1f54c2a72cd8a7a73d2d7921a90.tar.gz frameworks_av-3e5efb37308aa1f54c2a72cd8a7a73d2d7921a90.tar.bz2 |
NuPlayerRenderer: only query audio sink for position for the first entry.
Bug: 17035257
Change-Id: I472ec4610e1174c59986f42d72fe55f90e93731e
Diffstat (limited to 'media')
-rw-r--r-- | media/libmediaplayerservice/nuplayer/NuPlayerRenderer.cpp | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/media/libmediaplayerservice/nuplayer/NuPlayerRenderer.cpp b/media/libmediaplayerservice/nuplayer/NuPlayerRenderer.cpp index 3640038..3777f64 100644 --- a/media/libmediaplayerservice/nuplayer/NuPlayerRenderer.cpp +++ b/media/libmediaplayerservice/nuplayer/NuPlayerRenderer.cpp @@ -318,6 +318,7 @@ size_t NuPlayer::Renderer::fillAudioBuffer(void *buffer, size_t size) { bool hasEOS = false; size_t sizeCopied = 0; + bool firstEntry = true; while (sizeCopied < size && !mAudioQueue.empty()) { QueueEntry *entry = &*mAudioQueue.begin(); @@ -328,14 +329,14 @@ size_t NuPlayer::Renderer::fillAudioBuffer(void *buffer, size_t size) { break; } - if (entry->mOffset == 0) { + if (firstEntry && entry->mOffset == 0) { + firstEntry = false; int64_t mediaTimeUs; CHECK(entry->mBuffer->meta()->findInt64("timeUs", &mediaTimeUs)); ALOGV("rendering audio at media time %.2f secs", mediaTimeUs / 1E6); if (mFirstAudioTimeUs == -1) { mFirstAudioTimeUs = mediaTimeUs; } - mAnchorTimeMediaUs = mediaTimeUs; uint32_t numFramesPlayed; CHECK_EQ(mAudioSink->getPosition(&numFramesPlayed), (status_t)OK); |