Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(715)

Side by Side Diff: webrtc/audio/audio_send_stream_unittest.cc

Issue 2226823003: Set the event log in Channel from AudioSendStream (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: Rebase Created 4 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * Copyright (c) 2015 The WebRTC project authors. All Rights Reserved. 2 * Copyright (c) 2015 The WebRTC project authors. All Rights Reserved.
3 * 3 *
4 * Use of this source code is governed by a BSD-style license 4 * Use of this source code is governed by a BSD-style license
5 * that can be found in the LICENSE file in the root of the source 5 * that can be found in the LICENSE file in the root of the source
6 * tree. An additional intellectual property rights grant can be found 6 * tree. An additional intellectual property rights grant can be found
7 * in the file PATENTS. All contributing project authors may 7 * in the file PATENTS. All contributing project authors may
8 * be found in the AUTHORS file in the root of the source tree. 8 * be found in the AUTHORS file in the root of the source tree.
9 */ 9 */
10 10
(...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after
97 congestion_controller_.pacer(), 97 congestion_controller_.pacer(),
98 congestion_controller_.GetTransportFeedbackObserver(), 98 congestion_controller_.GetTransportFeedbackObserver(),
99 congestion_controller_.packet_router())) 99 congestion_controller_.packet_router()))
100 .Times(1); 100 .Times(1);
101 EXPECT_CALL(*channel_proxy_, ResetCongestionControlObjects()) 101 EXPECT_CALL(*channel_proxy_, ResetCongestionControlObjects())
102 .Times(1); 102 .Times(1);
103 EXPECT_CALL(*channel_proxy_, RegisterExternalTransport(nullptr)) 103 EXPECT_CALL(*channel_proxy_, RegisterExternalTransport(nullptr))
104 .Times(1); 104 .Times(1);
105 EXPECT_CALL(*channel_proxy_, DeRegisterExternalTransport()) 105 EXPECT_CALL(*channel_proxy_, DeRegisterExternalTransport())
106 .Times(1); 106 .Times(1);
107 EXPECT_CALL(*channel_proxy_, SetRtcEventLog(testing::NotNull()))
108 .Times(1);
109 EXPECT_CALL(*channel_proxy_, SetRtcEventLog(testing::IsNull()))
110 .Times(1); // Destructor resets the event log
107 return channel_proxy_; 111 return channel_proxy_;
108 })); 112 }));
109 stream_config_.voe_channel_id = kChannelId; 113 stream_config_.voe_channel_id = kChannelId;
110 stream_config_.rtp.ssrc = kSsrc; 114 stream_config_.rtp.ssrc = kSsrc;
111 stream_config_.rtp.nack.rtp_history_ms = 200; 115 stream_config_.rtp.nack.rtp_history_ms = 200;
112 stream_config_.rtp.c_name = kCName; 116 stream_config_.rtp.c_name = kCName;
113 stream_config_.rtp.extensions.push_back( 117 stream_config_.rtp.extensions.push_back(
114 RtpExtension(RtpExtension::kAudioLevelUri, kAudioLevelId)); 118 RtpExtension(RtpExtension::kAudioLevelUri, kAudioLevelId));
115 stream_config_.rtp.extensions.push_back( 119 stream_config_.rtp.extensions.push_back(
116 RtpExtension(RtpExtension::kAbsSendTimeUri, kAbsSendTimeId)); 120 RtpExtension(RtpExtension::kAbsSendTimeUri, kAbsSendTimeId));
117 stream_config_.rtp.extensions.push_back(RtpExtension( 121 stream_config_.rtp.extensions.push_back(RtpExtension(
118 RtpExtension::kTransportSequenceNumberUri, kTransportSequenceNumberId)); 122 RtpExtension::kTransportSequenceNumberUri, kTransportSequenceNumberId));
119 } 123 }
120 124
121 AudioSendStream::Config& config() { return stream_config_; } 125 AudioSendStream::Config& config() { return stream_config_; }
122 rtc::scoped_refptr<AudioState> audio_state() { return audio_state_; } 126 rtc::scoped_refptr<AudioState> audio_state() { return audio_state_; }
123 MockVoEChannelProxy* channel_proxy() { return channel_proxy_; } 127 MockVoEChannelProxy* channel_proxy() { return channel_proxy_; }
124 CongestionController* congestion_controller() { 128 CongestionController* congestion_controller() {
125 return &congestion_controller_; 129 return &congestion_controller_;
126 } 130 }
127 BitrateAllocator* bitrate_allocator() { return &bitrate_allocator_; } 131 BitrateAllocator* bitrate_allocator() { return &bitrate_allocator_; }
132 RtcEventLog* event_log() { return &event_log_; }
128 133
129 void SetupMockForSendTelephoneEvent() { 134 void SetupMockForSendTelephoneEvent() {
130 EXPECT_TRUE(channel_proxy_); 135 EXPECT_TRUE(channel_proxy_);
131 EXPECT_CALL(*channel_proxy_, 136 EXPECT_CALL(*channel_proxy_,
132 SetSendTelephoneEventPayloadType(kTelephoneEventPayloadType)) 137 SetSendTelephoneEventPayloadType(kTelephoneEventPayloadType))
133 .WillOnce(Return(true)); 138 .WillOnce(Return(true));
134 EXPECT_CALL(*channel_proxy_, 139 EXPECT_CALL(*channel_proxy_,
135 SendTelephoneEventOutband(kTelephoneEventCode, kTelephoneEventDuration)) 140 SendTelephoneEventOutband(kTelephoneEventCode, kTelephoneEventDuration))
136 .WillOnce(Return(true)); 141 .WillOnce(Return(true));
137 } 142 }
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after
197 "http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time, id: 3}], " 202 "http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time, id: 3}], "
198 "nack: {rtp_history_ms: 0}, c_name: foo_name}, voe_channel_id: 1, " 203 "nack: {rtp_history_ms: 0}, c_name: foo_name}, voe_channel_id: 1, "
199 "cng_payload_type: 42}", 204 "cng_payload_type: 42}",
200 config.ToString()); 205 config.ToString());
201 } 206 }
202 207
203 TEST(AudioSendStreamTest, ConstructDestruct) { 208 TEST(AudioSendStreamTest, ConstructDestruct) {
204 ConfigHelper helper; 209 ConfigHelper helper;
205 internal::AudioSendStream send_stream(helper.config(), helper.audio_state(), 210 internal::AudioSendStream send_stream(helper.config(), helper.audio_state(),
206 helper.congestion_controller(), 211 helper.congestion_controller(),
207 helper.bitrate_allocator()); 212 helper.bitrate_allocator(),
213 helper.event_log());
208 } 214 }
209 215
210 TEST(AudioSendStreamTest, SendTelephoneEvent) { 216 TEST(AudioSendStreamTest, SendTelephoneEvent) {
211 ConfigHelper helper; 217 ConfigHelper helper;
212 internal::AudioSendStream send_stream(helper.config(), helper.audio_state(), 218 internal::AudioSendStream send_stream(helper.config(), helper.audio_state(),
213 helper.congestion_controller(), 219 helper.congestion_controller(),
214 helper.bitrate_allocator()); 220 helper.bitrate_allocator(),
221 helper.event_log());
215 helper.SetupMockForSendTelephoneEvent(); 222 helper.SetupMockForSendTelephoneEvent();
216 EXPECT_TRUE(send_stream.SendTelephoneEvent(kTelephoneEventPayloadType, 223 EXPECT_TRUE(send_stream.SendTelephoneEvent(kTelephoneEventPayloadType,
217 kTelephoneEventCode, kTelephoneEventDuration)); 224 kTelephoneEventCode, kTelephoneEventDuration));
218 } 225 }
219 226
220 TEST(AudioSendStreamTest, SetMuted) { 227 TEST(AudioSendStreamTest, SetMuted) {
221 ConfigHelper helper; 228 ConfigHelper helper;
222 internal::AudioSendStream send_stream(helper.config(), helper.audio_state(), 229 internal::AudioSendStream send_stream(helper.config(), helper.audio_state(),
223 helper.congestion_controller(), 230 helper.congestion_controller(),
224 helper.bitrate_allocator()); 231 helper.bitrate_allocator(),
232 helper.event_log());
225 EXPECT_CALL(*helper.channel_proxy(), SetInputMute(true)); 233 EXPECT_CALL(*helper.channel_proxy(), SetInputMute(true));
226 send_stream.SetMuted(true); 234 send_stream.SetMuted(true);
227 } 235 }
228 236
229 TEST(AudioSendStreamTest, GetStats) { 237 TEST(AudioSendStreamTest, GetStats) {
230 ConfigHelper helper; 238 ConfigHelper helper;
231 internal::AudioSendStream send_stream(helper.config(), helper.audio_state(), 239 internal::AudioSendStream send_stream(helper.config(), helper.audio_state(),
232 helper.congestion_controller(), 240 helper.congestion_controller(),
233 helper.bitrate_allocator()); 241 helper.bitrate_allocator(),
242 helper.event_log());
234 helper.SetupMockForGetStats(); 243 helper.SetupMockForGetStats();
235 AudioSendStream::Stats stats = send_stream.GetStats(); 244 AudioSendStream::Stats stats = send_stream.GetStats();
236 EXPECT_EQ(kSsrc, stats.local_ssrc); 245 EXPECT_EQ(kSsrc, stats.local_ssrc);
237 EXPECT_EQ(static_cast<int64_t>(kCallStats.bytesSent), stats.bytes_sent); 246 EXPECT_EQ(static_cast<int64_t>(kCallStats.bytesSent), stats.bytes_sent);
238 EXPECT_EQ(kCallStats.packetsSent, stats.packets_sent); 247 EXPECT_EQ(kCallStats.packetsSent, stats.packets_sent);
239 EXPECT_EQ(static_cast<int32_t>(kReportBlock.cumulative_num_packets_lost), 248 EXPECT_EQ(static_cast<int32_t>(kReportBlock.cumulative_num_packets_lost),
240 stats.packets_lost); 249 stats.packets_lost);
241 EXPECT_EQ(Q8ToFloat(kReportBlock.fraction_lost), stats.fraction_lost); 250 EXPECT_EQ(Q8ToFloat(kReportBlock.fraction_lost), stats.fraction_lost);
242 EXPECT_EQ(std::string(kCodecInst.plname), stats.codec_name); 251 EXPECT_EQ(std::string(kCodecInst.plname), stats.codec_name);
243 EXPECT_EQ(static_cast<int32_t>(kReportBlock.extended_highest_sequence_number), 252 EXPECT_EQ(static_cast<int32_t>(kReportBlock.extended_highest_sequence_number),
244 stats.ext_seqnum); 253 stats.ext_seqnum);
245 EXPECT_EQ(static_cast<int32_t>(kReportBlock.interarrival_jitter / 254 EXPECT_EQ(static_cast<int32_t>(kReportBlock.interarrival_jitter /
246 (kCodecInst.plfreq / 1000)), 255 (kCodecInst.plfreq / 1000)),
247 stats.jitter_ms); 256 stats.jitter_ms);
248 EXPECT_EQ(kCallStats.rttMs, stats.rtt_ms); 257 EXPECT_EQ(kCallStats.rttMs, stats.rtt_ms);
249 EXPECT_EQ(static_cast<int32_t>(kSpeechInputLevel), stats.audio_level); 258 EXPECT_EQ(static_cast<int32_t>(kSpeechInputLevel), stats.audio_level);
250 EXPECT_EQ(-1, stats.aec_quality_min); 259 EXPECT_EQ(-1, stats.aec_quality_min);
251 EXPECT_EQ(kEchoDelayMedian, stats.echo_delay_median_ms); 260 EXPECT_EQ(kEchoDelayMedian, stats.echo_delay_median_ms);
252 EXPECT_EQ(kEchoDelayStdDev, stats.echo_delay_std_ms); 261 EXPECT_EQ(kEchoDelayStdDev, stats.echo_delay_std_ms);
253 EXPECT_EQ(kEchoReturnLoss, stats.echo_return_loss); 262 EXPECT_EQ(kEchoReturnLoss, stats.echo_return_loss);
254 EXPECT_EQ(kEchoReturnLossEnhancement, stats.echo_return_loss_enhancement); 263 EXPECT_EQ(kEchoReturnLossEnhancement, stats.echo_return_loss_enhancement);
255 EXPECT_FALSE(stats.typing_noise_detected); 264 EXPECT_FALSE(stats.typing_noise_detected);
256 } 265 }
257 266
258 TEST(AudioSendStreamTest, GetStatsTypingNoiseDetected) { 267 TEST(AudioSendStreamTest, GetStatsTypingNoiseDetected) {
259 ConfigHelper helper; 268 ConfigHelper helper;
260 internal::AudioSendStream send_stream(helper.config(), helper.audio_state(), 269 internal::AudioSendStream send_stream(helper.config(), helper.audio_state(),
261 helper.congestion_controller(), 270 helper.congestion_controller(),
262 helper.bitrate_allocator()); 271 helper.bitrate_allocator(),
272 helper.event_log());
263 helper.SetupMockForGetStats(); 273 helper.SetupMockForGetStats();
264 EXPECT_FALSE(send_stream.GetStats().typing_noise_detected); 274 EXPECT_FALSE(send_stream.GetStats().typing_noise_detected);
265 275
266 internal::AudioState* internal_audio_state = 276 internal::AudioState* internal_audio_state =
267 static_cast<internal::AudioState*>(helper.audio_state().get()); 277 static_cast<internal::AudioState*>(helper.audio_state().get());
268 VoiceEngineObserver* voe_observer = 278 VoiceEngineObserver* voe_observer =
269 static_cast<VoiceEngineObserver*>(internal_audio_state); 279 static_cast<VoiceEngineObserver*>(internal_audio_state);
270 voe_observer->CallbackOnError(-1, VE_TYPING_NOISE_WARNING); 280 voe_observer->CallbackOnError(-1, VE_TYPING_NOISE_WARNING);
271 EXPECT_TRUE(send_stream.GetStats().typing_noise_detected); 281 EXPECT_TRUE(send_stream.GetStats().typing_noise_detected);
272 voe_observer->CallbackOnError(-1, VE_TYPING_NOISE_OFF_WARNING); 282 voe_observer->CallbackOnError(-1, VE_TYPING_NOISE_OFF_WARNING);
273 EXPECT_FALSE(send_stream.GetStats().typing_noise_detected); 283 EXPECT_FALSE(send_stream.GetStats().typing_noise_detected);
274 } 284 }
275 } // namespace test 285 } // namespace test
276 } // namespace webrtc 286 } // namespace webrtc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698