Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 06d62548 authored by Eric Laurent's avatar Eric Laurent Committed by Android Git Automerger
Browse files

am d7e59228: audioflinger: do not use raw pointer for tracks

* commit 'd7e59228':
  audioflinger: do not use raw pointer for tracks
parents 576e89b5 d7e59228
Loading
Loading
Loading
Loading
+7 −7
Original line number Diff line number Diff line
@@ -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;
@@ -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) {
@@ -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;
                        }
                    }
+1 −1
Original line number Diff line number Diff line
@@ -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 {