Loading services/audioflinger/Threads.cpp +7 −1 Original line number Diff line number Diff line Loading @@ -3616,7 +3616,13 @@ bool AudioFlinger::PlaybackThread::threadLoop() // Tally underrun frames as we are inserting 0s here. for (const auto& track : activeTracks) { if (track->mFillingUpStatus == Track::FS_ACTIVE) { if (track->mFillingUpStatus == Track::FS_ACTIVE && !track->isStopped() && !track->isPaused() && !track->isTerminated()) { ALOGV("%s: track(%d) %s underrun due to thread sleep of %zu frames", __func__, track->id(), track->getTrackStateAsString(), mNormalFrameCount); track->mAudioTrackServerProxy->tallyUnderrunFrames(mNormalFrameCount); } } Loading services/audioflinger/TrackBase.h +33 −1 Original line number Diff line number Diff line Loading @@ -202,6 +202,38 @@ public: audio_format_t format() const { return mFormat; } int id() const { return mId; } const char *getTrackStateAsString() const { if (isTerminated()) { return "TERMINATED"; } switch (mState) { case IDLE: return "IDLE"; case STOPPING_1: // for Fast and Offload return "STOPPING_1"; case STOPPING_2: // for Fast and Offload return "STOPPING_2"; case STOPPED: return "STOPPED"; case RESUMING: return "RESUMING"; case ACTIVE: return "ACTIVE"; case PAUSING: return "PAUSING"; case PAUSED: return "PAUSED"; case FLUSHED: return "FLUSHED"; case STARTING_1: // for RecordTrack return "STARTING_1"; case STARTING_2: // for RecordTrack return "STARTING_2"; default: return "UNKNOWN"; } } protected: DISALLOW_COPY_AND_ASSIGN(TrackBase); Loading Loading @@ -248,7 +280,7 @@ protected: // Upper case characters are final states. // Lower case characters are transitory. const char *getTrackStateString() const { const char *getTrackStateAsCodedString() const { if (isTerminated()) { return "T "; } Loading services/audioflinger/Tracks.cpp +2 −2 Original line number Diff line number Diff line Loading @@ -743,7 +743,7 @@ void AudioFlinger::PlaybackThread::Track::appendDump(String8& result, bool activ (mClient == 0) ? getpid() : mClient->pid(), mSessionId, mPortId, getTrackStateString(), getTrackStateAsCodedString(), mCblk->mFlags, mFormat, Loading Loading @@ -2241,7 +2241,7 @@ void AudioFlinger::RecordThread::RecordTrack::appendDump(String8& result, bool a (mClient == 0) ? getpid() : mClient->pid(), mSessionId, mPortId, getTrackStateString(), getTrackStateAsCodedString(), mCblk->mFlags, mFormat, Loading Loading
services/audioflinger/Threads.cpp +7 −1 Original line number Diff line number Diff line Loading @@ -3616,7 +3616,13 @@ bool AudioFlinger::PlaybackThread::threadLoop() // Tally underrun frames as we are inserting 0s here. for (const auto& track : activeTracks) { if (track->mFillingUpStatus == Track::FS_ACTIVE) { if (track->mFillingUpStatus == Track::FS_ACTIVE && !track->isStopped() && !track->isPaused() && !track->isTerminated()) { ALOGV("%s: track(%d) %s underrun due to thread sleep of %zu frames", __func__, track->id(), track->getTrackStateAsString(), mNormalFrameCount); track->mAudioTrackServerProxy->tallyUnderrunFrames(mNormalFrameCount); } } Loading
services/audioflinger/TrackBase.h +33 −1 Original line number Diff line number Diff line Loading @@ -202,6 +202,38 @@ public: audio_format_t format() const { return mFormat; } int id() const { return mId; } const char *getTrackStateAsString() const { if (isTerminated()) { return "TERMINATED"; } switch (mState) { case IDLE: return "IDLE"; case STOPPING_1: // for Fast and Offload return "STOPPING_1"; case STOPPING_2: // for Fast and Offload return "STOPPING_2"; case STOPPED: return "STOPPED"; case RESUMING: return "RESUMING"; case ACTIVE: return "ACTIVE"; case PAUSING: return "PAUSING"; case PAUSED: return "PAUSED"; case FLUSHED: return "FLUSHED"; case STARTING_1: // for RecordTrack return "STARTING_1"; case STARTING_2: // for RecordTrack return "STARTING_2"; default: return "UNKNOWN"; } } protected: DISALLOW_COPY_AND_ASSIGN(TrackBase); Loading Loading @@ -248,7 +280,7 @@ protected: // Upper case characters are final states. // Lower case characters are transitory. const char *getTrackStateString() const { const char *getTrackStateAsCodedString() const { if (isTerminated()) { return "T "; } Loading
services/audioflinger/Tracks.cpp +2 −2 Original line number Diff line number Diff line Loading @@ -743,7 +743,7 @@ void AudioFlinger::PlaybackThread::Track::appendDump(String8& result, bool activ (mClient == 0) ? getpid() : mClient->pid(), mSessionId, mPortId, getTrackStateString(), getTrackStateAsCodedString(), mCblk->mFlags, mFormat, Loading Loading @@ -2241,7 +2241,7 @@ void AudioFlinger::RecordThread::RecordTrack::appendDump(String8& result, bool a (mClient == 0) ? getpid() : mClient->pid(), mSessionId, mPortId, getTrackStateString(), getTrackStateAsCodedString(), mCblk->mFlags, mFormat, Loading