From 1f1db8356b599bc40703c907fb69e6e539343532 Mon Sep 17 00:00:00 2001 From: Andy Hung Date: Mon, 8 Jun 2015 13:26:10 -0700 Subject: Fix AudioTrack comments relating to use of restoreTrack_l() Bug: 21699132 Change-Id: Ib0d029a5e28676aeffbbbafc88c52a17367a413c --- media/libmedia/AudioTrack.cpp | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) (limited to 'media/libmedia/AudioTrack.cpp') diff --git a/media/libmedia/AudioTrack.cpp b/media/libmedia/AudioTrack.cpp index 81ae6d7..949bc21 100644 --- a/media/libmedia/AudioTrack.cpp +++ b/media/libmedia/AudioTrack.cpp @@ -986,15 +986,18 @@ status_t AudioTrack::getPosition(uint32_t *position) } if (mOutput != AUDIO_IO_HANDLE_NONE) { - uint32_t halFrames; - AudioSystem::getRenderPosition(mOutput, &halFrames, &dspFrames); + uint32_t halFrames; // actually unused + (void) AudioSystem::getRenderPosition(mOutput, &halFrames, &dspFrames); + // FIXME: on getRenderPosition() error, we return OK with frame position 0. } // FIXME: dspFrames may not be zero in (mState == STATE_STOPPED || mState == STATE_FLUSHED) // due to hardware latency. We leave this behavior for now. *position = dspFrames; } else { if (mCblk->mFlags & CBLK_INVALID) { - restoreTrack_l("getPosition"); + (void) restoreTrack_l("getPosition"); + // FIXME: for compatibility with the Java API we ignore the restoreTrack_l() + // error here (e.g. DEAD_OBJECT) and return OK with the last recorded server position. } // IAudioTrack::stop() isn't synchronous; we don't know when presentation completes @@ -2080,7 +2083,8 @@ status_t AudioTrack::restoreTrack_l(const char *from) AudioSystem::clearAudioConfigCache(); if (isOffloadedOrDirect_l() || mDoNotReconnect) { - // FIXME re-creation of offloaded tracks is not yet implemented + // FIXME re-creation of offloaded and direct tracks is not yet implemented; + // reconsider enabling for linear PCM encodings when position can be preserved. return DEAD_OBJECT; } -- cgit v1.1