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

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

Powered by Google App Engine
This is Rietveld 408576698