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

Commit 0c43cb3a authored by Eric Laurent's avatar Eric Laurent Committed by Android (Google) Code Review
Browse files

Merge "audioflinger: set flush pending on invalidating offload track" into nyc-dev

parents 0277976e 05317d29
Loading
Loading
Loading
Loading
+14 −2
Original line number Diff line number Diff line
@@ -2670,11 +2670,10 @@ void AudioFlinger::PlaybackThread::cacheParameters_l()
    }
}

void AudioFlinger::PlaybackThread::invalidateTracks(audio_stream_type_t streamType)
void AudioFlinger::PlaybackThread::invalidateTracks_l(audio_stream_type_t streamType)
{
    ALOGV("MixerThread::invalidateTracks() mixer %p, streamType %d, mTracks.size %zu",
            this,  streamType, mTracks.size());
    Mutex::Autolock _l(mLock);

    size_t size = mTracks.size();
    for (size_t i = 0; i < size; i++) {
@@ -2685,6 +2684,12 @@ void AudioFlinger::PlaybackThread::invalidateTracks(audio_stream_type_t streamTy
    }
}

void AudioFlinger::PlaybackThread::invalidateTracks(audio_stream_type_t streamType)
{
    Mutex::Autolock _l(mLock);
    invalidateTracks_l(streamType);
}

status_t AudioFlinger::PlaybackThread::addEffectChain_l(const sp<EffectChain>& chain)
{
    audio_session_t session = chain->sessionId();
@@ -5445,6 +5450,13 @@ uint32_t AudioFlinger::OffloadThread::activeSleepTimeUs() const
    return time;
}

void AudioFlinger::OffloadThread::invalidateTracks(audio_stream_type_t streamType)
{
    Mutex::Autolock _l(mLock);
    mFlushPending = true;
    PlaybackThread::invalidateTracks_l(streamType);
}

// ----------------------------------------------------------------------------

AudioFlinger::DuplicatingThread::DuplicatingThread(const sp<AudioFlinger>& audioFlinger,
+3 −1
Original line number Diff line number Diff line
@@ -606,7 +606,8 @@ public:
                virtual bool     isValidSyncEvent(const sp<SyncEvent>& event) const;

                // called with AudioFlinger lock held
                        void     invalidateTracks(audio_stream_type_t streamType);
                        void     invalidateTracks_l(audio_stream_type_t streamType);
                virtual void     invalidateTracks(audio_stream_type_t streamType);

    virtual     size_t      frameCount() const { return mNormalFrameCount; }

@@ -998,6 +999,7 @@ protected:

    virtual     bool        waitingAsyncCallback();
    virtual     bool        waitingAsyncCallback_l();
    virtual     void        invalidateTracks(audio_stream_type_t streamType);

    virtual     bool        keepWakeLock() const { return mKeepWakeLock; }