• R/O
  • HTTP
  • SSH
  • HTTPS

提交

标签
No Tags

Frequently used words (click to add to your profile)

javac++androidlinuxc#windowsobjective-ccocoa誰得qtpythonphprubygameguibathyscaphec計画中(planning stage)翻訳omegatframeworktwitterdomtestvb.netdirectxゲームエンジンbtronarduinopreviewer

frameworks/base


Commit MetaInfo

修订版2a0d685ed62ff7a5e5a40be0748860c092165984 (tree)
时间2012-03-17 06:58:21
作者Eric Laurent <elaurent@goog...>
CommiterAndroid (Google) Code Review

Log Message

Merge "MediaPlayerService: fix AudioSink latency" into ics-mr1

更改概述

差异

--- a/media/libmediaplayerservice/MediaPlayerService.cpp
+++ b/media/libmediaplayerservice/MediaPlayerService.cpp
@@ -320,7 +320,7 @@ status_t MediaPlayerService::AudioOutput::dump(int fd, const Vector<String16>& a
320320 mStreamType, mLeftVolume, mRightVolume);
321321 result.append(buffer);
322322 snprintf(buffer, 255, " msec per frame(%f), latency (%d)\n",
323- mMsecsPerFrame, mLatency);
323+ mMsecsPerFrame, (mTrack != 0) ? mTrack->latency() : -1);
324324 result.append(buffer);
325325 snprintf(buffer, 255, " aux effect id(%d), send level (%f)\n",
326326 mAuxEffectId, mSendLevel);
@@ -1265,7 +1265,6 @@ MediaPlayerService::AudioOutput::AudioOutput(int sessionId)
12651265 mStreamType = AUDIO_STREAM_MUSIC;
12661266 mLeftVolume = 1.0;
12671267 mRightVolume = 1.0;
1268- mLatency = 0;
12691268 mMsecsPerFrame = 0;
12701269 mAuxEffectId = 0;
12711270 mSendLevel = 0.0;
@@ -1324,7 +1323,8 @@ ssize_t MediaPlayerService::AudioOutput::frameSize() const
13241323
13251324 uint32_t MediaPlayerService::AudioOutput::latency () const
13261325 {
1327- return mLatency;
1326+ if (mTrack == 0) return 0;
1327+ return mTrack->latency();
13281328 }
13291329
13301330 float MediaPlayerService::AudioOutput::msecsPerFrame() const
@@ -1403,7 +1403,6 @@ status_t MediaPlayerService::AudioOutput::open(
14031403 t->setVolume(mLeftVolume, mRightVolume);
14041404
14051405 mMsecsPerFrame = 1.e3 / (float) sampleRate;
1406- mLatency = t->latency();
14071406 mTrack = t;
14081407
14091408 t->setAuxEffectSendLevel(mSendLevel);
--- a/media/libmediaplayerservice/MediaPlayerService.h
+++ b/media/libmediaplayerservice/MediaPlayerService.h
@@ -112,7 +112,6 @@ class MediaPlayerService : public BnMediaPlayerService
112112 float mLeftVolume;
113113 float mRightVolume;
114114 float mMsecsPerFrame;
115- uint32_t mLatency;
116115 int mSessionId;
117116 float mSendLevel;
118117 int mAuxEffectId;
--- a/media/libstagefright/AudioPlayer.cpp
+++ b/media/libstagefright/AudioPlayer.cpp
@@ -408,6 +408,12 @@ size_t AudioPlayer::fillBuffer(void *data, size_t size) {
408408 break;
409409 }
410410
411+ if (mAudioSink != NULL) {
412+ mLatencyUs = (int64_t)mAudioSink->latency() * 1000;
413+ } else {
414+ mLatencyUs = (int64_t)mAudioTrack->latency() * 1000;
415+ }
416+
411417 CHECK(mInputBuffer->meta_data()->findInt64(
412418 kKeyTime, &mPositionTimeMediaUs));
413419