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

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

Issue 2455013003: Clean up abs-send-time for audio. (Closed)
Patch Set: Fix tests. Created 4 years, 1 month 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 17 matching lines...) Expand all
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
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
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
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
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698