Loading services/audioflinger/FastMixer.cpp +1 −0 Original line number Diff line number Diff line Loading @@ -412,6 +412,7 @@ void FastMixer::onWork() } ftDump->mUnderruns = underruns; ftDump->mFramesReady = framesReady; ftDump->mFramesWritten = trackFramesWritten; } if (anyEnabledTracks) { Loading services/audioflinger/FastMixerDumpState.cpp +5 −3 Original line number Diff line number Diff line Loading @@ -168,7 +168,7 @@ void FastMixerDumpState::dump(int fd) const uint32_t trackMask = mTrackMask; dprintf(fd, " Fast tracks: sMaxFastTracks=%u activeMask=%#x\n", FastMixerState::sMaxFastTracks, trackMask); dprintf(fd, " Index Active Full Partial Empty Recent Ready\n"); dprintf(fd, " Index Active Full Partial Empty Recent Ready Written\n"); for (uint32_t i = 0; i < FastMixerState::sMaxFastTracks; ++i, trackMask >>= 1) { bool isActive = trackMask & 1; const FastTrackDump *ftDump = &mTracks[i]; Loading @@ -188,11 +188,13 @@ void FastMixerDumpState::dump(int fd) const mostRecent = "?"; break; } dprintf(fd, " %5u %6s %4u %7u %5u %7s %5zu\n", i, isActive ? "yes" : "no", dprintf(fd, " %5u %6s %4u %7u %5u %7s %5zu %10lld\n", i, isActive ? "yes" : "no", (underruns.mBitFields.mFull) & UNDERRUN_MASK, (underruns.mBitFields.mPartial) & UNDERRUN_MASK, (underruns.mBitFields.mEmpty) & UNDERRUN_MASK, mostRecent, ftDump->mFramesReady); mostRecent, ftDump->mFramesReady, (long long)ftDump->mFramesWritten); } } Loading services/audioflinger/FastMixerDumpState.h +1 −0 Original line number Diff line number Diff line Loading @@ -57,6 +57,7 @@ struct FastTrackDump { /*virtual*/ ~FastTrackDump() { } FastTrackUnderruns mUnderruns; size_t mFramesReady; // most recent value only; no long-term statistics kept int64_t mFramesWritten; // last value from track }; struct FastMixerDumpState : FastThreadDumpState { Loading services/audioflinger/Threads.cpp +9 −0 Original line number Diff line number Diff line Loading @@ -1726,6 +1726,15 @@ void AudioFlinger::PlaybackThread::dumpInternals(int fd, const Vector<String16>& audio_output_flags_t flags = output != NULL ? output->flags : AUDIO_OUTPUT_FLAG_NONE; String8 flagsAsString = outputFlagsToString(flags); dprintf(fd, " AudioStreamOut: %p flags %#x (%s)\n", output, flags, flagsAsString.string()); dprintf(fd, " Frames written: %lld\n", (long long)mFramesWritten); dprintf(fd, " Suspended frames: %lld\n", (long long)mSuspendedFrames); if (mPipeSink.get() != nullptr) { dprintf(fd, " PipeSink frames written: %lld\n", (long long)mPipeSink->framesWritten()); } if (output != nullptr) { dprintf(fd, " Hal stream dump:\n"); (void)output->stream->common.dump(&output->stream->common, fd); } } // Thread virtuals Loading Loading
services/audioflinger/FastMixer.cpp +1 −0 Original line number Diff line number Diff line Loading @@ -412,6 +412,7 @@ void FastMixer::onWork() } ftDump->mUnderruns = underruns; ftDump->mFramesReady = framesReady; ftDump->mFramesWritten = trackFramesWritten; } if (anyEnabledTracks) { Loading
services/audioflinger/FastMixerDumpState.cpp +5 −3 Original line number Diff line number Diff line Loading @@ -168,7 +168,7 @@ void FastMixerDumpState::dump(int fd) const uint32_t trackMask = mTrackMask; dprintf(fd, " Fast tracks: sMaxFastTracks=%u activeMask=%#x\n", FastMixerState::sMaxFastTracks, trackMask); dprintf(fd, " Index Active Full Partial Empty Recent Ready\n"); dprintf(fd, " Index Active Full Partial Empty Recent Ready Written\n"); for (uint32_t i = 0; i < FastMixerState::sMaxFastTracks; ++i, trackMask >>= 1) { bool isActive = trackMask & 1; const FastTrackDump *ftDump = &mTracks[i]; Loading @@ -188,11 +188,13 @@ void FastMixerDumpState::dump(int fd) const mostRecent = "?"; break; } dprintf(fd, " %5u %6s %4u %7u %5u %7s %5zu\n", i, isActive ? "yes" : "no", dprintf(fd, " %5u %6s %4u %7u %5u %7s %5zu %10lld\n", i, isActive ? "yes" : "no", (underruns.mBitFields.mFull) & UNDERRUN_MASK, (underruns.mBitFields.mPartial) & UNDERRUN_MASK, (underruns.mBitFields.mEmpty) & UNDERRUN_MASK, mostRecent, ftDump->mFramesReady); mostRecent, ftDump->mFramesReady, (long long)ftDump->mFramesWritten); } } Loading
services/audioflinger/FastMixerDumpState.h +1 −0 Original line number Diff line number Diff line Loading @@ -57,6 +57,7 @@ struct FastTrackDump { /*virtual*/ ~FastTrackDump() { } FastTrackUnderruns mUnderruns; size_t mFramesReady; // most recent value only; no long-term statistics kept int64_t mFramesWritten; // last value from track }; struct FastMixerDumpState : FastThreadDumpState { Loading
services/audioflinger/Threads.cpp +9 −0 Original line number Diff line number Diff line Loading @@ -1726,6 +1726,15 @@ void AudioFlinger::PlaybackThread::dumpInternals(int fd, const Vector<String16>& audio_output_flags_t flags = output != NULL ? output->flags : AUDIO_OUTPUT_FLAG_NONE; String8 flagsAsString = outputFlagsToString(flags); dprintf(fd, " AudioStreamOut: %p flags %#x (%s)\n", output, flags, flagsAsString.string()); dprintf(fd, " Frames written: %lld\n", (long long)mFramesWritten); dprintf(fd, " Suspended frames: %lld\n", (long long)mSuspendedFrames); if (mPipeSink.get() != nullptr) { dprintf(fd, " PipeSink frames written: %lld\n", (long long)mPipeSink->framesWritten()); } if (output != nullptr) { dprintf(fd, " Hal stream dump:\n"); (void)output->stream->common.dump(&output->stream->common, fd); } } // Thread virtuals Loading