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

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: Addressed one more comment. 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
« no previous file with comments | « webrtc/audio/audio_receive_stream.cc ('k') | webrtc/audio_receive_stream.h » ('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 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}], "
219 "transport_cc: off}, "
220 "receive_transport: nullptr, rtcp_send_transport: nullptr, " 220 "receive_transport: nullptr, rtcp_send_transport: nullptr, "
221 "voe_channel_id: 2, combined_audio_video_bwe: true}", 221 "voe_channel_id: 2}",
222 config.ToString()); 222 config.ToString());
223 } 223 }
224 224
225 TEST(AudioReceiveStreamTest, ConstructDestruct) { 225 TEST(AudioReceiveStreamTest, ConstructDestruct) {
226 ConfigHelper helper; 226 ConfigHelper helper;
227 internal::AudioReceiveStream recv_stream( 227 internal::AudioReceiveStream recv_stream(
228 helper.congestion_controller(), helper.config(), helper.audio_state()); 228 helper.congestion_controller(), helper.config(), helper.audio_state());
229 } 229 }
230 230
231 MATCHER_P(VerifyHeaderExtension, expected_extension, "") { 231 MATCHER_P(VerifyHeaderExtension, expected_extension, "") {
232 return arg.extension.hasAbsoluteSendTime == 232 return arg.extension.hasAbsoluteSendTime ==
233 expected_extension.hasAbsoluteSendTime && 233 expected_extension.hasAbsoluteSendTime &&
234 arg.extension.absoluteSendTime == 234 arg.extension.absoluteSendTime ==
235 expected_extension.absoluteSendTime && 235 expected_extension.absoluteSendTime &&
236 arg.extension.hasTransportSequenceNumber == 236 arg.extension.hasTransportSequenceNumber ==
237 expected_extension.hasTransportSequenceNumber && 237 expected_extension.hasTransportSequenceNumber &&
238 arg.extension.transportSequenceNumber == 238 arg.extension.transportSequenceNumber ==
239 expected_extension.transportSequenceNumber; 239 expected_extension.transportSequenceNumber;
240 } 240 }
241 241
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) { 242 TEST(AudioReceiveStreamTest, AudioPacketUpdatesBweFeedback) {
266 ConfigHelper helper; 243 ConfigHelper helper;
267 helper.config().combined_audio_video_bwe = true;
268 helper.config().rtp.transport_cc = true; 244 helper.config().rtp.transport_cc = true;
269 helper.SetupMockForBweFeedback(true); 245 helper.SetupMockForBweFeedback(true);
270 internal::AudioReceiveStream recv_stream( 246 internal::AudioReceiveStream recv_stream(
271 helper.congestion_controller(), helper.config(), helper.audio_state()); 247 helper.congestion_controller(), helper.config(), helper.audio_state());
272 const int kTransportSequenceNumberValue = 1234; 248 const int kTransportSequenceNumberValue = 1234;
273 std::vector<uint8_t> rtp_packet = CreateRtpHeaderWithOneByteExtension( 249 std::vector<uint8_t> rtp_packet = CreateRtpHeaderWithOneByteExtension(
274 kTransportSequenceNumberId, kTransportSequenceNumberValue, 2); 250 kTransportSequenceNumberId, kTransportSequenceNumberValue, 2);
275 PacketTime packet_time(5678000, 0); 251 PacketTime packet_time(5678000, 0);
276 const size_t kExpectedHeaderLength = 20; 252 const size_t kExpectedHeaderLength = 20;
277 RTPHeaderExtension expected_extension; 253 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); 298 EXPECT_EQ(kAudioDecodeStats.calls_to_neteq, stats.decoding_calls_to_neteq);
323 EXPECT_EQ(kAudioDecodeStats.decoded_normal, stats.decoding_normal); 299 EXPECT_EQ(kAudioDecodeStats.decoded_normal, stats.decoding_normal);
324 EXPECT_EQ(kAudioDecodeStats.decoded_plc, stats.decoding_plc); 300 EXPECT_EQ(kAudioDecodeStats.decoded_plc, stats.decoding_plc);
325 EXPECT_EQ(kAudioDecodeStats.decoded_cng, stats.decoding_cng); 301 EXPECT_EQ(kAudioDecodeStats.decoded_cng, stats.decoding_cng);
326 EXPECT_EQ(kAudioDecodeStats.decoded_plc_cng, stats.decoding_plc_cng); 302 EXPECT_EQ(kAudioDecodeStats.decoded_plc_cng, stats.decoding_plc_cng);
327 EXPECT_EQ(kCallStats.capture_start_ntp_time_ms_, 303 EXPECT_EQ(kCallStats.capture_start_ntp_time_ms_,
328 stats.capture_start_ntp_time_ms); 304 stats.capture_start_ntp_time_ms);
329 } 305 }
330 } // namespace test 306 } // namespace test
331 } // namespace webrtc 307 } // namespace webrtc
OLDNEW
« no previous file with comments | « webrtc/audio/audio_receive_stream.cc ('k') | webrtc/audio_receive_stream.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698