OLD | NEW |
1 /* | 1 /* |
2 * libjingle | 2 * libjingle |
3 * Copyright 2012 Google Inc. | 3 * Copyright 2012 Google Inc. |
4 * | 4 * |
5 * Redistribution and use in source and binary forms, with or without | 5 * Redistribution and use in source and binary forms, with or without |
6 * modification, are permitted provided that the following conditions are met: | 6 * modification, are permitted provided that the following conditions are met: |
7 * | 7 * |
8 * 1. Redistributions of source code must retain the above copyright notice, | 8 * 1. Redistributions of source code must retain the above copyright notice, |
9 * this list of conditions and the following disclaimer. | 9 * this list of conditions and the following disclaimer. |
10 * 2. Redistributions in binary form must reproduce the above copyright notice, | 10 * 2. Redistributions in binary form must reproduce the above copyright notice, |
(...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
101 } | 101 } |
102 } | 102 } |
103 | 103 |
104 void ExtractCommonSendProperties(const cricket::MediaSenderInfo& info, | 104 void ExtractCommonSendProperties(const cricket::MediaSenderInfo& info, |
105 StatsReport* report) { | 105 StatsReport* report) { |
106 report->AddString(StatsReport::kStatsValueNameCodecName, info.codec_name); | 106 report->AddString(StatsReport::kStatsValueNameCodecName, info.codec_name); |
107 report->AddInt64(StatsReport::kStatsValueNameBytesSent, info.bytes_sent); | 107 report->AddInt64(StatsReport::kStatsValueNameBytesSent, info.bytes_sent); |
108 report->AddInt64(StatsReport::kStatsValueNameRtt, info.rtt_ms); | 108 report->AddInt64(StatsReport::kStatsValueNameRtt, info.rtt_ms); |
109 } | 109 } |
110 | 110 |
| 111 void ExtractCommonReceiveProperties(const cricket::MediaReceiverInfo& info, |
| 112 StatsReport* report) { |
| 113 report->AddString(StatsReport::kStatsValueNameCodecName, info.codec_name); |
| 114 } |
| 115 |
111 void SetAudioProcessingStats(StatsReport* report, int signal_level, | 116 void SetAudioProcessingStats(StatsReport* report, int signal_level, |
112 bool typing_noise_detected, int echo_return_loss, | 117 bool typing_noise_detected, int echo_return_loss, |
113 int echo_return_loss_enhancement, int echo_delay_median_ms, | 118 int echo_return_loss_enhancement, int echo_delay_median_ms, |
114 float aec_quality_min, int echo_delay_std_ms) { | 119 float aec_quality_min, int echo_delay_std_ms) { |
115 report->AddBoolean(StatsReport::kStatsValueNameTypingNoiseState, | 120 report->AddBoolean(StatsReport::kStatsValueNameTypingNoiseState, |
116 typing_noise_detected); | 121 typing_noise_detected); |
117 report->AddFloat(StatsReport::kStatsValueNameEchoCancellationQualityMin, | 122 report->AddFloat(StatsReport::kStatsValueNameEchoCancellationQualityMin, |
118 aec_quality_min); | 123 aec_quality_min); |
119 // Don't overwrite the previous signal level if it's not available now. | 124 // Don't overwrite the previous signal level if it's not available now. |
120 if (signal_level >= 0) | 125 if (signal_level >= 0) |
121 report->AddInt(StatsReport::kStatsValueNameAudioInputLevel, signal_level); | 126 report->AddInt(StatsReport::kStatsValueNameAudioInputLevel, signal_level); |
122 const IntForAdd ints[] = { | 127 const IntForAdd ints[] = { |
123 { StatsReport::kStatsValueNameEchoReturnLoss, echo_return_loss }, | 128 { StatsReport::kStatsValueNameEchoReturnLoss, echo_return_loss }, |
124 { StatsReport::kStatsValueNameEchoReturnLossEnhancement, | 129 { StatsReport::kStatsValueNameEchoReturnLossEnhancement, |
125 echo_return_loss_enhancement }, | 130 echo_return_loss_enhancement }, |
126 { StatsReport::kStatsValueNameEchoDelayMedian, echo_delay_median_ms }, | 131 { StatsReport::kStatsValueNameEchoDelayMedian, echo_delay_median_ms }, |
127 { StatsReport::kStatsValueNameEchoDelayStdDev, echo_delay_std_ms }, | 132 { StatsReport::kStatsValueNameEchoDelayStdDev, echo_delay_std_ms }, |
128 }; | 133 }; |
129 for (const auto& i : ints) | 134 for (const auto& i : ints) |
130 report->AddInt(i.name, i.value); | 135 report->AddInt(i.name, i.value); |
131 } | 136 } |
132 | 137 |
133 void ExtractStats(const cricket::VoiceReceiverInfo& info, StatsReport* report) { | 138 void ExtractStats(const cricket::VoiceReceiverInfo& info, StatsReport* report) { |
| 139 ExtractCommonReceiveProperties(info, report); |
134 const FloatForAdd floats[] = { | 140 const FloatForAdd floats[] = { |
135 { StatsReport::kStatsValueNameExpandRate, info.expand_rate }, | 141 { StatsReport::kStatsValueNameExpandRate, info.expand_rate }, |
136 { StatsReport::kStatsValueNameSecondaryDecodedRate, | 142 { StatsReport::kStatsValueNameSecondaryDecodedRate, |
137 info.secondary_decoded_rate }, | 143 info.secondary_decoded_rate }, |
138 { StatsReport::kStatsValueNameSpeechExpandRate, info.speech_expand_rate }, | 144 { StatsReport::kStatsValueNameSpeechExpandRate, info.speech_expand_rate }, |
139 { StatsReport::kStatsValueNameAccelerateRate, info.accelerate_rate }, | 145 { StatsReport::kStatsValueNameAccelerateRate, info.accelerate_rate }, |
140 { StatsReport::kStatsValueNamePreemptiveExpandRate, | 146 { StatsReport::kStatsValueNamePreemptiveExpandRate, |
141 info.preemptive_expand_rate }, | 147 info.preemptive_expand_rate }, |
142 }; | 148 }; |
143 | 149 |
(...skipping 18 matching lines...) Expand all Loading... |
162 for (const auto& f : floats) | 168 for (const auto& f : floats) |
163 report->AddFloat(f.name, f.value); | 169 report->AddFloat(f.name, f.value); |
164 | 170 |
165 for (const auto& i : ints) | 171 for (const auto& i : ints) |
166 report->AddInt(i.name, i.value); | 172 report->AddInt(i.name, i.value); |
167 | 173 |
168 report->AddInt64(StatsReport::kStatsValueNameBytesReceived, | 174 report->AddInt64(StatsReport::kStatsValueNameBytesReceived, |
169 info.bytes_rcvd); | 175 info.bytes_rcvd); |
170 report->AddInt64(StatsReport::kStatsValueNameCaptureStartNtpTimeMs, | 176 report->AddInt64(StatsReport::kStatsValueNameCaptureStartNtpTimeMs, |
171 info.capture_start_ntp_time_ms); | 177 info.capture_start_ntp_time_ms); |
172 | |
173 report->AddString(StatsReport::kStatsValueNameCodecName, info.codec_name); | |
174 } | 178 } |
175 | 179 |
176 void ExtractStats(const cricket::VoiceSenderInfo& info, StatsReport* report) { | 180 void ExtractStats(const cricket::VoiceSenderInfo& info, StatsReport* report) { |
177 ExtractCommonSendProperties(info, report); | 181 ExtractCommonSendProperties(info, report); |
178 | 182 |
179 SetAudioProcessingStats(report, info.audio_level, info.typing_noise_detected, | 183 SetAudioProcessingStats(report, info.audio_level, info.typing_noise_detected, |
180 info.echo_return_loss, info.echo_return_loss_enhancement, | 184 info.echo_return_loss, info.echo_return_loss_enhancement, |
181 info.echo_delay_median_ms, info.aec_quality_min, info.echo_delay_std_ms); | 185 info.echo_delay_median_ms, info.aec_quality_min, info.echo_delay_std_ms); |
182 | 186 |
183 const IntForAdd ints[] = { | 187 const IntForAdd ints[] = { |
184 { StatsReport::kStatsValueNameJitterReceived, info.jitter_ms }, | 188 { StatsReport::kStatsValueNameJitterReceived, info.jitter_ms }, |
185 { StatsReport::kStatsValueNamePacketsLost, info.packets_lost }, | 189 { StatsReport::kStatsValueNamePacketsLost, info.packets_lost }, |
186 { StatsReport::kStatsValueNamePacketsSent, info.packets_sent }, | 190 { StatsReport::kStatsValueNamePacketsSent, info.packets_sent }, |
187 }; | 191 }; |
188 | 192 |
189 for (const auto& i : ints) | 193 for (const auto& i : ints) |
190 report->AddInt(i.name, i.value); | 194 report->AddInt(i.name, i.value); |
191 } | 195 } |
192 | 196 |
193 void ExtractStats(const cricket::VideoReceiverInfo& info, StatsReport* report) { | 197 void ExtractStats(const cricket::VideoReceiverInfo& info, StatsReport* report) { |
| 198 ExtractCommonReceiveProperties(info, report); |
194 report->AddInt64(StatsReport::kStatsValueNameBytesReceived, | 199 report->AddInt64(StatsReport::kStatsValueNameBytesReceived, |
195 info.bytes_rcvd); | 200 info.bytes_rcvd); |
196 report->AddInt64(StatsReport::kStatsValueNameCaptureStartNtpTimeMs, | 201 report->AddInt64(StatsReport::kStatsValueNameCaptureStartNtpTimeMs, |
197 info.capture_start_ntp_time_ms); | 202 info.capture_start_ntp_time_ms); |
198 const IntForAdd ints[] = { | 203 const IntForAdd ints[] = { |
199 { StatsReport::kStatsValueNameCurrentDelayMs, info.current_delay_ms }, | 204 { StatsReport::kStatsValueNameCurrentDelayMs, info.current_delay_ms }, |
200 { StatsReport::kStatsValueNameDecodeMs, info.decode_ms }, | 205 { StatsReport::kStatsValueNameDecodeMs, info.decode_ms }, |
201 { StatsReport::kStatsValueNameFirsSent, info.firs_sent }, | 206 { StatsReport::kStatsValueNameFirsSent, info.firs_sent }, |
202 { StatsReport::kStatsValueNameFrameHeightReceived, info.frame_height }, | 207 { StatsReport::kStatsValueNameFrameHeightReceived, info.frame_height }, |
203 { StatsReport::kStatsValueNameFrameRateDecoded, info.framerate_decoded }, | 208 { StatsReport::kStatsValueNameFrameRateDecoded, info.framerate_decoded }, |
(...skipping 731 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
935 report->set_timestamp(stats_gathering_started_); | 940 report->set_timestamp(stats_gathering_started_); |
936 } | 941 } |
937 | 942 |
938 } | 943 } |
939 | 944 |
940 void StatsCollector::ClearUpdateStatsCacheForTest() { | 945 void StatsCollector::ClearUpdateStatsCacheForTest() { |
941 stats_gathering_started_ = 0; | 946 stats_gathering_started_ = 0; |
942 } | 947 } |
943 | 948 |
944 } // namespace webrtc | 949 } // namespace webrtc |
OLD | NEW |