Switch kStatsValueName* constants to be enums instead of char*.
This is to guard against potentially assigning a value name to an incorrect value, non-static string or otherwise assume they can be treated as strings. R=perkj@webrtc.org Review URL: https://webrtc-codereview.appspot.com/26359004 git-svn-id: http://webrtc.googlecode.com/svn/trunk@7884 4adac7df-926f-26a2-2b94-8c16560cd09d
This commit is contained in:
@@ -1022,7 +1022,9 @@ class StatsObserverWrapper : public StatsObserver {
|
|||||||
for (int i = 0; i < values.size(); ++i) {
|
for (int i = 0; i < values.size(); ++i) {
|
||||||
ScopedLocalRefFrame local_ref_frame(jni);
|
ScopedLocalRefFrame local_ref_frame(jni);
|
||||||
const StatsReport::Value& value = values[i];
|
const StatsReport::Value& value = values[i];
|
||||||
jstring j_name = JavaStringFromStdString(jni, value.name);
|
// Should we use the '.name' enum value here instead of converting the
|
||||||
|
// name to a string?
|
||||||
|
jstring j_name = JavaStringFromStdString(jni, value.display_name());
|
||||||
jstring j_value = JavaStringFromStdString(jni, value.value);
|
jstring j_value = JavaStringFromStdString(jni, value.value);
|
||||||
jobject j_element_value =
|
jobject j_element_value =
|
||||||
jni->NewObject(*j_value_class_, j_value_ctor_, j_name, j_value);
|
jni->NewObject(*j_value_class_, j_value_ctor_, j_name, j_value);
|
||||||
|
@@ -29,148 +29,6 @@
|
|||||||
|
|
||||||
namespace webrtc {
|
namespace webrtc {
|
||||||
|
|
||||||
// The items below are in alphabetical order.
|
|
||||||
const char StatsReport::kStatsValueNameActiveConnection[] =
|
|
||||||
"googActiveConnection";
|
|
||||||
const char StatsReport::kStatsValueNameActualEncBitrate[] =
|
|
||||||
"googActualEncBitrate";
|
|
||||||
const char StatsReport::kStatsValueNameAudioOutputLevel[] = "audioOutputLevel";
|
|
||||||
const char StatsReport::kStatsValueNameAudioInputLevel[] = "audioInputLevel";
|
|
||||||
const char StatsReport::kStatsValueNameAvailableReceiveBandwidth[] =
|
|
||||||
"googAvailableReceiveBandwidth";
|
|
||||||
const char StatsReport::kStatsValueNameAvailableSendBandwidth[] =
|
|
||||||
"googAvailableSendBandwidth";
|
|
||||||
const char StatsReport::kStatsValueNameAvgEncodeMs[] = "googAvgEncodeMs";
|
|
||||||
const char StatsReport::kStatsValueNameBucketDelay[] = "googBucketDelay";
|
|
||||||
const char StatsReport::kStatsValueNameBytesReceived[] = "bytesReceived";
|
|
||||||
const char StatsReport::kStatsValueNameBytesSent[] = "bytesSent";
|
|
||||||
const char StatsReport::kStatsValueNameBandwidthLimitedResolution[] =
|
|
||||||
"googBandwidthLimitedResolution";
|
|
||||||
const char StatsReport::kStatsValueNameCaptureJitterMs[] =
|
|
||||||
"googCaptureJitterMs";
|
|
||||||
const char StatsReport::kStatsValueNameCaptureQueueDelayMsPerS[] =
|
|
||||||
"googCaptureQueueDelayMsPerS";
|
|
||||||
const char StatsReport::kStatsValueNameChannelId[] = "googChannelId";
|
|
||||||
const char StatsReport::kStatsValueNameCodecName[] = "googCodecName";
|
|
||||||
const char StatsReport::kStatsValueNameComponent[] = "googComponent";
|
|
||||||
const char StatsReport::kStatsValueNameContentName[] = "googContentName";
|
|
||||||
const char StatsReport::kStatsValueNameCpuLimitedResolution[] =
|
|
||||||
"googCpuLimitedResolution";
|
|
||||||
const char StatsReport::kStatsValueNameDecodingCTSG[] =
|
|
||||||
"googDecodingCTSG";
|
|
||||||
const char StatsReport::kStatsValueNameDecodingCTN[] =
|
|
||||||
"googDecodingCTN";
|
|
||||||
const char StatsReport::kStatsValueNameDecodingNormal[] =
|
|
||||||
"googDecodingNormal";
|
|
||||||
const char StatsReport::kStatsValueNameDecodingPLC[] =
|
|
||||||
"googDecodingPLC";
|
|
||||||
const char StatsReport::kStatsValueNameDecodingCNG[] =
|
|
||||||
"googDecodingCNG";
|
|
||||||
const char StatsReport::kStatsValueNameDecodingPLCCNG[] =
|
|
||||||
"googDecodingPLCCNG";
|
|
||||||
const char StatsReport::kStatsValueNameDer[] = "googDerBase64";
|
|
||||||
// Echo metrics from the audio processing module.
|
|
||||||
const char StatsReport::kStatsValueNameEchoCancellationQualityMin[] =
|
|
||||||
"googEchoCancellationQualityMin";
|
|
||||||
const char StatsReport::kStatsValueNameEchoDelayMedian[] =
|
|
||||||
"googEchoCancellationEchoDelayMedian";
|
|
||||||
const char StatsReport::kStatsValueNameEchoDelayStdDev[] =
|
|
||||||
"googEchoCancellationEchoDelayStdDev";
|
|
||||||
const char StatsReport::kStatsValueNameEchoReturnLoss[] =
|
|
||||||
"googEchoCancellationReturnLoss";
|
|
||||||
const char StatsReport::kStatsValueNameEchoReturnLossEnhancement[] =
|
|
||||||
"googEchoCancellationReturnLossEnhancement";
|
|
||||||
|
|
||||||
const char StatsReport::kStatsValueNameEncodeUsagePercent[] =
|
|
||||||
"googEncodeUsagePercent";
|
|
||||||
const char StatsReport::kStatsValueNameExpandRate[] = "googExpandRate";
|
|
||||||
const char StatsReport::kStatsValueNameFingerprint[] = "googFingerprint";
|
|
||||||
const char StatsReport::kStatsValueNameFingerprintAlgorithm[] =
|
|
||||||
"googFingerprintAlgorithm";
|
|
||||||
const char StatsReport::kStatsValueNameFirsReceived[] = "googFirsReceived";
|
|
||||||
const char StatsReport::kStatsValueNameFirsSent[] = "googFirsSent";
|
|
||||||
const char StatsReport::kStatsValueNameFrameHeightInput[] =
|
|
||||||
"googFrameHeightInput";
|
|
||||||
const char StatsReport::kStatsValueNameFrameHeightReceived[] =
|
|
||||||
"googFrameHeightReceived";
|
|
||||||
const char StatsReport::kStatsValueNameFrameHeightSent[] =
|
|
||||||
"googFrameHeightSent";
|
|
||||||
const char StatsReport::kStatsValueNameFrameRateReceived[] =
|
|
||||||
"googFrameRateReceived";
|
|
||||||
const char StatsReport::kStatsValueNameFrameRateDecoded[] =
|
|
||||||
"googFrameRateDecoded";
|
|
||||||
const char StatsReport::kStatsValueNameFrameRateOutput[] =
|
|
||||||
"googFrameRateOutput";
|
|
||||||
const char StatsReport::kStatsValueNameDecodeMs[] = "googDecodeMs";
|
|
||||||
const char StatsReport::kStatsValueNameMaxDecodeMs[] = "googMaxDecodeMs";
|
|
||||||
const char StatsReport::kStatsValueNameCurrentDelayMs[] = "googCurrentDelayMs";
|
|
||||||
const char StatsReport::kStatsValueNameTargetDelayMs[] = "googTargetDelayMs";
|
|
||||||
const char StatsReport::kStatsValueNameJitterBufferMs[] = "googJitterBufferMs";
|
|
||||||
const char StatsReport::kStatsValueNameMinPlayoutDelayMs[] =
|
|
||||||
"googMinPlayoutDelayMs";
|
|
||||||
const char StatsReport::kStatsValueNameRenderDelayMs[] = "googRenderDelayMs";
|
|
||||||
|
|
||||||
const char StatsReport::kStatsValueNameCaptureStartNtpTimeMs[] =
|
|
||||||
"googCaptureStartNtpTimeMs";
|
|
||||||
|
|
||||||
const char StatsReport::kStatsValueNameFrameRateInput[] = "googFrameRateInput";
|
|
||||||
const char StatsReport::kStatsValueNameFrameRateSent[] = "googFrameRateSent";
|
|
||||||
const char StatsReport::kStatsValueNameFrameWidthInput[] =
|
|
||||||
"googFrameWidthInput";
|
|
||||||
const char StatsReport::kStatsValueNameFrameWidthReceived[] =
|
|
||||||
"googFrameWidthReceived";
|
|
||||||
const char StatsReport::kStatsValueNameFrameWidthSent[] = "googFrameWidthSent";
|
|
||||||
const char StatsReport::kStatsValueNameInitiator[] = "googInitiator";
|
|
||||||
const char StatsReport::kStatsValueNameIssuerId[] = "googIssuerId";
|
|
||||||
const char StatsReport::kStatsValueNameJitterReceived[] = "googJitterReceived";
|
|
||||||
const char StatsReport::kStatsValueNameLocalAddress[] = "googLocalAddress";
|
|
||||||
const char StatsReport::kStatsValueNameLocalCandidateType[] =
|
|
||||||
"googLocalCandidateType";
|
|
||||||
const char StatsReport::kStatsValueNameLocalCertificateId[] =
|
|
||||||
"googLocalCertificateId";
|
|
||||||
const char StatsReport::kStatsValueNameAdaptationChanges[] =
|
|
||||||
"googAdaptationChanges";
|
|
||||||
const char StatsReport::kStatsValueNameNacksReceived[] = "googNacksReceived";
|
|
||||||
const char StatsReport::kStatsValueNameNacksSent[] = "googNacksSent";
|
|
||||||
const char StatsReport::kStatsValueNamePlisReceived[] = "googPlisReceived";
|
|
||||||
const char StatsReport::kStatsValueNamePlisSent[] = "googPlisSent";
|
|
||||||
const char StatsReport::kStatsValueNamePacketsReceived[] = "packetsReceived";
|
|
||||||
const char StatsReport::kStatsValueNamePacketsSent[] = "packetsSent";
|
|
||||||
const char StatsReport::kStatsValueNamePacketsLost[] = "packetsLost";
|
|
||||||
const char StatsReport::kStatsValueNamePreferredJitterBufferMs[] =
|
|
||||||
"googPreferredJitterBufferMs";
|
|
||||||
const char StatsReport::kStatsValueNameReadable[] = "googReadable";
|
|
||||||
const char StatsReport::kStatsValueNameRecvPacketGroupArrivalTimeDebug[] =
|
|
||||||
"googReceivedPacketGroupArrivalTimeDebug";
|
|
||||||
const char StatsReport::kStatsValueNameRecvPacketGroupPropagationDeltaDebug[] =
|
|
||||||
"googReceivedPacketGroupPropagationDeltaDebug";
|
|
||||||
const char
|
|
||||||
StatsReport::kStatsValueNameRecvPacketGroupPropagationDeltaSumDebug[] =
|
|
||||||
"googReceivedPacketGroupPropagationDeltaSumDebug";
|
|
||||||
const char StatsReport::kStatsValueNameRemoteAddress[] = "googRemoteAddress";
|
|
||||||
const char StatsReport::kStatsValueNameRemoteCandidateType[] =
|
|
||||||
"googRemoteCandidateType";
|
|
||||||
const char StatsReport::kStatsValueNameRemoteCertificateId[] =
|
|
||||||
"googRemoteCertificateId";
|
|
||||||
const char StatsReport::kStatsValueNameRetransmitBitrate[] =
|
|
||||||
"googRetransmitBitrate";
|
|
||||||
const char StatsReport::kStatsValueNameRtt[] = "googRtt";
|
|
||||||
const char StatsReport::kStatsValueNameSsrc[] = "ssrc";
|
|
||||||
const char StatsReport::kStatsValueNameSendPacketsDiscarded[] =
|
|
||||||
"packetsDiscardedOnSend";
|
|
||||||
const char StatsReport::kStatsValueNameTargetEncBitrate[] =
|
|
||||||
"googTargetEncBitrate";
|
|
||||||
const char StatsReport::kStatsValueNameTransmitBitrate[] =
|
|
||||||
"googTransmitBitrate";
|
|
||||||
const char StatsReport::kStatsValueNameTransportId[] = "transportId";
|
|
||||||
const char StatsReport::kStatsValueNameTransportType[] = "googTransportType";
|
|
||||||
const char StatsReport::kStatsValueNameTrackId[] = "googTrackId";
|
|
||||||
const char StatsReport::kStatsValueNameTypingNoiseState[] =
|
|
||||||
"googTypingNoiseState";
|
|
||||||
const char StatsReport::kStatsValueNameViewLimitedResolution[] =
|
|
||||||
"googViewLimitedResolution";
|
|
||||||
const char StatsReport::kStatsValueNameWritable[] = "googWritable";
|
|
||||||
|
|
||||||
const char StatsReport::kStatsReportTypeSession[] = "googLibjingleSession";
|
const char StatsReport::kStatsReportTypeSession[] = "googLibjingleSession";
|
||||||
const char StatsReport::kStatsReportTypeBwe[] = "VideoBwe";
|
const char StatsReport::kStatsReportTypeBwe[] = "VideoBwe";
|
||||||
const char StatsReport::kStatsReportTypeRemoteSsrc[] = "remoteSsrc";
|
const char StatsReport::kStatsReportTypeRemoteSsrc[] = "remoteSsrc";
|
||||||
@@ -218,10 +76,6 @@ bool StatsReport::operator==(const std::string& other_id) const {
|
|||||||
return id == other_id;
|
return id == other_id;
|
||||||
}
|
}
|
||||||
|
|
||||||
StatsReport::Value::Value()
|
|
||||||
: name(NULL) {
|
|
||||||
}
|
|
||||||
|
|
||||||
// The copy ctor can't be declared as explicit due to problems with STL.
|
// The copy ctor can't be declared as explicit due to problems with STL.
|
||||||
StatsReport::Value::Value(const Value& other)
|
StatsReport::Value::Value(const Value& other)
|
||||||
: name(other.name), value(other.value) {
|
: name(other.name), value(other.value) {
|
||||||
@@ -241,11 +95,194 @@ StatsReport::Value& StatsReport::Value::operator=(const Value& other) {
|
|||||||
return *this;
|
return *this;
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO(tommi): Change implementation to do a simple enum value-to-static-
|
|
||||||
// string conversion when client code has been updated to use this method
|
|
||||||
// instead of the |name| member variable.
|
|
||||||
const char* StatsReport::Value::display_name() const {
|
const char* StatsReport::Value::display_name() const {
|
||||||
return name;
|
switch (name) {
|
||||||
|
case kStatsValueNameAudioOutputLevel:
|
||||||
|
return "audioOutputLevel";
|
||||||
|
case kStatsValueNameAudioInputLevel:
|
||||||
|
return "audioInputLevel";
|
||||||
|
case kStatsValueNameBytesSent:
|
||||||
|
return "bytesSent";
|
||||||
|
case kStatsValueNamePacketsSent:
|
||||||
|
return "packetsSent";
|
||||||
|
case kStatsValueNameBytesReceived:
|
||||||
|
return "bytesReceived";
|
||||||
|
case kStatsValueNamePacketsReceived:
|
||||||
|
return "packetsReceived";
|
||||||
|
case kStatsValueNamePacketsLost:
|
||||||
|
return "packetsLost";
|
||||||
|
case kStatsValueNameTransportId:
|
||||||
|
return "transportId";
|
||||||
|
case kStatsValueNameSsrc:
|
||||||
|
return "ssrc";
|
||||||
|
|
||||||
|
// 'goog' prefixed constants.
|
||||||
|
case kStatsValueNameActiveConnection:
|
||||||
|
return "googActiveConnection";
|
||||||
|
case kStatsValueNameActualEncBitrate:
|
||||||
|
return "googActualEncBitrate";
|
||||||
|
case kStatsValueNameAvailableReceiveBandwidth:
|
||||||
|
return "googAvailableReceiveBandwidth";
|
||||||
|
case kStatsValueNameAvailableSendBandwidth:
|
||||||
|
return "googAvailableSendBandwidth";
|
||||||
|
case kStatsValueNameAvgEncodeMs:
|
||||||
|
return "googAvgEncodeMs";
|
||||||
|
case kStatsValueNameBucketDelay:
|
||||||
|
return "googBucketDelay";
|
||||||
|
case kStatsValueNameBandwidthLimitedResolution:
|
||||||
|
return "googBandwidthLimitedResolution";
|
||||||
|
case kStatsValueNameCaptureJitterMs:
|
||||||
|
return "googCaptureJitterMs";
|
||||||
|
case kStatsValueNameCaptureQueueDelayMsPerS:
|
||||||
|
return "googCaptureQueueDelayMsPerS";
|
||||||
|
case kStatsValueNameChannelId:
|
||||||
|
return "googChannelId";
|
||||||
|
case kStatsValueNameCodecName:
|
||||||
|
return "googCodecName";
|
||||||
|
case kStatsValueNameComponent:
|
||||||
|
return "googComponent";
|
||||||
|
case kStatsValueNameContentName:
|
||||||
|
return "googContentName";
|
||||||
|
case kStatsValueNameCpuLimitedResolution:
|
||||||
|
return "googCpuLimitedResolution";
|
||||||
|
case kStatsValueNameDecodingCTSG:
|
||||||
|
return "googDecodingCTSG";
|
||||||
|
case kStatsValueNameDecodingCTN:
|
||||||
|
return "googDecodingCTN";
|
||||||
|
case kStatsValueNameDecodingNormal:
|
||||||
|
return "googDecodingNormal";
|
||||||
|
case kStatsValueNameDecodingPLC:
|
||||||
|
return "googDecodingPLC";
|
||||||
|
case kStatsValueNameDecodingCNG:
|
||||||
|
return "googDecodingCNG";
|
||||||
|
case kStatsValueNameDecodingPLCCNG:
|
||||||
|
return "googDecodingPLCCNG";
|
||||||
|
case kStatsValueNameDer:
|
||||||
|
return "googDerBase64";
|
||||||
|
case kStatsValueNameEchoCancellationQualityMin:
|
||||||
|
return "googEchoCancellationQualityMin";
|
||||||
|
case kStatsValueNameEchoDelayMedian:
|
||||||
|
return "googEchoCancellationEchoDelayMedian";
|
||||||
|
case kStatsValueNameEchoDelayStdDev:
|
||||||
|
return "googEchoCancellationEchoDelayStdDev";
|
||||||
|
case kStatsValueNameEchoReturnLoss:
|
||||||
|
return "googEchoCancellationReturnLoss";
|
||||||
|
case kStatsValueNameEchoReturnLossEnhancement:
|
||||||
|
return "googEchoCancellationReturnLossEnhancement";
|
||||||
|
case kStatsValueNameEncodeUsagePercent:
|
||||||
|
return "googEncodeUsagePercent";
|
||||||
|
case kStatsValueNameExpandRate:
|
||||||
|
return "googExpandRate";
|
||||||
|
case kStatsValueNameFingerprint:
|
||||||
|
return "googFingerprint";
|
||||||
|
case kStatsValueNameFingerprintAlgorithm:
|
||||||
|
return "googFingerprintAlgorithm";
|
||||||
|
case kStatsValueNameFirsReceived:
|
||||||
|
return "googFirsReceived";
|
||||||
|
case kStatsValueNameFirsSent:
|
||||||
|
return "googFirsSent";
|
||||||
|
case kStatsValueNameFrameHeightInput:
|
||||||
|
return "googFrameHeightInput";
|
||||||
|
case kStatsValueNameFrameHeightReceived:
|
||||||
|
return "googFrameHeightReceived";
|
||||||
|
case kStatsValueNameFrameHeightSent:
|
||||||
|
return "googFrameHeightSent";
|
||||||
|
case kStatsValueNameFrameRateReceived:
|
||||||
|
return "googFrameRateReceived";
|
||||||
|
case kStatsValueNameFrameRateDecoded:
|
||||||
|
return "googFrameRateDecoded";
|
||||||
|
case kStatsValueNameFrameRateOutput:
|
||||||
|
return "googFrameRateOutput";
|
||||||
|
case kStatsValueNameDecodeMs:
|
||||||
|
return "googDecodeMs";
|
||||||
|
case kStatsValueNameMaxDecodeMs:
|
||||||
|
return "googMaxDecodeMs";
|
||||||
|
case kStatsValueNameCurrentDelayMs:
|
||||||
|
return "googCurrentDelayMs";
|
||||||
|
case kStatsValueNameTargetDelayMs:
|
||||||
|
return "googTargetDelayMs";
|
||||||
|
case kStatsValueNameJitterBufferMs:
|
||||||
|
return "googJitterBufferMs";
|
||||||
|
case kStatsValueNameMinPlayoutDelayMs:
|
||||||
|
return "googMinPlayoutDelayMs";
|
||||||
|
case kStatsValueNameRenderDelayMs:
|
||||||
|
return "googRenderDelayMs";
|
||||||
|
case kStatsValueNameCaptureStartNtpTimeMs:
|
||||||
|
return "googCaptureStartNtpTimeMs";
|
||||||
|
case kStatsValueNameFrameRateInput:
|
||||||
|
return "googFrameRateInput";
|
||||||
|
case kStatsValueNameFrameRateSent:
|
||||||
|
return "googFrameRateSent";
|
||||||
|
case kStatsValueNameFrameWidthInput:
|
||||||
|
return "googFrameWidthInput";
|
||||||
|
case kStatsValueNameFrameWidthReceived:
|
||||||
|
return "googFrameWidthReceived";
|
||||||
|
case kStatsValueNameFrameWidthSent:
|
||||||
|
return "googFrameWidthSent";
|
||||||
|
case kStatsValueNameInitiator:
|
||||||
|
return "googInitiator";
|
||||||
|
case kStatsValueNameIssuerId:
|
||||||
|
return "googIssuerId";
|
||||||
|
case kStatsValueNameJitterReceived:
|
||||||
|
return "googJitterReceived";
|
||||||
|
case kStatsValueNameLocalAddress:
|
||||||
|
return "googLocalAddress";
|
||||||
|
case kStatsValueNameLocalCandidateType:
|
||||||
|
return "googLocalCandidateType";
|
||||||
|
case kStatsValueNameLocalCertificateId:
|
||||||
|
return "googLocalCertificateId";
|
||||||
|
case kStatsValueNameAdaptationChanges:
|
||||||
|
return "googAdaptationChanges";
|
||||||
|
case kStatsValueNameNacksReceived:
|
||||||
|
return "googNacksReceived";
|
||||||
|
case kStatsValueNameNacksSent:
|
||||||
|
return "googNacksSent";
|
||||||
|
case kStatsValueNamePlisReceived:
|
||||||
|
return "googPlisReceived";
|
||||||
|
case kStatsValueNamePlisSent:
|
||||||
|
return "googPlisSent";
|
||||||
|
case kStatsValueNamePreferredJitterBufferMs:
|
||||||
|
return "googPreferredJitterBufferMs";
|
||||||
|
case kStatsValueNameReadable:
|
||||||
|
return "googReadable";
|
||||||
|
case kStatsValueNameRecvPacketGroupArrivalTimeDebug:
|
||||||
|
return "googReceivedPacketGroupArrivalTimeDebug";
|
||||||
|
case kStatsValueNameRecvPacketGroupPropagationDeltaDebug:
|
||||||
|
return "googReceivedPacketGroupPropagationDeltaDebug";
|
||||||
|
case kStatsValueNameRecvPacketGroupPropagationDeltaSumDebug:
|
||||||
|
return "googReceivedPacketGroupPropagationDeltaSumDebug";
|
||||||
|
case kStatsValueNameRemoteAddress:
|
||||||
|
return "googRemoteAddress";
|
||||||
|
case kStatsValueNameRemoteCandidateType:
|
||||||
|
return "googRemoteCandidateType";
|
||||||
|
case kStatsValueNameRemoteCertificateId:
|
||||||
|
return "googRemoteCertificateId";
|
||||||
|
case kStatsValueNameRetransmitBitrate:
|
||||||
|
return "googRetransmitBitrate";
|
||||||
|
case kStatsValueNameRtt:
|
||||||
|
return "googRtt";
|
||||||
|
case kStatsValueNameSendPacketsDiscarded:
|
||||||
|
return "packetsDiscardedOnSend";
|
||||||
|
case kStatsValueNameTargetEncBitrate:
|
||||||
|
return "googTargetEncBitrate";
|
||||||
|
case kStatsValueNameTransmitBitrate:
|
||||||
|
return "googTransmitBitrate";
|
||||||
|
case kStatsValueNameTransportType:
|
||||||
|
return "googTransportType";
|
||||||
|
case kStatsValueNameTrackId:
|
||||||
|
return "googTrackId";
|
||||||
|
case kStatsValueNameTypingNoiseState:
|
||||||
|
return "googTypingNoiseState";
|
||||||
|
case kStatsValueNameViewLimitedResolution:
|
||||||
|
return "googViewLimitedResolution";
|
||||||
|
case kStatsValueNameWritable:
|
||||||
|
return "googWritable";
|
||||||
|
default:
|
||||||
|
ASSERT(false);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
return nullptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
void StatsReport::AddValue(StatsReport::StatsValueName name,
|
void StatsReport::AddValue(StatsReport::StatsValueName name,
|
||||||
|
@@ -65,10 +65,6 @@ class StatsReport {
|
|||||||
// without requiring a new StatsReport instance.
|
// without requiring a new StatsReport instance.
|
||||||
bool operator==(const std::string& other_id) const;
|
bool operator==(const std::string& other_id) const;
|
||||||
|
|
||||||
// TODO(tommi): Change this to be an enum type that holds all the
|
|
||||||
// kStatsValueName constants.
|
|
||||||
typedef const char* StatsValueName;
|
|
||||||
|
|
||||||
// The unique identifier for this object.
|
// The unique identifier for this object.
|
||||||
// This is used as a key for this report in ordered containers,
|
// This is used as a key for this report in ordered containers,
|
||||||
// so it must never be changed.
|
// so it must never be changed.
|
||||||
@@ -76,8 +72,102 @@ class StatsReport {
|
|||||||
std::string id; // See below for contents.
|
std::string id; // See below for contents.
|
||||||
std::string type; // See below for contents.
|
std::string type; // See below for contents.
|
||||||
|
|
||||||
|
// StatsValue names.
|
||||||
|
enum StatsValueName {
|
||||||
|
kStatsValueNameActiveConnection,
|
||||||
|
kStatsValueNameAudioInputLevel,
|
||||||
|
kStatsValueNameAudioOutputLevel,
|
||||||
|
kStatsValueNameBytesReceived,
|
||||||
|
kStatsValueNameBytesSent,
|
||||||
|
kStatsValueNamePacketsLost,
|
||||||
|
kStatsValueNamePacketsReceived,
|
||||||
|
kStatsValueNamePacketsSent,
|
||||||
|
kStatsValueNameReadable,
|
||||||
|
kStatsValueNameSsrc,
|
||||||
|
kStatsValueNameTransportId,
|
||||||
|
|
||||||
|
// Internal StatsValue names.
|
||||||
|
kStatsValueNameActualEncBitrate,
|
||||||
|
kStatsValueNameAdaptationChanges,
|
||||||
|
kStatsValueNameAvailableReceiveBandwidth,
|
||||||
|
kStatsValueNameAvailableSendBandwidth,
|
||||||
|
kStatsValueNameAvgEncodeMs,
|
||||||
|
kStatsValueNameBandwidthLimitedResolution,
|
||||||
|
kStatsValueNameBucketDelay,
|
||||||
|
kStatsValueNameCaptureJitterMs,
|
||||||
|
kStatsValueNameCaptureQueueDelayMsPerS,
|
||||||
|
kStatsValueNameCaptureStartNtpTimeMs,
|
||||||
|
kStatsValueNameChannelId,
|
||||||
|
kStatsValueNameCodecName,
|
||||||
|
kStatsValueNameComponent,
|
||||||
|
kStatsValueNameContentName,
|
||||||
|
kStatsValueNameCpuLimitedResolution,
|
||||||
|
kStatsValueNameCurrentDelayMs,
|
||||||
|
kStatsValueNameDecodeMs,
|
||||||
|
kStatsValueNameDecodingCNG,
|
||||||
|
kStatsValueNameDecodingCTN,
|
||||||
|
kStatsValueNameDecodingCTSG,
|
||||||
|
kStatsValueNameDecodingNormal,
|
||||||
|
kStatsValueNameDecodingPLC,
|
||||||
|
kStatsValueNameDecodingPLCCNG,
|
||||||
|
kStatsValueNameDer,
|
||||||
|
kStatsValueNameEchoCancellationQualityMin,
|
||||||
|
kStatsValueNameEchoDelayMedian,
|
||||||
|
kStatsValueNameEchoDelayStdDev,
|
||||||
|
kStatsValueNameEchoReturnLoss,
|
||||||
|
kStatsValueNameEchoReturnLossEnhancement,
|
||||||
|
kStatsValueNameEncodeUsagePercent,
|
||||||
|
kStatsValueNameExpandRate,
|
||||||
|
kStatsValueNameFingerprint,
|
||||||
|
kStatsValueNameFingerprintAlgorithm,
|
||||||
|
kStatsValueNameFirsReceived,
|
||||||
|
kStatsValueNameFirsSent,
|
||||||
|
kStatsValueNameFrameHeightInput,
|
||||||
|
kStatsValueNameFrameHeightReceived,
|
||||||
|
kStatsValueNameFrameHeightSent,
|
||||||
|
kStatsValueNameFrameRateDecoded,
|
||||||
|
kStatsValueNameFrameRateInput,
|
||||||
|
kStatsValueNameFrameRateOutput,
|
||||||
|
kStatsValueNameFrameRateReceived,
|
||||||
|
kStatsValueNameFrameRateSent,
|
||||||
|
kStatsValueNameFrameWidthInput,
|
||||||
|
kStatsValueNameFrameWidthReceived,
|
||||||
|
kStatsValueNameFrameWidthSent,
|
||||||
|
kStatsValueNameInitiator,
|
||||||
|
kStatsValueNameIssuerId,
|
||||||
|
kStatsValueNameJitterBufferMs,
|
||||||
|
kStatsValueNameJitterReceived,
|
||||||
|
kStatsValueNameLocalAddress,
|
||||||
|
kStatsValueNameLocalCandidateType,
|
||||||
|
kStatsValueNameLocalCertificateId,
|
||||||
|
kStatsValueNameMaxDecodeMs,
|
||||||
|
kStatsValueNameMinPlayoutDelayMs,
|
||||||
|
kStatsValueNameNacksReceived,
|
||||||
|
kStatsValueNameNacksSent,
|
||||||
|
kStatsValueNamePlisReceived,
|
||||||
|
kStatsValueNamePlisSent,
|
||||||
|
kStatsValueNamePreferredJitterBufferMs,
|
||||||
|
kStatsValueNameRecvPacketGroupArrivalTimeDebug,
|
||||||
|
kStatsValueNameRecvPacketGroupPropagationDeltaDebug,
|
||||||
|
kStatsValueNameRecvPacketGroupPropagationDeltaSumDebug,
|
||||||
|
kStatsValueNameRemoteAddress,
|
||||||
|
kStatsValueNameRemoteCandidateType,
|
||||||
|
kStatsValueNameRemoteCertificateId,
|
||||||
|
kStatsValueNameRenderDelayMs,
|
||||||
|
kStatsValueNameRetransmitBitrate,
|
||||||
|
kStatsValueNameRtt,
|
||||||
|
kStatsValueNameSendPacketsDiscarded,
|
||||||
|
kStatsValueNameTargetDelayMs,
|
||||||
|
kStatsValueNameTargetEncBitrate,
|
||||||
|
kStatsValueNameTrackId,
|
||||||
|
kStatsValueNameTransmitBitrate,
|
||||||
|
kStatsValueNameTransportType,
|
||||||
|
kStatsValueNameTypingNoiseState,
|
||||||
|
kStatsValueNameViewLimitedResolution,
|
||||||
|
kStatsValueNameWritable,
|
||||||
|
};
|
||||||
|
|
||||||
struct Value {
|
struct Value {
|
||||||
Value();
|
|
||||||
// The copy ctor can't be declared as explicit due to problems with STL.
|
// The copy ctor can't be declared as explicit due to problems with STL.
|
||||||
Value(const Value& other);
|
Value(const Value& other);
|
||||||
explicit Value(StatsValueName name);
|
explicit Value(StatsValueName name);
|
||||||
@@ -88,9 +178,7 @@ class StatsReport {
|
|||||||
// The public |name| member variable is otherwise meant to be read-only.
|
// The public |name| member variable is otherwise meant to be read-only.
|
||||||
Value& operator=(const Value& other);
|
Value& operator=(const Value& other);
|
||||||
|
|
||||||
// TODO(tommi): Change implementation to do a simple enum value-to-static-
|
// Returns the string representation of |name|.
|
||||||
// string conversion when client code has been updated to use this method
|
|
||||||
// instead of the |name| member variable.
|
|
||||||
const char* display_name() const;
|
const char* display_name() const;
|
||||||
|
|
||||||
const StatsValueName name;
|
const StatsValueName name;
|
||||||
@@ -153,9 +241,6 @@ class StatsReport {
|
|||||||
// ICE Candidate. It links to its transport.
|
// ICE Candidate. It links to its transport.
|
||||||
static const char kStatsReportTypeIceCandidate[];
|
static const char kStatsReportTypeIceCandidate[];
|
||||||
|
|
||||||
// The id of StatsReport of type VideoBWE.
|
|
||||||
static const char kStatsReportVideoBweId[];
|
|
||||||
|
|
||||||
// A StatsReport of |type| = "googCertificate" contains an SSL certificate
|
// A StatsReport of |type| = "googCertificate" contains an SSL certificate
|
||||||
// transmitted by one of the endpoints of this connection. The |id| is
|
// transmitted by one of the endpoints of this connection. The |id| is
|
||||||
// controlled by the fingerprint, and is used to identify the certificate in
|
// controlled by the fingerprint, and is used to identify the certificate in
|
||||||
@@ -164,99 +249,8 @@ class StatsReport {
|
|||||||
// "googIssuerId").
|
// "googIssuerId").
|
||||||
static const char kStatsReportTypeCertificate[];
|
static const char kStatsReportTypeCertificate[];
|
||||||
|
|
||||||
// StatsValue names
|
// The id of StatsReport of type VideoBWE.
|
||||||
static const char kStatsValueNameAudioOutputLevel[];
|
static const char kStatsReportVideoBweId[];
|
||||||
static const char kStatsValueNameAudioInputLevel[];
|
|
||||||
static const char kStatsValueNameBytesSent[];
|
|
||||||
static const char kStatsValueNamePacketsSent[];
|
|
||||||
static const char kStatsValueNameBytesReceived[];
|
|
||||||
static const char kStatsValueNamePacketsReceived[];
|
|
||||||
static const char kStatsValueNamePacketsLost[];
|
|
||||||
static const char kStatsValueNameTransportId[];
|
|
||||||
static const char kStatsValueNameLocalAddress[];
|
|
||||||
static const char kStatsValueNameRemoteAddress[];
|
|
||||||
static const char kStatsValueNameWritable[];
|
|
||||||
static const char kStatsValueNameReadable[];
|
|
||||||
static const char kStatsValueNameActiveConnection[];
|
|
||||||
|
|
||||||
|
|
||||||
// Internal StatsValue names
|
|
||||||
static const char kStatsValueNameAvgEncodeMs[];
|
|
||||||
static const char kStatsValueNameEncodeUsagePercent[];
|
|
||||||
static const char kStatsValueNameCaptureJitterMs[];
|
|
||||||
static const char kStatsValueNameCaptureQueueDelayMsPerS[];
|
|
||||||
static const char kStatsValueNameCodecName[];
|
|
||||||
static const char kStatsValueNameBandwidthLimitedResolution[];
|
|
||||||
static const char kStatsValueNameCpuLimitedResolution[];
|
|
||||||
static const char kStatsValueNameViewLimitedResolution[];
|
|
||||||
static const char kStatsValueNameAdaptationChanges[];
|
|
||||||
static const char kStatsValueNameEchoCancellationQualityMin[];
|
|
||||||
static const char kStatsValueNameEchoDelayMedian[];
|
|
||||||
static const char kStatsValueNameEchoDelayStdDev[];
|
|
||||||
static const char kStatsValueNameEchoReturnLoss[];
|
|
||||||
static const char kStatsValueNameEchoReturnLossEnhancement[];
|
|
||||||
static const char kStatsValueNameExpandRate[];
|
|
||||||
static const char kStatsValueNameFirsReceived[];
|
|
||||||
static const char kStatsValueNameFirsSent[];
|
|
||||||
static const char kStatsValueNameFrameHeightInput[];
|
|
||||||
static const char kStatsValueNameFrameHeightReceived[];
|
|
||||||
static const char kStatsValueNameFrameHeightSent[];
|
|
||||||
static const char kStatsValueNameFrameRateReceived[];
|
|
||||||
static const char kStatsValueNameFrameRateDecoded[];
|
|
||||||
static const char kStatsValueNameFrameRateOutput[];
|
|
||||||
static const char kStatsValueNameDecodeMs[];
|
|
||||||
static const char kStatsValueNameMaxDecodeMs[];
|
|
||||||
static const char kStatsValueNameCurrentDelayMs[];
|
|
||||||
static const char kStatsValueNameTargetDelayMs[];
|
|
||||||
static const char kStatsValueNameJitterBufferMs[];
|
|
||||||
static const char kStatsValueNameMinPlayoutDelayMs[];
|
|
||||||
static const char kStatsValueNameRenderDelayMs[];
|
|
||||||
static const char kStatsValueNameCaptureStartNtpTimeMs[];
|
|
||||||
static const char kStatsValueNameFrameRateInput[];
|
|
||||||
static const char kStatsValueNameFrameRateSent[];
|
|
||||||
static const char kStatsValueNameFrameWidthInput[];
|
|
||||||
static const char kStatsValueNameFrameWidthReceived[];
|
|
||||||
static const char kStatsValueNameFrameWidthSent[];
|
|
||||||
static const char kStatsValueNameJitterReceived[];
|
|
||||||
static const char kStatsValueNameNacksReceived[];
|
|
||||||
static const char kStatsValueNameNacksSent[];
|
|
||||||
static const char kStatsValueNamePlisReceived[];
|
|
||||||
static const char kStatsValueNamePlisSent[];
|
|
||||||
static const char kStatsValueNamePreferredJitterBufferMs[];
|
|
||||||
static const char kStatsValueNameRtt[];
|
|
||||||
static const char kStatsValueNameAvailableSendBandwidth[];
|
|
||||||
static const char kStatsValueNameAvailableReceiveBandwidth[];
|
|
||||||
static const char kStatsValueNameTargetEncBitrate[];
|
|
||||||
static const char kStatsValueNameActualEncBitrate[];
|
|
||||||
static const char kStatsValueNameRetransmitBitrate[];
|
|
||||||
static const char kStatsValueNameTransmitBitrate[];
|
|
||||||
static const char kStatsValueNameBucketDelay[];
|
|
||||||
static const char kStatsValueNameInitiator[];
|
|
||||||
static const char kStatsValueNameTransportType[];
|
|
||||||
static const char kStatsValueNameContentName[];
|
|
||||||
static const char kStatsValueNameComponent[];
|
|
||||||
static const char kStatsValueNameChannelId[];
|
|
||||||
static const char kStatsValueNameTrackId[];
|
|
||||||
static const char kStatsValueNameSsrc[];
|
|
||||||
static const char kStatsValueNameSendPacketsDiscarded[];
|
|
||||||
static const char kStatsValueNameTypingNoiseState[];
|
|
||||||
static const char kStatsValueNameDer[];
|
|
||||||
static const char kStatsValueNameFingerprint[];
|
|
||||||
static const char kStatsValueNameFingerprintAlgorithm[];
|
|
||||||
static const char kStatsValueNameIssuerId[];
|
|
||||||
static const char kStatsValueNameLocalCertificateId[];
|
|
||||||
static const char kStatsValueNameRemoteCertificateId[];
|
|
||||||
static const char kStatsValueNameLocalCandidateType[];
|
|
||||||
static const char kStatsValueNameRemoteCandidateType[];
|
|
||||||
static const char kStatsValueNameRecvPacketGroupArrivalTimeDebug[];
|
|
||||||
static const char kStatsValueNameRecvPacketGroupPropagationDeltaDebug[];
|
|
||||||
static const char kStatsValueNameRecvPacketGroupPropagationDeltaSumDebug[];
|
|
||||||
static const char kStatsValueNameDecodingCTSG[];
|
|
||||||
static const char kStatsValueNameDecodingCTN[];
|
|
||||||
static const char kStatsValueNameDecodingNormal[];
|
|
||||||
static const char kStatsValueNameDecodingPLC[];
|
|
||||||
static const char kStatsValueNameDecodingCNG[];
|
|
||||||
static const char kStatsValueNameDecodingPLCCNG[];
|
|
||||||
};
|
};
|
||||||
|
|
||||||
// This class is provided for the cases where we need to keep
|
// This class is provided for the cases where we need to keep
|
||||||
|
Reference in New Issue
Block a user