Loading services/audioflinger/Threads.cpp +7 −7 Original line number Diff line number Diff line Loading @@ -3936,8 +3936,7 @@ AudioFlinger::OffloadThread::OffloadThread(const sp<AudioFlinger>& audioFlinger, : DirectOutputThread(audioFlinger, output, id, device, OFFLOAD), mHwPaused(false), mFlushPending(false), mPausedBytesRemaining(0), mPreviousTrack(NULL) mPausedBytesRemaining(0) { //FIXME: mStandby should be set to true by ThreadBase constructor mStandby = true; Loading Loading @@ -4031,8 +4030,9 @@ AudioFlinger::PlaybackThread::mixer_state AudioFlinger::OffloadThread::prepareTr } if (last) { if (mPreviousTrack != NULL) { if (track != mPreviousTrack) { sp<Track> previousTrack = mPreviousTrack.promote(); if (previousTrack != 0) { if (track != previousTrack.get()) { // Flush any data still being written from last track mBytesRemaining = 0; if (mPausedBytesRemaining) { Loading @@ -4043,13 +4043,13 @@ AudioFlinger::PlaybackThread::mixer_state AudioFlinger::OffloadThread::prepareTr // Invalidate is a bit drastic - would be more efficient // to have a flag to tell client that some of the // previously written data was lost mPreviousTrack->invalidate(); previousTrack->invalidate(); } // flush data already sent to the DSP if changing audio session as audio // comes from a different source. Also invalidate previous track to force a // seek when resuming. if (mPreviousTrack->sessionId() != track->sessionId()) { mPreviousTrack->invalidate(); if (previousTrack->sessionId() != track->sessionId()) { previousTrack->invalidate(); mFlushPending = true; } } Loading services/audioflinger/Threads.h +1 −1 Original line number Diff line number Diff line Loading @@ -762,7 +762,7 @@ private: bool mFlushPending; size_t mPausedWriteLength; // length in bytes of write interrupted by pause size_t mPausedBytesRemaining; // bytes still waiting in mixbuffer after resume Track *mPreviousTrack; // used to detect track switch wp<Track> mPreviousTrack; // used to detect track switch }; class AsyncCallbackThread : public Thread { Loading Loading
services/audioflinger/Threads.cpp +7 −7 Original line number Diff line number Diff line Loading @@ -3936,8 +3936,7 @@ AudioFlinger::OffloadThread::OffloadThread(const sp<AudioFlinger>& audioFlinger, : DirectOutputThread(audioFlinger, output, id, device, OFFLOAD), mHwPaused(false), mFlushPending(false), mPausedBytesRemaining(0), mPreviousTrack(NULL) mPausedBytesRemaining(0) { //FIXME: mStandby should be set to true by ThreadBase constructor mStandby = true; Loading Loading @@ -4031,8 +4030,9 @@ AudioFlinger::PlaybackThread::mixer_state AudioFlinger::OffloadThread::prepareTr } if (last) { if (mPreviousTrack != NULL) { if (track != mPreviousTrack) { sp<Track> previousTrack = mPreviousTrack.promote(); if (previousTrack != 0) { if (track != previousTrack.get()) { // Flush any data still being written from last track mBytesRemaining = 0; if (mPausedBytesRemaining) { Loading @@ -4043,13 +4043,13 @@ AudioFlinger::PlaybackThread::mixer_state AudioFlinger::OffloadThread::prepareTr // Invalidate is a bit drastic - would be more efficient // to have a flag to tell client that some of the // previously written data was lost mPreviousTrack->invalidate(); previousTrack->invalidate(); } // flush data already sent to the DSP if changing audio session as audio // comes from a different source. Also invalidate previous track to force a // seek when resuming. if (mPreviousTrack->sessionId() != track->sessionId()) { mPreviousTrack->invalidate(); if (previousTrack->sessionId() != track->sessionId()) { previousTrack->invalidate(); mFlushPending = true; } } Loading
services/audioflinger/Threads.h +1 −1 Original line number Diff line number Diff line Loading @@ -762,7 +762,7 @@ private: bool mFlushPending; size_t mPausedWriteLength; // length in bytes of write interrupted by pause size_t mPausedBytesRemaining; // bytes still waiting in mixbuffer after resume Track *mPreviousTrack; // used to detect track switch wp<Track> mPreviousTrack; // used to detect track switch }; class AsyncCallbackThread : public Thread { Loading