diff options
author | Wei Jia <wjia@google.com> | 2015-06-09 21:04:34 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2015-06-09 21:04:35 +0000 |
commit | f49b5150f87c98c389a334c3af5a9a586d40ee8f (patch) | |
tree | fb90dd7dd121f3a9f9507fe475c0bfa7a8092b50 /media/libmediaplayerservice/MediaPlayerService.cpp | |
parent | 984591672a6f4096ee92c4a582d4c54ee6023c43 (diff) | |
parent | 0162d00a38cdb5f4eba5dfe8cd272f69ddbc8c21 (diff) | |
download | frameworks_av-f49b5150f87c98c389a334c3af5a9a586d40ee8f.zip frameworks_av-f49b5150f87c98c389a334c3af5a9a586d40ee8f.tar.gz frameworks_av-f49b5150f87c98c389a334c3af5a9a586d40ee8f.tar.bz2 |
Merge "AudioSink: use flags granted by AudioTrack, instead of the requested flags." into mnc-dev
Diffstat (limited to 'media/libmediaplayerservice/MediaPlayerService.cpp')
-rw-r--r-- | media/libmediaplayerservice/MediaPlayerService.cpp | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/media/libmediaplayerservice/MediaPlayerService.cpp b/media/libmediaplayerservice/MediaPlayerService.cpp index c0b35e8..ae869d6 100644 --- a/media/libmediaplayerservice/MediaPlayerService.cpp +++ b/media/libmediaplayerservice/MediaPlayerService.cpp @@ -1679,7 +1679,7 @@ status_t MediaPlayerService::AudioOutput::open( t->setVolume(mLeftVolume, mRightVolume); mSampleRateHz = sampleRate; - mFlags = flags; + mFlags = t->getFlags(); // we suggest the flags above, but new AudioTrack() may not grant it. mMsecsPerFrame = 1E3f / (mPlaybackRate.mSpeed * sampleRate); uint32_t pos; if (t->getPosition(&pos) == OK) { @@ -1688,7 +1688,9 @@ status_t MediaPlayerService::AudioOutput::open( mTrack = t; status_t res = NO_ERROR; - if ((flags & AUDIO_OUTPUT_FLAG_COMPRESS_OFFLOAD) == 0) { + // Note some output devices may give us a direct track even though we don't specify it. + // Example: Line application b/17459982. + if ((mFlags & (AUDIO_OUTPUT_FLAG_COMPRESS_OFFLOAD | AUDIO_OUTPUT_FLAG_DIRECT)) == 0) { res = t->setPlaybackRate(mPlaybackRate); if (res == NO_ERROR) { t->setAuxEffectSendLevel(mSendLevel); |