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);
+
 };
 
 // ----------------------------------------------------------------------------