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 196 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
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 Loading... |
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 |
OLD | NEW |