diff --git a/talk/app/webrtc/statscollector.cc b/talk/app/webrtc/statscollector.cc index b00d19cee6..7e1e7eec66 100644 --- a/talk/app/webrtc/statscollector.cc +++ b/talk/app/webrtc/statscollector.cc @@ -51,6 +51,8 @@ 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[] = @@ -59,6 +61,8 @@ 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::kStatsValueNameDer[] = "googDerBase64"; // Echo metrics from the audio processing module. const char StatsReport::kStatsValueNameEchoCancellationQualityMin[] = @@ -135,6 +139,8 @@ 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"; @@ -299,6 +305,12 @@ void ExtractStats(const cricket::VideoSenderInfo& info, StatsReport* report) { info.framerate_sent); report->AddValue(StatsReport::kStatsValueNameRtt, info.rtt_ms); report->AddValue(StatsReport::kStatsValueNameCodecName, info.codec_name); + report->AddBoolean(StatsReport::kStatsValueNameCpuLimitedResolution, + (info.adapt_reason & 0x1) > 0); + report->AddBoolean(StatsReport::kStatsValueNameBandwidthLimitedResolution, + (info.adapt_reason & 0x2) > 0); + report->AddBoolean(StatsReport::kStatsValueNameViewLimitedResolution, + (info.adapt_reason & 0x4) > 0); report->AddValue(StatsReport::kStatsValueNameAvgEncodeMs, info.avg_encode_ms); report->AddValue(StatsReport::kStatsValueNameCaptureJitterMs, info.capture_jitter_ms); diff --git a/talk/app/webrtc/statstypes.h b/talk/app/webrtc/statstypes.h index 6afc8d7dea..6890f9e017 100644 --- a/talk/app/webrtc/statstypes.h +++ b/talk/app/webrtc/statstypes.h @@ -133,6 +133,9 @@ class StatsReport { 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 kStatsValueNameEchoCancellationQualityMin[]; static const char kStatsValueNameEchoDelayMedian[]; static const char kStatsValueNameEchoDelayStdDev[]; diff --git a/talk/base/asyncpacketsocket.h b/talk/base/asyncpacketsocket.h index 8ee0a36d26..29ab55ffc4 100644 --- a/talk/base/asyncpacketsocket.h +++ b/talk/base/asyncpacketsocket.h @@ -38,7 +38,7 @@ namespace talk_base { // This structure will have the information about when packet is actually // received by socket. struct PacketTime { - PacketTime() : timestamp(0), not_before(0) {} + PacketTime() : timestamp(-1), not_before(-1) {} PacketTime(int64 timestamp, int64 not_before) : timestamp(timestamp), not_before(not_before) { }