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

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: Registration order and rebase Created 4 years, 3 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
« no previous file with comments | « webrtc/audio/audio_send_stream.cc ('k') | webrtc/call/call.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 88 matching lines...) Expand 10 before | Expand all | Expand 10 after
99 congestion_controller_.pacer(), 99 congestion_controller_.pacer(),
100 congestion_controller_.GetTransportFeedbackObserver(), 100 congestion_controller_.GetTransportFeedbackObserver(),
101 congestion_controller_.packet_router())) 101 congestion_controller_.packet_router()))
102 .Times(1); 102 .Times(1);
103 EXPECT_CALL(*channel_proxy_, ResetCongestionControlObjects()) 103 EXPECT_CALL(*channel_proxy_, ResetCongestionControlObjects())
104 .Times(1); 104 .Times(1);
105 EXPECT_CALL(*channel_proxy_, RegisterExternalTransport(nullptr)) 105 EXPECT_CALL(*channel_proxy_, RegisterExternalTransport(nullptr))
106 .Times(1); 106 .Times(1);
107 EXPECT_CALL(*channel_proxy_, DeRegisterExternalTransport()) 107 EXPECT_CALL(*channel_proxy_, DeRegisterExternalTransport())
108 .Times(1); 108 .Times(1);
109 EXPECT_CALL(*channel_proxy_, SetRtcEventLog(testing::NotNull()))
110 .Times(1);
111 EXPECT_CALL(*channel_proxy_, SetRtcEventLog(testing::IsNull()))
112 .Times(1); // Destructor resets the event log
109 return channel_proxy_; 113 return channel_proxy_;
110 })); 114 }));
111 stream_config_.voe_channel_id = kChannelId; 115 stream_config_.voe_channel_id = kChannelId;
112 stream_config_.rtp.ssrc = kSsrc; 116 stream_config_.rtp.ssrc = kSsrc;
113 stream_config_.rtp.nack.rtp_history_ms = 200; 117 stream_config_.rtp.nack.rtp_history_ms = 200;
114 stream_config_.rtp.c_name = kCName; 118 stream_config_.rtp.c_name = kCName;
115 stream_config_.rtp.extensions.push_back( 119 stream_config_.rtp.extensions.push_back(
116 RtpExtension(RtpExtension::kAudioLevelUri, kAudioLevelId)); 120 RtpExtension(RtpExtension::kAudioLevelUri, kAudioLevelId));
117 stream_config_.rtp.extensions.push_back( 121 stream_config_.rtp.extensions.push_back(
118 RtpExtension(RtpExtension::kAbsSendTimeUri, kAbsSendTimeId)); 122 RtpExtension(RtpExtension::kAbsSendTimeUri, kAbsSendTimeId));
119 stream_config_.rtp.extensions.push_back(RtpExtension( 123 stream_config_.rtp.extensions.push_back(RtpExtension(
120 RtpExtension::kTransportSequenceNumberUri, kTransportSequenceNumberId)); 124 RtpExtension::kTransportSequenceNumberUri, kTransportSequenceNumberId));
121 } 125 }
122 126
123 AudioSendStream::Config& config() { return stream_config_; } 127 AudioSendStream::Config& config() { return stream_config_; }
124 rtc::scoped_refptr<AudioState> audio_state() { return audio_state_; } 128 rtc::scoped_refptr<AudioState> audio_state() { return audio_state_; }
125 MockVoEChannelProxy* channel_proxy() { return channel_proxy_; } 129 MockVoEChannelProxy* channel_proxy() { return channel_proxy_; }
126 CongestionController* congestion_controller() { 130 CongestionController* congestion_controller() {
127 return &congestion_controller_; 131 return &congestion_controller_;
128 } 132 }
129 BitrateAllocator* bitrate_allocator() { return &bitrate_allocator_; } 133 BitrateAllocator* bitrate_allocator() { return &bitrate_allocator_; }
130 rtc::TaskQueue* worker_queue() { return &worker_queue_; } 134 rtc::TaskQueue* worker_queue() { return &worker_queue_; }
135 RtcEventLog* event_log() { return &event_log_; }
131 136
132 void SetupMockForSendTelephoneEvent() { 137 void SetupMockForSendTelephoneEvent() {
133 EXPECT_TRUE(channel_proxy_); 138 EXPECT_TRUE(channel_proxy_);
134 EXPECT_CALL(*channel_proxy_, 139 EXPECT_CALL(*channel_proxy_,
135 SetSendTelephoneEventPayloadType(kTelephoneEventPayloadType)) 140 SetSendTelephoneEventPayloadType(kTelephoneEventPayloadType))
136 .WillOnce(Return(true)); 141 .WillOnce(Return(true));
137 EXPECT_CALL(*channel_proxy_, 142 EXPECT_CALL(*channel_proxy_,
138 SendTelephoneEventOutband(kTelephoneEventCode, kTelephoneEventDuration)) 143 SendTelephoneEventOutband(kTelephoneEventCode, kTelephoneEventDuration))
139 .WillOnce(Return(true)); 144 .WillOnce(Return(true));
140 } 145 }
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after
203 "http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time, id: 3}], " 208 "http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time, id: 3}], "
204 "nack: {rtp_history_ms: 0}, c_name: foo_name}, voe_channel_id: 1, " 209 "nack: {rtp_history_ms: 0}, c_name: foo_name}, voe_channel_id: 1, "
205 "cng_payload_type: 42}", 210 "cng_payload_type: 42}",
206 config.ToString()); 211 config.ToString());
207 } 212 }
208 213
209 TEST(AudioSendStreamTest, ConstructDestruct) { 214 TEST(AudioSendStreamTest, ConstructDestruct) {
210 ConfigHelper helper; 215 ConfigHelper helper;
211 internal::AudioSendStream send_stream( 216 internal::AudioSendStream send_stream(
212 helper.config(), helper.audio_state(), helper.worker_queue(), 217 helper.config(), helper.audio_state(), helper.worker_queue(),
213 helper.congestion_controller(), helper.bitrate_allocator()); 218 helper.congestion_controller(), helper.bitrate_allocator(),
219 helper.event_log());
214 } 220 }
215 221
216 TEST(AudioSendStreamTest, SendTelephoneEvent) { 222 TEST(AudioSendStreamTest, SendTelephoneEvent) {
217 ConfigHelper helper; 223 ConfigHelper helper;
218 internal::AudioSendStream send_stream( 224 internal::AudioSendStream send_stream(
219 helper.config(), helper.audio_state(), helper.worker_queue(), 225 helper.config(), helper.audio_state(), helper.worker_queue(),
220 helper.congestion_controller(), helper.bitrate_allocator()); 226 helper.congestion_controller(), helper.bitrate_allocator(),
227 helper.event_log());
221 helper.SetupMockForSendTelephoneEvent(); 228 helper.SetupMockForSendTelephoneEvent();
222 EXPECT_TRUE(send_stream.SendTelephoneEvent(kTelephoneEventPayloadType, 229 EXPECT_TRUE(send_stream.SendTelephoneEvent(kTelephoneEventPayloadType,
223 kTelephoneEventCode, kTelephoneEventDuration)); 230 kTelephoneEventCode, kTelephoneEventDuration));
224 } 231 }
225 232
226 TEST(AudioSendStreamTest, SetMuted) { 233 TEST(AudioSendStreamTest, SetMuted) {
227 ConfigHelper helper; 234 ConfigHelper helper;
228 internal::AudioSendStream send_stream( 235 internal::AudioSendStream send_stream(
229 helper.config(), helper.audio_state(), helper.worker_queue(), 236 helper.config(), helper.audio_state(), helper.worker_queue(),
230 helper.congestion_controller(), helper.bitrate_allocator()); 237 helper.congestion_controller(), helper.bitrate_allocator(),
238 helper.event_log());
231 EXPECT_CALL(*helper.channel_proxy(), SetInputMute(true)); 239 EXPECT_CALL(*helper.channel_proxy(), SetInputMute(true));
232 send_stream.SetMuted(true); 240 send_stream.SetMuted(true);
233 } 241 }
234 242
235 TEST(AudioSendStreamTest, GetStats) { 243 TEST(AudioSendStreamTest, GetStats) {
236 ConfigHelper helper; 244 ConfigHelper helper;
237 internal::AudioSendStream send_stream( 245 internal::AudioSendStream send_stream(
238 helper.config(), helper.audio_state(), helper.worker_queue(), 246 helper.config(), helper.audio_state(), helper.worker_queue(),
239 helper.congestion_controller(), helper.bitrate_allocator()); 247 helper.congestion_controller(), helper.bitrate_allocator(),
248 helper.event_log());
240 helper.SetupMockForGetStats(); 249 helper.SetupMockForGetStats();
241 AudioSendStream::Stats stats = send_stream.GetStats(); 250 AudioSendStream::Stats stats = send_stream.GetStats();
242 EXPECT_EQ(kSsrc, stats.local_ssrc); 251 EXPECT_EQ(kSsrc, stats.local_ssrc);
243 EXPECT_EQ(static_cast<int64_t>(kCallStats.bytesSent), stats.bytes_sent); 252 EXPECT_EQ(static_cast<int64_t>(kCallStats.bytesSent), stats.bytes_sent);
244 EXPECT_EQ(kCallStats.packetsSent, stats.packets_sent); 253 EXPECT_EQ(kCallStats.packetsSent, stats.packets_sent);
245 EXPECT_EQ(static_cast<int32_t>(kReportBlock.cumulative_num_packets_lost), 254 EXPECT_EQ(static_cast<int32_t>(kReportBlock.cumulative_num_packets_lost),
246 stats.packets_lost); 255 stats.packets_lost);
247 EXPECT_EQ(Q8ToFloat(kReportBlock.fraction_lost), stats.fraction_lost); 256 EXPECT_EQ(Q8ToFloat(kReportBlock.fraction_lost), stats.fraction_lost);
248 EXPECT_EQ(std::string(kCodecInst.plname), stats.codec_name); 257 EXPECT_EQ(std::string(kCodecInst.plname), stats.codec_name);
249 EXPECT_EQ(static_cast<int32_t>(kReportBlock.extended_highest_sequence_number), 258 EXPECT_EQ(static_cast<int32_t>(kReportBlock.extended_highest_sequence_number),
250 stats.ext_seqnum); 259 stats.ext_seqnum);
251 EXPECT_EQ(static_cast<int32_t>(kReportBlock.interarrival_jitter / 260 EXPECT_EQ(static_cast<int32_t>(kReportBlock.interarrival_jitter /
252 (kCodecInst.plfreq / 1000)), 261 (kCodecInst.plfreq / 1000)),
253 stats.jitter_ms); 262 stats.jitter_ms);
254 EXPECT_EQ(kCallStats.rttMs, stats.rtt_ms); 263 EXPECT_EQ(kCallStats.rttMs, stats.rtt_ms);
255 EXPECT_EQ(static_cast<int32_t>(kSpeechInputLevel), stats.audio_level); 264 EXPECT_EQ(static_cast<int32_t>(kSpeechInputLevel), stats.audio_level);
256 EXPECT_EQ(-1, stats.aec_quality_min); 265 EXPECT_EQ(-1, stats.aec_quality_min);
257 EXPECT_EQ(kEchoDelayMedian, stats.echo_delay_median_ms); 266 EXPECT_EQ(kEchoDelayMedian, stats.echo_delay_median_ms);
258 EXPECT_EQ(kEchoDelayStdDev, stats.echo_delay_std_ms); 267 EXPECT_EQ(kEchoDelayStdDev, stats.echo_delay_std_ms);
259 EXPECT_EQ(kEchoReturnLoss, stats.echo_return_loss); 268 EXPECT_EQ(kEchoReturnLoss, stats.echo_return_loss);
260 EXPECT_EQ(kEchoReturnLossEnhancement, stats.echo_return_loss_enhancement); 269 EXPECT_EQ(kEchoReturnLossEnhancement, stats.echo_return_loss_enhancement);
261 EXPECT_FALSE(stats.typing_noise_detected); 270 EXPECT_FALSE(stats.typing_noise_detected);
262 } 271 }
263 272
264 TEST(AudioSendStreamTest, GetStatsTypingNoiseDetected) { 273 TEST(AudioSendStreamTest, GetStatsTypingNoiseDetected) {
265 ConfigHelper helper; 274 ConfigHelper helper;
266 internal::AudioSendStream send_stream( 275 internal::AudioSendStream send_stream(
267 helper.config(), helper.audio_state(), helper.worker_queue(), 276 helper.config(), helper.audio_state(), helper.worker_queue(),
268 helper.congestion_controller(), helper.bitrate_allocator()); 277 helper.congestion_controller(), helper.bitrate_allocator(),
278 helper.event_log());
269 helper.SetupMockForGetStats(); 279 helper.SetupMockForGetStats();
270 EXPECT_FALSE(send_stream.GetStats().typing_noise_detected); 280 EXPECT_FALSE(send_stream.GetStats().typing_noise_detected);
271 281
272 internal::AudioState* internal_audio_state = 282 internal::AudioState* internal_audio_state =
273 static_cast<internal::AudioState*>(helper.audio_state().get()); 283 static_cast<internal::AudioState*>(helper.audio_state().get());
274 VoiceEngineObserver* voe_observer = 284 VoiceEngineObserver* voe_observer =
275 static_cast<VoiceEngineObserver*>(internal_audio_state); 285 static_cast<VoiceEngineObserver*>(internal_audio_state);
276 voe_observer->CallbackOnError(-1, VE_TYPING_NOISE_WARNING); 286 voe_observer->CallbackOnError(-1, VE_TYPING_NOISE_WARNING);
277 EXPECT_TRUE(send_stream.GetStats().typing_noise_detected); 287 EXPECT_TRUE(send_stream.GetStats().typing_noise_detected);
278 voe_observer->CallbackOnError(-1, VE_TYPING_NOISE_OFF_WARNING); 288 voe_observer->CallbackOnError(-1, VE_TYPING_NOISE_OFF_WARNING);
279 EXPECT_FALSE(send_stream.GetStats().typing_noise_detected); 289 EXPECT_FALSE(send_stream.GetStats().typing_noise_detected);
280 } 290 }
281 } // namespace test 291 } // namespace test
282 } // namespace webrtc 292 } // namespace webrtc
OLDNEW
« no previous file with comments | « webrtc/audio/audio_send_stream.cc ('k') | webrtc/call/call.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698