Record profile, level, bytes for codecs
Record the profile, level, max-width, max-height and
byte counts consumed for codecs.
Do summarization of byte-counts; the other fields are
differentiators forming the different buckets.
Bug: 65297728
Bug: 65250664
Test: observe 'dumpsys media.metrics'
Change-Id: Ie5bcfe2fd70891f8deeb116897adbb1041b799c7
diff --git a/services/mediaanalytics/MetricsSummarizerCodec.cpp b/services/mediaanalytics/MetricsSummarizerCodec.cpp
index 8c74782..921dd63 100644
--- a/services/mediaanalytics/MetricsSummarizerCodec.cpp
+++ b/services/mediaanalytics/MetricsSummarizerCodec.cpp
@@ -17,6 +17,8 @@
#define LOG_TAG "MetricsSummarizerCodec"
#include <utils/Log.h>
+#include <stdint.h>
+#include <inttypes.h>
#include <utils/threads.h>
#include <utils/Errors.h>
@@ -34,10 +36,30 @@
namespace android {
+static const char *codec_ignorable[] = {
+ "android.media.mediacodec.bytesin",
+ 0
+};
+
MetricsSummarizerCodec::MetricsSummarizerCodec(const char *key)
: MetricsSummarizer(key)
{
ALOGV("MetricsSummarizerCodec::MetricsSummarizerCodec");
+ setIgnorables(codec_ignorable);
+
+}
+
+void MetricsSummarizerCodec::mergeRecord(MediaAnalyticsItem &summation, MediaAnalyticsItem &item) {
+
+ ALOGV("MetricsSummarizerCodec::mergeRecord()");
+
+ int64_t bytesin = 0;
+ if (item.getInt64("android.media.mediacodec.bytesin", &bytesin)) {
+ ALOGV("found bytesin of %" PRId64, bytesin);
+ }
+ if (bytesin >= 0) {
+ minMaxVar64(summation,"android.media.mediacodec.bytesin", bytesin);
+ }
}
diff --git a/services/mediaanalytics/MetricsSummarizerCodec.h b/services/mediaanalytics/MetricsSummarizerCodec.h
index c01196f..872a16c 100644
--- a/services/mediaanalytics/MetricsSummarizerCodec.h
+++ b/services/mediaanalytics/MetricsSummarizerCodec.h
@@ -38,6 +38,8 @@
MetricsSummarizerCodec(const char *key);
virtual ~MetricsSummarizerCodec() {};
+ virtual void mergeRecord(MediaAnalyticsItem &have, MediaAnalyticsItem &incoming);
+
};
// ----------------------------------------------------------------------------