OLD | NEW |
---|---|
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 17 matching lines...) Expand all Loading... | |
28 namespace test { | 28 namespace test { |
29 namespace { | 29 namespace { |
30 | 30 |
31 using testing::_; | 31 using testing::_; |
32 using testing::Return; | 32 using testing::Return; |
33 | 33 |
34 const int kChannelId = 1; | 34 const int kChannelId = 1; |
35 const uint32_t kSsrc = 1234; | 35 const uint32_t kSsrc = 1234; |
36 const char* kCName = "foo_name"; | 36 const char* kCName = "foo_name"; |
37 const int kAudioLevelId = 2; | 37 const int kAudioLevelId = 2; |
38 const int kAbsSendTimeId = 3; | |
39 const int kTransportSequenceNumberId = 4; | 38 const int kTransportSequenceNumberId = 4; |
40 const int kEchoDelayMedian = 254; | 39 const int kEchoDelayMedian = 254; |
41 const int kEchoDelayStdDev = -3; | 40 const int kEchoDelayStdDev = -3; |
42 const int kEchoReturnLoss = -65; | 41 const int kEchoReturnLoss = -65; |
43 const int kEchoReturnLossEnhancement = 101; | 42 const int kEchoReturnLossEnhancement = 101; |
44 const float kResidualEchoLikelihood = 0.0f; | 43 const float kResidualEchoLikelihood = 0.0f; |
45 const unsigned int kSpeechInputLevel = 96; | 44 const unsigned int kSpeechInputLevel = 96; |
46 const CallStatistics kCallStats = { | 45 const CallStatistics kCallStats = { |
47 1345, 1678, 1901, 1234, 112, 13456, 17890, 1567, -1890, -1123}; | 46 1345, 1678, 1901, 1234, 112, 13456, 17890, 1567, -1890, -1123}; |
48 const ReportBlock kReportBlock = {456, 780, 123, 567, 890, 132, 143, 13354}; | 47 const ReportBlock kReportBlock = {456, 780, 123, 567, 890, 132, 143, 13354}; |
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
81 | 80 |
82 EXPECT_CALL(voice_engine_, ChannelProxyFactory(kChannelId)) | 81 EXPECT_CALL(voice_engine_, ChannelProxyFactory(kChannelId)) |
83 .WillOnce(Invoke([this](int channel_id) { | 82 .WillOnce(Invoke([this](int channel_id) { |
84 EXPECT_FALSE(channel_proxy_); | 83 EXPECT_FALSE(channel_proxy_); |
85 channel_proxy_ = new testing::StrictMock<MockVoEChannelProxy>(); | 84 channel_proxy_ = new testing::StrictMock<MockVoEChannelProxy>(); |
86 EXPECT_CALL(*channel_proxy_, SetRTCPStatus(true)).Times(1); | 85 EXPECT_CALL(*channel_proxy_, SetRTCPStatus(true)).Times(1); |
87 EXPECT_CALL(*channel_proxy_, SetLocalSSRC(kSsrc)).Times(1); | 86 EXPECT_CALL(*channel_proxy_, SetLocalSSRC(kSsrc)).Times(1); |
88 EXPECT_CALL(*channel_proxy_, SetRTCP_CNAME(StrEq(kCName))).Times(1); | 87 EXPECT_CALL(*channel_proxy_, SetRTCP_CNAME(StrEq(kCName))).Times(1); |
89 EXPECT_CALL(*channel_proxy_, SetNACKStatus(true, 10)).Times(1); | 88 EXPECT_CALL(*channel_proxy_, SetNACKStatus(true, 10)).Times(1); |
90 EXPECT_CALL(*channel_proxy_, | 89 EXPECT_CALL(*channel_proxy_, |
91 SetSendAbsoluteSenderTimeStatus(true, kAbsSendTimeId)).Times(1); | |
92 EXPECT_CALL(*channel_proxy_, | |
93 SetSendAudioLevelIndicationStatus(true, kAudioLevelId)).Times(1); | 90 SetSendAudioLevelIndicationStatus(true, kAudioLevelId)).Times(1); |
94 EXPECT_CALL(*channel_proxy_, EnableSendTransportSequenceNumber( | 91 EXPECT_CALL(*channel_proxy_, EnableSendTransportSequenceNumber( |
95 kTransportSequenceNumberId)) | 92 kTransportSequenceNumberId)) |
96 .Times(1); | 93 .Times(1); |
97 EXPECT_CALL(*channel_proxy_, | 94 EXPECT_CALL(*channel_proxy_, |
98 RegisterSenderCongestionControlObjects( | 95 RegisterSenderCongestionControlObjects( |
99 congestion_controller_.pacer(), | 96 congestion_controller_.pacer(), |
100 congestion_controller_.GetTransportFeedbackObserver(), | 97 congestion_controller_.GetTransportFeedbackObserver(), |
101 congestion_controller_.packet_router())) | 98 congestion_controller_.packet_router())) |
102 .Times(1); | 99 .Times(1); |
103 EXPECT_CALL(*channel_proxy_, ResetCongestionControlObjects()) | 100 EXPECT_CALL(*channel_proxy_, ResetCongestionControlObjects()) |
104 .Times(1); | 101 .Times(1); |
105 EXPECT_CALL(*channel_proxy_, RegisterExternalTransport(nullptr)) | 102 EXPECT_CALL(*channel_proxy_, RegisterExternalTransport(nullptr)) |
106 .Times(1); | 103 .Times(1); |
107 EXPECT_CALL(*channel_proxy_, DeRegisterExternalTransport()) | 104 EXPECT_CALL(*channel_proxy_, DeRegisterExternalTransport()) |
108 .Times(1); | 105 .Times(1); |
109 EXPECT_CALL(*channel_proxy_, SetRtcEventLog(testing::NotNull())) | 106 EXPECT_CALL(*channel_proxy_, SetRtcEventLog(testing::NotNull())) |
110 .Times(1); | 107 .Times(1); |
111 EXPECT_CALL(*channel_proxy_, SetRtcEventLog(testing::IsNull())) | 108 EXPECT_CALL(*channel_proxy_, SetRtcEventLog(testing::IsNull())) |
112 .Times(1); // Destructor resets the event log | 109 .Times(1); // Destructor resets the event log |
113 return channel_proxy_; | 110 return channel_proxy_; |
114 })); | 111 })); |
115 SetupMockForSetupSendCodec(); | 112 SetupMockForSetupSendCodec(); |
116 stream_config_.voe_channel_id = kChannelId; | 113 stream_config_.voe_channel_id = kChannelId; |
117 stream_config_.rtp.ssrc = kSsrc; | 114 stream_config_.rtp.ssrc = kSsrc; |
118 stream_config_.rtp.nack.rtp_history_ms = 200; | 115 stream_config_.rtp.nack.rtp_history_ms = 200; |
119 stream_config_.rtp.c_name = kCName; | 116 stream_config_.rtp.c_name = kCName; |
120 stream_config_.rtp.extensions.push_back( | 117 stream_config_.rtp.extensions.push_back( |
121 RtpExtension(RtpExtension::kAudioLevelUri, kAudioLevelId)); | 118 RtpExtension(RtpExtension::kAudioLevelUri, kAudioLevelId)); |
122 stream_config_.rtp.extensions.push_back( | |
123 RtpExtension(RtpExtension::kAbsSendTimeUri, kAbsSendTimeId)); | |
the sun
2016/10/27 16:09:17
Same here - add audiolevel, or some other extensio
| |
124 stream_config_.rtp.extensions.push_back(RtpExtension( | 119 stream_config_.rtp.extensions.push_back(RtpExtension( |
125 RtpExtension::kTransportSequenceNumberUri, kTransportSequenceNumberId)); | 120 RtpExtension::kTransportSequenceNumberUri, kTransportSequenceNumberId)); |
126 // Use ISAC as default codec so as to prevent unnecessary |voice_engine_| | 121 // Use ISAC as default codec so as to prevent unnecessary |voice_engine_| |
127 // calls from the default ctor behavior. | 122 // calls from the default ctor behavior. |
128 stream_config_.send_codec_spec.codec_inst = kIsacCodec; | 123 stream_config_.send_codec_spec.codec_inst = kIsacCodec; |
129 } | 124 } |
130 | 125 |
131 AudioSendStream::Config& config() { return stream_config_; } | 126 AudioSendStream::Config& config() { return stream_config_; } |
132 rtc::scoped_refptr<AudioState> audio_state() { return audio_state_; } | 127 rtc::scoped_refptr<AudioState> audio_state() { return audio_state_; } |
133 MockVoEChannelProxy* channel_proxy() { return channel_proxy_; } | 128 MockVoEChannelProxy* channel_proxy() { return channel_proxy_; } |
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
208 BitrateAllocator bitrate_allocator_; | 203 BitrateAllocator bitrate_allocator_; |
209 // |worker_queue| is defined last to ensure all pending tasks are cancelled | 204 // |worker_queue| is defined last to ensure all pending tasks are cancelled |
210 // and deleted before any other members. | 205 // and deleted before any other members. |
211 rtc::TaskQueue worker_queue_; | 206 rtc::TaskQueue worker_queue_; |
212 }; | 207 }; |
213 } // namespace | 208 } // namespace |
214 | 209 |
215 TEST(AudioSendStreamTest, ConfigToString) { | 210 TEST(AudioSendStreamTest, ConfigToString) { |
216 AudioSendStream::Config config(nullptr); | 211 AudioSendStream::Config config(nullptr); |
217 config.rtp.ssrc = kSsrc; | 212 config.rtp.ssrc = kSsrc; |
218 config.rtp.extensions.push_back( | |
219 RtpExtension(RtpExtension::kAbsSendTimeUri, kAbsSendTimeId)); | |
220 config.rtp.c_name = kCName; | 213 config.rtp.c_name = kCName; |
221 config.voe_channel_id = kChannelId; | 214 config.voe_channel_id = kChannelId; |
222 config.min_bitrate_kbps = 12; | 215 config.min_bitrate_kbps = 12; |
223 config.max_bitrate_kbps = 34; | 216 config.max_bitrate_kbps = 34; |
224 config.send_codec_spec.nack_enabled = true; | 217 config.send_codec_spec.nack_enabled = true; |
225 config.send_codec_spec.transport_cc_enabled = false; | 218 config.send_codec_spec.transport_cc_enabled = false; |
226 config.send_codec_spec.enable_codec_fec = true; | 219 config.send_codec_spec.enable_codec_fec = true; |
227 config.send_codec_spec.enable_opus_dtx = false; | 220 config.send_codec_spec.enable_opus_dtx = false; |
228 config.send_codec_spec.opus_max_playback_rate = 32000; | 221 config.send_codec_spec.opus_max_playback_rate = 32000; |
229 config.send_codec_spec.cng_payload_type = 42; | 222 config.send_codec_spec.cng_payload_type = 42; |
230 config.send_codec_spec.cng_plfreq = 56; | 223 config.send_codec_spec.cng_plfreq = 56; |
231 config.send_codec_spec.codec_inst = kIsacCodec; | 224 config.send_codec_spec.codec_inst = kIsacCodec; |
232 EXPECT_EQ( | 225 EXPECT_EQ( |
233 "{rtp: {ssrc: 1234, extensions: [{uri: " | 226 "{rtp: {ssrc: 1234, extensions: [], nack: {rtp_history_ms: 0}, c_name: " |
234 "http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time, id: 3}], " | 227 "foo_name}, send_transport: nullptr, voe_channel_id: 1, " |
235 "nack: {rtp_history_ms: 0}, c_name: foo_name}, send_transport: nullptr, " | 228 "min_bitrate_kbps: 12, max_bitrate_kbps: 34, send_codec_spec: " |
236 "voe_channel_id: 1, min_bitrate_kbps: 12, max_bitrate_kbps: 34, " | 229 "{nack_enabled: true, transport_cc_enabled: false, enable_codec_fec: " |
237 "send_codec_spec: {nack_enabled: true, transport_cc_enabled: false, " | 230 "true, enable_opus_dtx: false, opus_max_playback_rate: 32000, " |
238 "enable_codec_fec: true, enable_opus_dtx: false, opus_max_playback_rate: " | 231 "cng_payload_type: 42, cng_plfreq: 56, codec_inst: {pltype: 103, plname: " |
239 "32000, cng_payload_type: 42, cng_plfreq: 56, codec_inst: {pltype: " | 232 "\"isac\", plfreq: 16000, pacsize: 320, channels: 1, rate: 32000}}}", |
240 "103, plname: \"isac\", plfreq: 16000, pacsize: 320, channels: 1, rate: " | |
241 "32000}}}", | |
242 config.ToString()); | 233 config.ToString()); |
243 } | 234 } |
244 | 235 |
245 TEST(AudioSendStreamTest, ConstructDestruct) { | 236 TEST(AudioSendStreamTest, ConstructDestruct) { |
246 ConfigHelper helper; | 237 ConfigHelper helper; |
247 internal::AudioSendStream send_stream( | 238 internal::AudioSendStream send_stream( |
248 helper.config(), helper.audio_state(), helper.worker_queue(), | 239 helper.config(), helper.audio_state(), helper.worker_queue(), |
249 helper.congestion_controller(), helper.bitrate_allocator(), | 240 helper.congestion_controller(), helper.bitrate_allocator(), |
250 helper.event_log()); | 241 helper.event_log()); |
251 } | 242 } |
(...skipping 113 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
365 EXPECT_CALL(*helper.voice_engine(), SetVADStatus(kChannelId, true, _, _)) | 356 EXPECT_CALL(*helper.voice_engine(), SetVADStatus(kChannelId, true, _, _)) |
366 .WillOnce(Return(0)); | 357 .WillOnce(Return(0)); |
367 internal::AudioSendStream send_stream( | 358 internal::AudioSendStream send_stream( |
368 stream_config, helper.audio_state(), helper.worker_queue(), | 359 stream_config, helper.audio_state(), helper.worker_queue(), |
369 helper.congestion_controller(), helper.bitrate_allocator(), | 360 helper.congestion_controller(), helper.bitrate_allocator(), |
370 helper.event_log()); | 361 helper.event_log()); |
371 } | 362 } |
372 | 363 |
373 } // namespace test | 364 } // namespace test |
374 } // namespace webrtc | 365 } // namespace webrtc |
OLD | NEW |