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

Commit 4f105393 authored by Edwin Wong's avatar Edwin Wong
Browse files

Add top level DRM playback metric

Add meteric to show the difference between drm
playback of protected vs unprotected content.
We log onQueueInputBuffer errors.

Bug: 138862395

Test: adb shell dumpsys media.metrics | grep -i InputBuffer
Change-Id: I26aae706267956b6f944955877347747e573e3c8
parent 371c9749
Loading
Loading
Loading
Loading
+10 −0
Original line number Diff line number Diff line
@@ -103,6 +103,8 @@ static const char *kCodecLatencyAvg = "android.media.mediacodec.latency.avg";
static const char *kCodecLatencyCount = "android.media.mediacodec.latency.n";
static const char *kCodecLatencyHist = "android.media.mediacodec.latency.hist"; /* in us */
static const char *kCodecLatencyUnknown = "android.media.mediacodec.latency.unknown";
static const char *kCodecQueueSecureInputBufferError = "android.media.mediacodec.queueSecureInputBufferError";
static const char *kCodecQueueInputBufferError = "android.media.mediacodec.queueInputBufferError";

static const char *kCodecNumLowLatencyModeOn = "android.media.mediacodec.low-latency.on";  /* 0..n */
static const char *kCodecNumLowLatencyModeOff = "android.media.mediacodec.low-latency.off";  /* 0..n */
@@ -3629,8 +3631,16 @@ status_t MediaCodec::onQueueInputBuffer(const sp<AMessage> &msg) {
                subSamples,
                numSubSamples,
                errorDetailMsg);
        if (err != OK) {
            mediametrics_setInt32(mMetricsHandle, kCodecQueueSecureInputBufferError, err);
            ALOGW("Log queueSecureInputBuffer error: %d", err);
        }
    } else {
        err = mBufferChannel->queueInputBuffer(buffer);
        if (err != OK) {
            mediametrics_setInt32(mMetricsHandle, kCodecQueueInputBufferError, err);
            ALOGW("Log queueInputBuffer error: %d", err);
        }
    }

    if (err == OK) {
+12 −0
Original line number Diff line number Diff line
@@ -154,6 +154,18 @@ bool statsd_codec(const mediametrics::Item *item)
    if ( item->getInt64("android.media.mediacodec.latency.unknown", &latency_unknown)) {
        metrics_proto.set_latency_unknown(latency_unknown);
    }
    // android.media.mediacodec.queueSecureInputBufferError  int32
    if (int32_t queueSecureInputBufferError = -1;
        item->getInt32("android.media.mediacodec.queueSecureInputBufferError",
                &queueSecureInputBufferError)) {
        metrics_proto.set_queue_secure_input_buffer_error(queueSecureInputBufferError);
    }
    // android.media.mediacodec.queueInputBufferError  int32
    if (int32_t queueInputBufferError = -1;
        item->getInt32("android.media.mediacodec.queueInputBufferError",
                &queueInputBufferError)) {
        metrics_proto.set_queue_input_buffer_error(queueInputBufferError);
    }
    // android.media.mediacodec.latency.hist    NOT EMITTED

    std::string serialized;