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

Commit e8779bbf authored by Andy Hung's avatar Andy Hung Committed by Pavlin Radoslavov
Browse files

Add logging of written frame counts

Bug: 31591209
Change-Id: Ife5917aa65b02c3b0791dfe1975c70ccf58f9a75
(cherry picked from commit 2c45393d)
parent 290e7ed8
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -412,6 +412,7 @@ void FastMixer::onWork()
            }
            ftDump->mUnderruns = underruns;
            ftDump->mFramesReady = framesReady;
            ftDump->mFramesWritten = trackFramesWritten;
        }

        if (anyEnabledTracks) {
+5 −3
Original line number Diff line number Diff line
@@ -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];
@@ -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);
    }
}

+1 −0
Original line number Diff line number Diff line
@@ -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 {
+9 −0
Original line number Diff line number Diff line
@@ -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