diff options
author | Eric Laurent <elaurent@google.com> | 2014-06-09 17:22:27 -0700 |
---|---|---|
committer | Eric Laurent <elaurent@google.com> | 2014-06-19 10:05:57 -0700 |
commit | ab5cdbaf65ca509681d2726aacdf3ac8bfb6b3fa (patch) | |
tree | 0d406acdfea2d44cd430ef16ee2a25b7722e4b1d /services/audioflinger/Tracks.cpp | |
parent | 29a8b2fe294a34ac7f004203426961a599e725ea (diff) | |
download | frameworks_av-ab5cdbaf65ca509681d2726aacdf3ac8bfb6b3fa.zip frameworks_av-ab5cdbaf65ca509681d2726aacdf3ac8bfb6b3fa.tar.gz frameworks_av-ab5cdbaf65ca509681d2726aacdf3ac8bfb6b3fa.tar.bz2 |
AudioTrack: add support for compressed audio
Add support for compressed audio playback by use
of an AudioTrack attached to a direct output thread.
Bug: 9428304.
Change-Id: I4a61be9cf0e31003ca85935d6e0ee38ca8192e03
Diffstat (limited to 'services/audioflinger/Tracks.cpp')
-rw-r--r-- | services/audioflinger/Tracks.cpp | 6 |
1 files changed, 2 insertions, 4 deletions
diff --git a/services/audioflinger/Tracks.cpp b/services/audioflinger/Tracks.cpp index 1e906ad..4fbb973 100644 --- a/services/audioflinger/Tracks.cpp +++ b/services/audioflinger/Tracks.cpp @@ -706,7 +706,7 @@ void AudioFlinger::PlaybackThread::Track::stop() if (playbackThread->mActiveTracks.indexOf(this) < 0) { reset(); mState = STOPPED; - } else if (!isFastTrack() && !isOffloaded()) { + } else if (!isFastTrack() && !isOffloaded() && !isDirect()) { mState = STOPPED; } else { // For fast tracks prepareTracks_l() will set state to STOPPING_2 @@ -860,7 +860,7 @@ status_t AudioFlinger::PlaybackThread::Track::getTimestamp(AudioTimestamp& times } Mutex::Autolock _l(thread->mLock); PlaybackThread *playbackThread = (PlaybackThread *)thread.get(); - if (!isOffloaded()) { + if (!isOffloaded() && !isDirect()) { if (!playbackThread->mLatchQValid) { mPreviousValid = false; return INVALID_OPERATION; @@ -980,8 +980,6 @@ bool AudioFlinger::PlaybackThread::Track::presentationComplete(size_t framesWrit } if (framesWritten >= mPresentationCompleteFrames || isOffloaded()) { - ALOGV("presentationComplete() session %d complete: framesWritten %d", - mSessionId, framesWritten); triggerEvents(AudioSystem::SYNC_EVENT_PRESENTATION_COMPLETE); mAudioTrackServerProxy->setStreamEndDone(); return true; |