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