Loading services/audioflinger/Threads.cpp +13 −9 Original line number Diff line number Diff line Loading @@ -4625,7 +4625,7 @@ AudioFlinger::DirectOutputThread::~DirectOutputThread() { } void AudioFlinger::DirectOutputThread::processVolume_l(sp<Track> track, bool lastTrack) void AudioFlinger::DirectOutputThread::processVolume_l(Track *track, bool lastTrack) { float left, right; Loading Loading @@ -4700,13 +4700,14 @@ AudioFlinger::PlaybackThread::mixer_state AudioFlinger::DirectOutputThread::prep bool doHwResume = false; // find out which tracks need to be processed for (const sp<Track> &track : mActiveTracks) { if (track->isInvalid()) { for (const sp<Track> &t : mActiveTracks) { if (t->isInvalid()) { ALOGW("An invalidated track shouldn't be in active list"); tracksToRemove->add(track); tracksToRemove->add(t); continue; } Track* const track = t.get(); #ifdef VERY_VERY_VERBOSE_LOGGING audio_track_cblk_t* cblk = track->cblk(); #endif Loading @@ -4714,7 +4715,8 @@ AudioFlinger::PlaybackThread::mixer_state AudioFlinger::DirectOutputThread::prep // In theory an older track could underrun and restart after the new one starts // but as we only care about the transition phase between two tracks on a // direct output, it is not a problem to ignore the underrun case. bool last = mActiveTracks.getLatest() == track; sp<Track> l = mActiveTracks.getLatest(); bool last = l.get() == track; if (track->isPausing()) { track->setPaused(); Loading Loading @@ -4786,7 +4788,7 @@ AudioFlinger::PlaybackThread::mixer_state AudioFlinger::DirectOutputThread::prep // reset retry count track->mRetryCount = kMaxTrackRetriesDirect; mActiveTrack = track; // save track as mActiveTracks may change without lock. mActiveTrack = t; mixerStatus = MIXER_TRACKS_READY; if (mHwPaused) { doHwResume = true; Loading Loading @@ -5247,7 +5249,8 @@ AudioFlinger::PlaybackThread::mixer_state AudioFlinger::OffloadThread::prepareTr ALOGV("OffloadThread::prepareTracks_l active tracks %zu", count); // find out which tracks need to be processed for (const sp<Track> &track : mActiveTracks) { for (const sp<Track> &t : mActiveTracks) { Track* const track = t.get(); #ifdef VERY_VERY_VERBOSE_LOGGING audio_track_cblk_t* cblk = track->cblk(); #endif Loading @@ -5255,7 +5258,8 @@ AudioFlinger::PlaybackThread::mixer_state AudioFlinger::OffloadThread::prepareTr // In theory an older track could underrun and restart after the new one starts // but as we only care about the transition phase between two tracks on a // direct output, it is not a problem to ignore the underrun case. bool last = mActiveTracks.getLatest() == track; sp<Track> l = mActiveTracks.getLatest(); bool last = l.get() == track; if (track->isInvalid()) { ALOGW("An invalidated track shouldn't be in active list"); Loading Loading @@ -5361,7 +5365,7 @@ AudioFlinger::PlaybackThread::mixer_state AudioFlinger::OffloadThread::prepareTr } else { track->mRetryCount = kMaxTrackRetriesOffload; } mActiveTrack = track; // save track as mActiveTracks may change without lock. mActiveTrack = t; mixerStatus = MIXER_TRACKS_READY; } } else { Loading services/audioflinger/Threads.h +1 −1 Original line number Diff line number Diff line Loading @@ -1077,7 +1077,7 @@ protected: DirectOutputThread(const sp<AudioFlinger>& audioFlinger, AudioStreamOut* output, audio_io_handle_t id, uint32_t device, ThreadBase::type_t type, bool systemReady); void processVolume_l(sp<Track> track, bool lastTrack); void processVolume_l(Track *track, bool lastTrack); // prepareTracks_l() tells threadLoop_mix() the name of the single active track sp<Track> mActiveTrack; Loading Loading
services/audioflinger/Threads.cpp +13 −9 Original line number Diff line number Diff line Loading @@ -4625,7 +4625,7 @@ AudioFlinger::DirectOutputThread::~DirectOutputThread() { } void AudioFlinger::DirectOutputThread::processVolume_l(sp<Track> track, bool lastTrack) void AudioFlinger::DirectOutputThread::processVolume_l(Track *track, bool lastTrack) { float left, right; Loading Loading @@ -4700,13 +4700,14 @@ AudioFlinger::PlaybackThread::mixer_state AudioFlinger::DirectOutputThread::prep bool doHwResume = false; // find out which tracks need to be processed for (const sp<Track> &track : mActiveTracks) { if (track->isInvalid()) { for (const sp<Track> &t : mActiveTracks) { if (t->isInvalid()) { ALOGW("An invalidated track shouldn't be in active list"); tracksToRemove->add(track); tracksToRemove->add(t); continue; } Track* const track = t.get(); #ifdef VERY_VERY_VERBOSE_LOGGING audio_track_cblk_t* cblk = track->cblk(); #endif Loading @@ -4714,7 +4715,8 @@ AudioFlinger::PlaybackThread::mixer_state AudioFlinger::DirectOutputThread::prep // In theory an older track could underrun and restart after the new one starts // but as we only care about the transition phase between two tracks on a // direct output, it is not a problem to ignore the underrun case. bool last = mActiveTracks.getLatest() == track; sp<Track> l = mActiveTracks.getLatest(); bool last = l.get() == track; if (track->isPausing()) { track->setPaused(); Loading Loading @@ -4786,7 +4788,7 @@ AudioFlinger::PlaybackThread::mixer_state AudioFlinger::DirectOutputThread::prep // reset retry count track->mRetryCount = kMaxTrackRetriesDirect; mActiveTrack = track; // save track as mActiveTracks may change without lock. mActiveTrack = t; mixerStatus = MIXER_TRACKS_READY; if (mHwPaused) { doHwResume = true; Loading Loading @@ -5247,7 +5249,8 @@ AudioFlinger::PlaybackThread::mixer_state AudioFlinger::OffloadThread::prepareTr ALOGV("OffloadThread::prepareTracks_l active tracks %zu", count); // find out which tracks need to be processed for (const sp<Track> &track : mActiveTracks) { for (const sp<Track> &t : mActiveTracks) { Track* const track = t.get(); #ifdef VERY_VERY_VERBOSE_LOGGING audio_track_cblk_t* cblk = track->cblk(); #endif Loading @@ -5255,7 +5258,8 @@ AudioFlinger::PlaybackThread::mixer_state AudioFlinger::OffloadThread::prepareTr // In theory an older track could underrun and restart after the new one starts // but as we only care about the transition phase between two tracks on a // direct output, it is not a problem to ignore the underrun case. bool last = mActiveTracks.getLatest() == track; sp<Track> l = mActiveTracks.getLatest(); bool last = l.get() == track; if (track->isInvalid()) { ALOGW("An invalidated track shouldn't be in active list"); Loading Loading @@ -5361,7 +5365,7 @@ AudioFlinger::PlaybackThread::mixer_state AudioFlinger::OffloadThread::prepareTr } else { track->mRetryCount = kMaxTrackRetriesOffload; } mActiveTrack = track; // save track as mActiveTracks may change without lock. mActiveTrack = t; mixerStatus = MIXER_TRACKS_READY; } } else { Loading
services/audioflinger/Threads.h +1 −1 Original line number Diff line number Diff line Loading @@ -1077,7 +1077,7 @@ protected: DirectOutputThread(const sp<AudioFlinger>& audioFlinger, AudioStreamOut* output, audio_io_handle_t id, uint32_t device, ThreadBase::type_t type, bool systemReady); void processVolume_l(sp<Track> track, bool lastTrack); void processVolume_l(Track *track, bool lastTrack); // prepareTracks_l() tells threadLoop_mix() the name of the single active track sp<Track> mActiveTrack; Loading