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

Commit 092f74a6 authored by Ray Essick's avatar Ray Essick
Browse files

capture frame rate for player records

media.metrics gets the frame rate of playback within the nuplayer
records.

Bug: 119817586
Test: logcat
parent ce4afa6c
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -110,6 +110,7 @@ sp<AMessage> NuPlayer::Decoder::getStats() const {
    mStats->setInt64("frames-total", mNumFramesTotal);
    mStats->setInt64("frames-dropped-input", mNumInputFramesDropped);
    mStats->setInt64("frames-dropped-output", mNumOutputFramesDropped);
    mStats->setFloat("frame-rate-total", mFrameRateTotal);
    return mStats;
}

+6 −0
Original line number Diff line number Diff line
@@ -53,6 +53,7 @@ static const char *kPlayerWidth = "android.media.mediaplayer.width";
static const char *kPlayerHeight = "android.media.mediaplayer.height";
static const char *kPlayerFrames = "android.media.mediaplayer.frames";
static const char *kPlayerFramesDropped = "android.media.mediaplayer.dropped";
static const char *kPlayerFrameRate = "android.media.mediaplayer.fps";
static const char *kPlayerAMime = "android.media.mediaplayer.audio.mime";
static const char *kPlayerACodec = "android.media.mediaplayer.audio.codec";
static const char *kPlayerDuration = "android.media.mediaplayer.durationMs";
@@ -577,6 +578,10 @@ void NuPlayerDriver::updateMetrics(const char *where) {
                mAnalyticsItem->setInt64(kPlayerFrames, numFramesTotal);
                mAnalyticsItem->setInt64(kPlayerFramesDropped, numFramesDropped);

                float frameRate = 0;
                if (stats->findFloat("frame-rate-total", &frameRate)) {
                    mAnalyticsItem->setDouble(kPlayerFrameRate, (double) frameRate);
                }

            } else if (mime.startsWith("audio/")) {
                mAnalyticsItem->setCString(kPlayerAMime, mime.c_str());
@@ -602,6 +607,7 @@ void NuPlayerDriver::updateMetrics(const char *where) {
        mAnalyticsItem->setInt64(kPlayerRebuffering, (mRebufferingTimeUs+500)/1000 );
        mAnalyticsItem->setInt32(kPlayerRebufferingCount, mRebufferingEvents);
        mAnalyticsItem->setInt32(kPlayerRebufferingAtExit, mRebufferingAtExit);

    }

    mAnalyticsItem->setCString(kPlayerDataSourceType, mPlayer->getDataSourceType());