Add histogram metrics for video playback freezes
Bug: 234833109
Test: atest VideoRenderQualityTracker_test
Change-Id: I5e3a8b02336bbcbe639aad37f0914ba0f98d8d44
diff --git a/media/libmediametrics/MediaMetrics.cpp b/media/libmediametrics/MediaMetrics.cpp
index a3c2f1a..2240223 100644
--- a/media/libmediametrics/MediaMetrics.cpp
+++ b/media/libmediametrics/MediaMetrics.cpp
@@ -86,6 +86,11 @@
if (item != NULL) item->setRate(attr, count, duration);
}
+void mediametrics_setString(mediametrics_handle_t handle, attr_t attr,
+ const std::string &string) {
+ mediametrics_setCString(handle, attr, string.c_str());
+}
+
void mediametrics_setCString(mediametrics_handle_t handle, attr_t attr,
const char *value) {
Item *item = (Item *) handle;
@@ -152,6 +157,14 @@
return item->getRate(attr, count, duration, rate);
}
+bool mediametrics_getString(mediametrics_handle_t handle, attr_t attr,
+ std::string *string) {
+ Item *item = (Item *) handle;
+ if (item == NULL) return false;
+
+ return item->getString(attr, string);
+}
+
// NB: caller owns the string that comes back, is responsible for freeing it
bool mediametrics_getCString(mediametrics_handle_t handle, attr_t attr,
char **value) {
diff --git a/media/libmediametrics/include/media/MediaMetrics.h b/media/libmediametrics/include/media/MediaMetrics.h
index 76abe86..58612a3 100644
--- a/media/libmediametrics/include/media/MediaMetrics.h
+++ b/media/libmediametrics/include/media/MediaMetrics.h
@@ -50,7 +50,7 @@
void mediametrics_setRate(mediametrics_handle_t handle, attr_t attr,
int64_t count, int64_t duration);
void mediametrics_setCString(mediametrics_handle_t handle, attr_t attr,
- const char * value);
+ const char * value);
// fused get/add/set; if attr wasn't there, it's a simple set.
// these do not provide atomicity or mutual exclusion, only simpler code sequences.
@@ -95,4 +95,11 @@
__END_DECLS
+#ifdef __cplusplus
+#include <string>
+void mediametrics_setString(mediametrics_handle_t handle, attr_t attr,
+ const std::string &value);
+bool mediametrics_getString(mediametrics_handle_t handle, attr_t attr, std::string *value);
+#endif // __cplusplus
+
#endif
diff --git a/media/libmediametrics/include/media/MediaMetricsItem.h b/media/libmediametrics/include/media/MediaMetricsItem.h
index de56665..03834d4 100644
--- a/media/libmediametrics/include/media/MediaMetricsItem.h
+++ b/media/libmediametrics/include/media/MediaMetricsItem.h
@@ -1048,6 +1048,9 @@
}
return true;
}
+ bool getString(const char *key, std::string *value) const {
+ return get(key, value);
+ }
// Caller owns the returned string
bool getCString(const char *key, char **value) const {
std::string s;
@@ -1057,9 +1060,6 @@
}
return false;
}
- bool getString(const char *key, std::string *value) const {
- return get(key, value);
- }
const Prop::Elem* get(const char *key) const {
const Prop *prop = findProp(key);