Log requested sharing mode.
As the requested sharing mode may not be the same as what is requested,
it will good to log the requested sharing mode.
Bug: 185912462
Test: atest MediaMetricsAtomTests
Test: dumpsys media.metrics
Change-Id: I963d24c5f3e5e0d6cba7764892b010b78b0cd8ad
diff --git a/media/libaaudio/src/client/AudioStreamInternal.cpp b/media/libaaudio/src/client/AudioStreamInternal.cpp
index bf07abb..d8b27c3 100644
--- a/media/libaaudio/src/client/AudioStreamInternal.cpp
+++ b/media/libaaudio/src/client/AudioStreamInternal.cpp
@@ -159,7 +159,9 @@
android::mediametrics::LogItem(mMetricsId)
.set(AMEDIAMETRICS_PROP_PERFORMANCEMODE,
- AudioGlobal_convertPerformanceModeToText(getPerformanceMode()))
+ AudioGlobal_convertPerformanceModeToText(builder.getPerformanceMode()))
+ .set(AMEDIAMETRICS_PROP_SHARINGMODE,
+ AudioGlobal_convertSharingModeToText(builder.getSharingMode()))
.set(AMEDIAMETRICS_PROP_ENCODINGCLIENT,
android::toString(requestedFormat).c_str()).record();
diff --git a/media/libaaudio/src/core/AudioStream.cpp b/media/libaaudio/src/core/AudioStream.cpp
index 91b8a4d..1ed240a 100644
--- a/media/libaaudio/src/core/AudioStream.cpp
+++ b/media/libaaudio/src/core/AudioStream.cpp
@@ -117,7 +117,7 @@
item.set(AMEDIAMETRICS_PROP_EVENT, AMEDIAMETRICS_PROP_EVENT_VALUE_OPEN)
.set(AMEDIAMETRICS_PROP_PERFORMANCEMODEACTUAL,
AudioGlobal_convertPerformanceModeToText(getPerformanceMode()))
- .set(AMEDIAMETRICS_PROP_SHARINGMODE,
+ .set(AMEDIAMETRICS_PROP_SHARINGMODEACTUAL,
AudioGlobal_convertSharingModeToText(getSharingMode()))
.set(AMEDIAMETRICS_PROP_BUFFERCAPACITYFRAMES, getBufferCapacity())
.set(AMEDIAMETRICS_PROP_BURSTFRAMES, getFramesPerBurst())
diff --git a/media/libaaudio/src/legacy/AudioStreamRecord.cpp b/media/libaaudio/src/legacy/AudioStreamRecord.cpp
index de8fe6a..eca5392 100644
--- a/media/libaaudio/src/legacy/AudioStreamRecord.cpp
+++ b/media/libaaudio/src/legacy/AudioStreamRecord.cpp
@@ -221,7 +221,9 @@
+ std::to_string(mAudioRecord->getPortId());
android::mediametrics::LogItem(mMetricsId)
.set(AMEDIAMETRICS_PROP_PERFORMANCEMODE,
- AudioGlobal_convertPerformanceModeToText(getPerformanceMode()))
+ AudioGlobal_convertPerformanceModeToText(builder.getPerformanceMode()))
+ .set(AMEDIAMETRICS_PROP_SHARINGMODE,
+ AudioGlobal_convertSharingModeToText(builder.getSharingMode()))
.set(AMEDIAMETRICS_PROP_ENCODINGCLIENT, toString(requestedFormat).c_str()).record();
// Get the actual values from the AudioRecord.
diff --git a/media/libaaudio/src/legacy/AudioStreamTrack.cpp b/media/libaaudio/src/legacy/AudioStreamTrack.cpp
index 2ee5cdc..04a9dec 100644
--- a/media/libaaudio/src/legacy/AudioStreamTrack.cpp
+++ b/media/libaaudio/src/legacy/AudioStreamTrack.cpp
@@ -191,7 +191,9 @@
+ std::to_string(mAudioTrack->getPortId());
android::mediametrics::LogItem(mMetricsId)
.set(AMEDIAMETRICS_PROP_PERFORMANCEMODE,
- AudioGlobal_convertPerformanceModeToText(getPerformanceMode()))
+ AudioGlobal_convertPerformanceModeToText(builder.getPerformanceMode()))
+ .set(AMEDIAMETRICS_PROP_SHARINGMODE,
+ AudioGlobal_convertSharingModeToText(builder.getSharingMode()))
.set(AMEDIAMETRICS_PROP_ENCODINGCLIENT, toString(getFormat()).c_str()).record();
doSetVolume();
diff --git a/media/libmediametrics/include/MediaMetricsConstants.h b/media/libmediametrics/include/MediaMetricsConstants.h
index 66108df..a09a673 100644
--- a/media/libmediametrics/include/MediaMetricsConstants.h
+++ b/media/libmediametrics/include/MediaMetricsConstants.h
@@ -166,6 +166,8 @@
// "powerSaving"
#define AMEDIAMETRICS_PROP_PERFORMANCEMODEACTUAL "performanceModeActual" // string
#define AMEDIAMETRICS_PROP_FRAMESTRANSFERRED "framesTransferred" // int64_t, transferred frames
+// string value, "exclusive", "shared". the actual selected sharing mode by the server
+#define AMEDIAMETRICS_PROP_SHARINGMODEACTUAL "sharingModeActual"
// Timing values: millisecond values are suffixed with MS and the type is double
// nanosecond values are suffixed with NS and the type is int64.
diff --git a/services/mediametrics/AudioAnalytics.cpp b/services/mediametrics/AudioAnalytics.cpp
index fe86264..11ec993 100644
--- a/services/mediametrics/AudioAnalytics.cpp
+++ b/services/mediametrics/AudioAnalytics.cpp
@@ -157,6 +157,7 @@
"log_session_id",
"sample_rate",
"content_type",
+ "sharing_requested",
};
/**
@@ -973,10 +974,11 @@
const auto perfModeActual =
types::lookup<types::AAUDIO_PERFORMANCE_MODE, int32_t>(perfModeActualStr);
- std::string sharingModeStr;
+ std::string sharingModeActualStr;
mAudioAnalytics.mAnalyticsState->timeMachine().get(
- key, AMEDIAMETRICS_PROP_SHARINGMODE, &sharingModeStr);
- const auto sharingMode = types::lookup<types::AAUDIO_SHARING_MODE, int32_t>(sharingModeStr);
+ key, AMEDIAMETRICS_PROP_SHARINGMODEACTUAL, &sharingModeActualStr);
+ const auto sharingModeActual =
+ types::lookup<types::AAUDIO_SHARING_MODE, int32_t>(sharingModeActualStr);
int32_t xrunCount = -1;
mAudioAnalytics.mAnalyticsState->timeMachine().get(
@@ -1008,6 +1010,12 @@
key, AMEDIAMETRICS_PROP_CONTENTTYPE, &contentTypeStr);
const auto contentType = types::lookup<types::CONTENT_TYPE, int32_t>(contentTypeStr);
+ std::string sharingModeRequestedStr;
+ mAudioAnalytics.mAnalyticsState->timeMachine().get(
+ key, AMEDIAMETRICS_PROP_SHARINGMODE, &sharingModeRequestedStr);
+ const auto sharingModeRequested =
+ types::lookup<types::AAUDIO_SHARING_MODE, int32_t>(sharingModeRequestedStr);
+
LOG(LOG_LEVEL) << "key:" << key
<< " path:" << path
<< " direction:" << direction << "(" << directionStr << ")"
@@ -1018,14 +1026,16 @@
<< " total_frames_transferred:" << totalFramesTransferred
<< " perf_mode_requested:" << perfModeRequested << "(" << perfModeRequestedStr << ")"
<< " perf_mode_actual:" << perfModeActual << "(" << perfModeActualStr << ")"
- << " sharing:" << sharingMode << "(" << sharingModeStr << ")"
+ << " sharing:" << sharingModeActual << "(" << sharingModeActualStr << ")"
<< " xrun_count:" << xrunCount
<< " device_type:" << serializedDeviceTypes
<< " format_app:" << formatApp << "(" << formatAppStr << ")"
<< " format_device: " << formatDevice << "(" << formatDeviceStr << ")"
<< " log_session_id: " << logSessionId
<< " sample_rate: " << sampleRate
- << " content_type: " << contentType << "(" << contentTypeStr << ")";
+ << " content_type: " << contentType << "(" << contentTypeStr << ")"
+ << " sharing_requested:" << sharingModeRequested
+ << "(" << sharingModeRequestedStr << ")";
if (mAudioAnalytics.mDeliverStatistics) {
android::util::BytesField bf_serialized(
@@ -1041,7 +1051,7 @@
, totalFramesTransferred
, perfModeRequested
, perfModeActual
- , sharingMode
+ , sharingModeActual
, xrunCount
, bf_serialized
, formatApp
@@ -1049,6 +1059,7 @@
, logSessionId.c_str()
, sampleRate
, contentType
+ , sharingModeRequested
);
std::stringstream ss;
ss << "result:" << result;
@@ -1063,7 +1074,7 @@
, totalFramesTransferred
, perfModeRequested
, perfModeActual
- , sharingMode
+ , sharingModeActual
, xrunCount
, serializedDeviceTypes.c_str()
, formatApp
@@ -1071,6 +1082,7 @@
, logSessionId.c_str()
, sampleRate
, contentType
+ , sharingModeRequested
);
ss << " " << fieldsStr;
std::string str = ss.str();