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

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

Issue 1604563002: Add send-side BWE to WebRtcVoiceEngine under a finch experiment. (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: Comments addressed. Created 4 years, 11 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 196 matching lines...) Expand 10 before | Expand all | Expand 10 after
207 } 207 }
208 } // namespace 208 } // namespace
209 209
210 TEST(AudioReceiveStreamTest, ConfigToString) { 210 TEST(AudioReceiveStreamTest, ConfigToString) {
211 AudioReceiveStream::Config config; 211 AudioReceiveStream::Config config;
212 config.rtp.remote_ssrc = kRemoteSsrc; 212 config.rtp.remote_ssrc = kRemoteSsrc;
213 config.rtp.local_ssrc = kLocalSsrc; 213 config.rtp.local_ssrc = kLocalSsrc;
214 config.rtp.extensions.push_back( 214 config.rtp.extensions.push_back(
215 RtpExtension(RtpExtension::kAbsSendTime, kAbsSendTimeId)); 215 RtpExtension(RtpExtension::kAbsSendTime, kAbsSendTimeId));
216 config.voe_channel_id = kChannelId; 216 config.voe_channel_id = kChannelId;
217 config.combined_audio_video_bwe = true;
218 EXPECT_EQ( 217 EXPECT_EQ(
219 "{rtp: {remote_ssrc: 1234, local_ssrc: 5678, extensions: [{name: " 218 "{rtp: {remote_ssrc: 1234, local_ssrc: 5678, extensions: [{name: "
220 "http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time, id: 2}]}, " 219 "http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time, id: 2}]}, "
221 "receive_transport: nullptr, rtcp_send_transport: nullptr, " 220 "receive_transport: nullptr, rtcp_send_transport: nullptr, "
222 "voe_channel_id: 2, combined_audio_video_bwe: true}", 221 "voe_channel_id: 2}",
223 config.ToString()); 222 config.ToString());
224 } 223 }
225 224
226 TEST(AudioReceiveStreamTest, ConstructDestruct) { 225 TEST(AudioReceiveStreamTest, ConstructDestruct) {
227 ConfigHelper helper; 226 ConfigHelper helper;
228 internal::AudioReceiveStream recv_stream( 227 internal::AudioReceiveStream recv_stream(
229 helper.congestion_controller(), helper.config(), helper.audio_state()); 228 helper.congestion_controller(), helper.config(), helper.audio_state());
230 } 229 }
231 230
232 MATCHER_P(VerifyHeaderExtension, expected_extension, "") { 231 MATCHER_P(VerifyHeaderExtension, expected_extension, "") {
233 return arg.extension.hasAbsoluteSendTime == 232 return arg.extension.hasAbsoluteSendTime ==
234 expected_extension.hasAbsoluteSendTime && 233 expected_extension.hasAbsoluteSendTime &&
235 arg.extension.absoluteSendTime == 234 arg.extension.absoluteSendTime ==
236 expected_extension.absoluteSendTime && 235 expected_extension.absoluteSendTime &&
237 arg.extension.hasTransportSequenceNumber == 236 arg.extension.hasTransportSequenceNumber ==
238 expected_extension.hasTransportSequenceNumber && 237 expected_extension.hasTransportSequenceNumber &&
239 arg.extension.transportSequenceNumber == 238 arg.extension.transportSequenceNumber ==
240 expected_extension.transportSequenceNumber; 239 expected_extension.transportSequenceNumber;
241 } 240 }
242 241
243 TEST(AudioReceiveStreamTest, AudioPacketUpdatesBweWithTimestamp) {
244 ConfigHelper helper;
245 helper.config().combined_audio_video_bwe = true;
246 helper.SetupMockForBweFeedback(false);
247 internal::AudioReceiveStream recv_stream(
248 helper.congestion_controller(), helper.config(), helper.audio_state());
249 const int kAbsSendTimeValue = 1234;
250 std::vector<uint8_t> rtp_packet =
251 CreateRtpHeaderWithOneByteExtension(kAbsSendTimeId, kAbsSendTimeValue, 3);
252 PacketTime packet_time(5678000, 0);
253 const size_t kExpectedHeaderLength = 20;
254 RTPHeaderExtension expected_extension;
255 expected_extension.hasAbsoluteSendTime = true;
256 expected_extension.absoluteSendTime = kAbsSendTimeValue;
257 EXPECT_CALL(*helper.remote_bitrate_estimator(),
258 IncomingPacket(packet_time.timestamp / 1000,
259 rtp_packet.size() - kExpectedHeaderLength,
260 VerifyHeaderExtension(expected_extension), false))
261 .Times(1);
262 EXPECT_TRUE(
263 recv_stream.DeliverRtp(&rtp_packet[0], rtp_packet.size(), packet_time));
264 }
265
266 TEST(AudioReceiveStreamTest, AudioPacketUpdatesBweFeedback) { 242 TEST(AudioReceiveStreamTest, AudioPacketUpdatesBweFeedback) {
267 ConfigHelper helper; 243 ConfigHelper helper;
268 helper.config().combined_audio_video_bwe = true;
269 helper.config().rtp.transport_cc = true; 244 helper.config().rtp.transport_cc = true;
270 helper.SetupMockForBweFeedback(true); 245 helper.SetupMockForBweFeedback(true);
271 internal::AudioReceiveStream recv_stream( 246 internal::AudioReceiveStream recv_stream(
272 helper.congestion_controller(), helper.config(), helper.audio_state()); 247 helper.congestion_controller(), helper.config(), helper.audio_state());
273 const int kTransportSequenceNumberValue = 1234; 248 const int kTransportSequenceNumberValue = 1234;
274 std::vector<uint8_t> rtp_packet = CreateRtpHeaderWithOneByteExtension( 249 std::vector<uint8_t> rtp_packet = CreateRtpHeaderWithOneByteExtension(
275 kTransportSequenceNumberId, kTransportSequenceNumberValue, 2); 250 kTransportSequenceNumberId, kTransportSequenceNumberValue, 2);
276 PacketTime packet_time(5678000, 0); 251 PacketTime packet_time(5678000, 0);
277 const size_t kExpectedHeaderLength = 20; 252 const size_t kExpectedHeaderLength = 20;
278 RTPHeaderExtension expected_extension; 253 RTPHeaderExtension expected_extension;
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
323 EXPECT_EQ(kAudioDecodeStats.calls_to_neteq, stats.decoding_calls_to_neteq); 298 EXPECT_EQ(kAudioDecodeStats.calls_to_neteq, stats.decoding_calls_to_neteq);
324 EXPECT_EQ(kAudioDecodeStats.decoded_normal, stats.decoding_normal); 299 EXPECT_EQ(kAudioDecodeStats.decoded_normal, stats.decoding_normal);
325 EXPECT_EQ(kAudioDecodeStats.decoded_plc, stats.decoding_plc); 300 EXPECT_EQ(kAudioDecodeStats.decoded_plc, stats.decoding_plc);
326 EXPECT_EQ(kAudioDecodeStats.decoded_cng, stats.decoding_cng); 301 EXPECT_EQ(kAudioDecodeStats.decoded_cng, stats.decoding_cng);
327 EXPECT_EQ(kAudioDecodeStats.decoded_plc_cng, stats.decoding_plc_cng); 302 EXPECT_EQ(kAudioDecodeStats.decoded_plc_cng, stats.decoding_plc_cng);
328 EXPECT_EQ(kCallStats.capture_start_ntp_time_ms_, 303 EXPECT_EQ(kCallStats.capture_start_ntp_time_ms_,
329 stats.capture_start_ntp_time_ms); 304 stats.capture_start_ntp_time_ms);
330 } 305 }
331 } // namespace test 306 } // namespace test
332 } // namespace webrtc 307 } // namespace webrtc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698