diff options
author | The Android Automerger <android-build@android.com> | 2011-08-30 12:45:34 -0700 |
---|---|---|
committer | The Android Automerger <android-build@android.com> | 2011-08-30 12:45:34 -0700 |
commit | 514166986238c99e32995af204160b9d58805dc6 (patch) | |
tree | 3dce6ee437fc2372ff1d1787d2bd7b6dbfd3bea9 /media/libmediaplayerservice/nuplayer/NuPlayerRenderer.cpp | |
parent | 04170bc2cf9d543b0ca6b87d24b2a256bf08e4d0 (diff) | |
download | frameworks_av-514166986238c99e32995af204160b9d58805dc6.zip frameworks_av-514166986238c99e32995af204160b9d58805dc6.tar.gz frameworks_av-514166986238c99e32995af204160b9d58805dc6.tar.bz2 |
merge in ics-release history after reset to master
Diffstat (limited to 'media/libmediaplayerservice/nuplayer/NuPlayerRenderer.cpp')
-rw-r--r-- | media/libmediaplayerservice/nuplayer/NuPlayerRenderer.cpp | 45 |
1 files changed, 17 insertions, 28 deletions
diff --git a/media/libmediaplayerservice/nuplayer/NuPlayerRenderer.cpp b/media/libmediaplayerservice/nuplayer/NuPlayerRenderer.cpp index 8f213da..35ed43f 100644 --- a/media/libmediaplayerservice/nuplayer/NuPlayerRenderer.cpp +++ b/media/libmediaplayerservice/nuplayer/NuPlayerRenderer.cpp @@ -395,40 +395,29 @@ void NuPlayer::Renderer::onQueueBuffer(const sp<AMessage> &msg) { postDrainVideoQueue(); } - if (!mSyncQueues || mAudioQueue.empty() || mVideoQueue.empty()) { - return; - } - - sp<ABuffer> firstAudioBuffer = (*mAudioQueue.begin()).mBuffer; - sp<ABuffer> firstVideoBuffer = (*mVideoQueue.begin()).mBuffer; - - if (firstAudioBuffer == NULL || firstVideoBuffer == NULL) { - // EOS signalled on either queue. - syncQueuesDone(); - return; - } + if (mSyncQueues && !mAudioQueue.empty() && !mVideoQueue.empty()) { + int64_t firstAudioTimeUs; + int64_t firstVideoTimeUs; + CHECK((*mAudioQueue.begin()).mBuffer->meta() + ->findInt64("timeUs", &firstAudioTimeUs)); + CHECK((*mVideoQueue.begin()).mBuffer->meta() + ->findInt64("timeUs", &firstVideoTimeUs)); - int64_t firstAudioTimeUs; - int64_t firstVideoTimeUs; - CHECK(firstAudioBuffer->meta() - ->findInt64("timeUs", &firstAudioTimeUs)); - CHECK(firstVideoBuffer->meta() - ->findInt64("timeUs", &firstVideoTimeUs)); + int64_t diff = firstVideoTimeUs - firstAudioTimeUs; - int64_t diff = firstVideoTimeUs - firstAudioTimeUs; + LOGV("queueDiff = %.2f secs", diff / 1E6); - LOGV("queueDiff = %.2f secs", diff / 1E6); + if (diff > 100000ll) { + // Audio data starts More than 0.1 secs before video. + // Drop some audio. - if (diff > 100000ll) { - // Audio data starts More than 0.1 secs before video. - // Drop some audio. + (*mAudioQueue.begin()).mNotifyConsumed->post(); + mAudioQueue.erase(mAudioQueue.begin()); + return; + } - (*mAudioQueue.begin()).mNotifyConsumed->post(); - mAudioQueue.erase(mAudioQueue.begin()); - return; + syncQueuesDone(); } - - syncQueuesDone(); } void NuPlayer::Renderer::syncQueuesDone() { |