| 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 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 44 audio_decode_stats.decoded_plc_cng = 789; | 44 audio_decode_stats.decoded_plc_cng = 789; |
| 45 audio_decode_stats.decoded_muted_output = 987; | 45 audio_decode_stats.decoded_muted_output = 987; |
| 46 return audio_decode_stats; | 46 return audio_decode_stats; |
| 47 } | 47 } |
| 48 | 48 |
| 49 const int kChannelId = 2; | 49 const int kChannelId = 2; |
| 50 const uint32_t kRemoteSsrc = 1234; | 50 const uint32_t kRemoteSsrc = 1234; |
| 51 const uint32_t kLocalSsrc = 5678; | 51 const uint32_t kLocalSsrc = 5678; |
| 52 const size_t kOneByteExtensionHeaderLength = 4; | 52 const size_t kOneByteExtensionHeaderLength = 4; |
| 53 const size_t kOneByteExtensionLength = 4; | 53 const size_t kOneByteExtensionLength = 4; |
| 54 const int kAbsSendTimeId = 2; | |
| 55 const int kAudioLevelId = 3; | 54 const int kAudioLevelId = 3; |
| 56 const int kTransportSequenceNumberId = 4; | 55 const int kTransportSequenceNumberId = 4; |
| 57 const int kJitterBufferDelay = -7; | 56 const int kJitterBufferDelay = -7; |
| 58 const int kPlayoutBufferDelay = 302; | 57 const int kPlayoutBufferDelay = 302; |
| 59 const unsigned int kSpeechOutputLevel = 99; | 58 const unsigned int kSpeechOutputLevel = 99; |
| 60 const CallStatistics kCallStats = { | 59 const CallStatistics kCallStats = { |
| 61 345, 678, 901, 234, -12, 3456, 7890, 567, 890, 123}; | 60 345, 678, 901, 234, -12, 3456, 7890, 567, 890, 123}; |
| 62 const CodecInst kCodecInst = { | 61 const CodecInst kCodecInst = { |
| 63 123, "codec_name_recv", 96000, -187, 0, -103}; | 62 123, "codec_name_recv", 96000, -187, 0, -103}; |
| 64 const NetworkStatistics kNetworkStats = { | 63 const NetworkStatistics kNetworkStats = { |
| (...skipping 18 matching lines...) Expand all Loading... |
| 83 config.voice_engine = &voice_engine_; | 82 config.voice_engine = &voice_engine_; |
| 84 audio_state_ = AudioState::Create(config); | 83 audio_state_ = AudioState::Create(config); |
| 85 | 84 |
| 86 EXPECT_CALL(voice_engine_, ChannelProxyFactory(kChannelId)) | 85 EXPECT_CALL(voice_engine_, ChannelProxyFactory(kChannelId)) |
| 87 .WillOnce(Invoke([this](int channel_id) { | 86 .WillOnce(Invoke([this](int channel_id) { |
| 88 EXPECT_FALSE(channel_proxy_); | 87 EXPECT_FALSE(channel_proxy_); |
| 89 channel_proxy_ = new testing::StrictMock<MockVoEChannelProxy>(); | 88 channel_proxy_ = new testing::StrictMock<MockVoEChannelProxy>(); |
| 90 EXPECT_CALL(*channel_proxy_, SetLocalSSRC(kLocalSsrc)).Times(1); | 89 EXPECT_CALL(*channel_proxy_, SetLocalSSRC(kLocalSsrc)).Times(1); |
| 91 EXPECT_CALL(*channel_proxy_, SetNACKStatus(true, 15)).Times(1); | 90 EXPECT_CALL(*channel_proxy_, SetNACKStatus(true, 15)).Times(1); |
| 92 EXPECT_CALL(*channel_proxy_, | 91 EXPECT_CALL(*channel_proxy_, |
| 93 SetReceiveAbsoluteSenderTimeStatus(true, kAbsSendTimeId)) | |
| 94 .Times(1); | |
| 95 EXPECT_CALL(*channel_proxy_, | |
| 96 SetReceiveAudioLevelIndicationStatus(true, kAudioLevelId)) | 92 SetReceiveAudioLevelIndicationStatus(true, kAudioLevelId)) |
| 97 .Times(1); | 93 .Times(1); |
| 98 EXPECT_CALL(*channel_proxy_, | 94 EXPECT_CALL(*channel_proxy_, |
| 99 EnableReceiveTransportSequenceNumber(kTransportSequenceNumberId)) | 95 EnableReceiveTransportSequenceNumber(kTransportSequenceNumberId)) |
| 100 .Times(1); | 96 .Times(1); |
| 101 EXPECT_CALL(*channel_proxy_, | 97 EXPECT_CALL(*channel_proxy_, |
| 102 RegisterReceiverCongestionControlObjects(&packet_router_)) | 98 RegisterReceiverCongestionControlObjects(&packet_router_)) |
| 103 .Times(1); | 99 .Times(1); |
| 104 EXPECT_CALL(congestion_controller_, packet_router()) | 100 EXPECT_CALL(congestion_controller_, packet_router()) |
| 105 .WillOnce(Return(&packet_router_)); | 101 .WillOnce(Return(&packet_router_)); |
| (...skipping 12 matching lines...) Expand all Loading... |
| 118 .Times(1) | 114 .Times(1) |
| 119 .After(expect_set); | 115 .After(expect_set); |
| 120 return channel_proxy_; | 116 return channel_proxy_; |
| 121 })); | 117 })); |
| 122 EXPECT_CALL(voice_engine_, StopPlayout(kChannelId)).WillOnce(Return(0)); | 118 EXPECT_CALL(voice_engine_, StopPlayout(kChannelId)).WillOnce(Return(0)); |
| 123 stream_config_.voe_channel_id = kChannelId; | 119 stream_config_.voe_channel_id = kChannelId; |
| 124 stream_config_.rtp.local_ssrc = kLocalSsrc; | 120 stream_config_.rtp.local_ssrc = kLocalSsrc; |
| 125 stream_config_.rtp.remote_ssrc = kRemoteSsrc; | 121 stream_config_.rtp.remote_ssrc = kRemoteSsrc; |
| 126 stream_config_.rtp.nack.rtp_history_ms = 300; | 122 stream_config_.rtp.nack.rtp_history_ms = 300; |
| 127 stream_config_.rtp.extensions.push_back( | 123 stream_config_.rtp.extensions.push_back( |
| 128 RtpExtension(RtpExtension::kAbsSendTimeUri, kAbsSendTimeId)); | |
| 129 stream_config_.rtp.extensions.push_back( | |
| 130 RtpExtension(RtpExtension::kAudioLevelUri, kAudioLevelId)); | 124 RtpExtension(RtpExtension::kAudioLevelUri, kAudioLevelId)); |
| 131 stream_config_.rtp.extensions.push_back(RtpExtension( | 125 stream_config_.rtp.extensions.push_back(RtpExtension( |
| 132 RtpExtension::kTransportSequenceNumberUri, kTransportSequenceNumberId)); | 126 RtpExtension::kTransportSequenceNumberUri, kTransportSequenceNumberId)); |
| 133 stream_config_.decoder_factory = decoder_factory_; | 127 stream_config_.decoder_factory = decoder_factory_; |
| 134 } | 128 } |
| 135 | 129 |
| 136 MockCongestionController* congestion_controller() { | 130 MockCongestionController* congestion_controller() { |
| 137 return &congestion_controller_; | 131 return &congestion_controller_; |
| 138 } | 132 } |
| 139 MockRemoteBitrateEstimator* remote_bitrate_estimator() { | 133 MockRemoteBitrateEstimator* remote_bitrate_estimator() { |
| (...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 237 ByteWriter<uint16_t>::WriteBigEndian(&packet[2], 6); | 231 ByteWriter<uint16_t>::WriteBigEndian(&packet[2], 6); |
| 238 ByteWriter<uint32_t>::WriteBigEndian(&packet[4], kLocalSsrc); | 232 ByteWriter<uint32_t>::WriteBigEndian(&packet[4], kLocalSsrc); |
| 239 return packet; | 233 return packet; |
| 240 } | 234 } |
| 241 } // namespace | 235 } // namespace |
| 242 | 236 |
| 243 TEST(AudioReceiveStreamTest, ConfigToString) { | 237 TEST(AudioReceiveStreamTest, ConfigToString) { |
| 244 AudioReceiveStream::Config config; | 238 AudioReceiveStream::Config config; |
| 245 config.rtp.remote_ssrc = kRemoteSsrc; | 239 config.rtp.remote_ssrc = kRemoteSsrc; |
| 246 config.rtp.local_ssrc = kLocalSsrc; | 240 config.rtp.local_ssrc = kLocalSsrc; |
| 241 config.voe_channel_id = kChannelId; |
| 247 config.rtp.extensions.push_back( | 242 config.rtp.extensions.push_back( |
| 248 RtpExtension(RtpExtension::kAbsSendTimeUri, kAbsSendTimeId)); | 243 RtpExtension(RtpExtension::kAudioLevelUri, kAudioLevelId)); |
| 249 config.voe_channel_id = kChannelId; | |
| 250 EXPECT_EQ( | 244 EXPECT_EQ( |
| 251 "{rtp: {remote_ssrc: 1234, local_ssrc: 5678, transport_cc: off, " | 245 "{rtp: {remote_ssrc: 1234, local_ssrc: 5678, transport_cc: off, nack: " |
| 252 "nack: {rtp_history_ms: 0}, extensions: [{uri: " | 246 "{rtp_history_ms: 0}, extensions: [{uri: " |
| 253 "http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time, id: 2}]}, " | 247 "urn:ietf:params:rtp-hdrext:ssrc-audio-level, id: 3}]}, " |
| 254 "rtcp_send_transport: nullptr, " | 248 "rtcp_send_transport: nullptr, voe_channel_id: 2}", |
| 255 "voe_channel_id: 2}", | |
| 256 config.ToString()); | 249 config.ToString()); |
| 257 } | 250 } |
| 258 | 251 |
| 259 TEST(AudioReceiveStreamTest, ConstructDestruct) { | 252 TEST(AudioReceiveStreamTest, ConstructDestruct) { |
| 260 ConfigHelper helper; | 253 ConfigHelper helper; |
| 261 internal::AudioReceiveStream recv_stream( | 254 internal::AudioReceiveStream recv_stream( |
| 262 helper.congestion_controller(), helper.config(), helper.audio_state(), | 255 helper.congestion_controller(), helper.config(), helper.audio_state(), |
| 263 helper.event_log()); | 256 helper.event_log()); |
| 264 } | 257 } |
| 265 | 258 |
| 266 MATCHER_P(VerifyHeaderExtension, expected_extension, "") { | 259 MATCHER_P(VerifyHeaderExtension, expected_extension, "") { |
| 267 return arg.extension.hasAbsoluteSendTime == | 260 return arg.extension.hasTransportSequenceNumber == |
| 268 expected_extension.hasAbsoluteSendTime && | |
| 269 arg.extension.absoluteSendTime == | |
| 270 expected_extension.absoluteSendTime && | |
| 271 arg.extension.hasTransportSequenceNumber == | |
| 272 expected_extension.hasTransportSequenceNumber && | 261 expected_extension.hasTransportSequenceNumber && |
| 273 arg.extension.transportSequenceNumber == | 262 arg.extension.transportSequenceNumber == |
| 274 expected_extension.transportSequenceNumber; | 263 expected_extension.transportSequenceNumber; |
| 275 } | 264 } |
| 276 | 265 |
| 277 TEST(AudioReceiveStreamTest, ReceiveRtpPacket) { | 266 TEST(AudioReceiveStreamTest, ReceiveRtpPacket) { |
| 278 ConfigHelper helper; | 267 ConfigHelper helper; |
| 279 helper.config().rtp.transport_cc = true; | 268 helper.config().rtp.transport_cc = true; |
| 280 helper.SetupMockForBweFeedback(true); | 269 helper.SetupMockForBweFeedback(true); |
| 281 internal::AudioReceiveStream recv_stream( | 270 internal::AudioReceiveStream recv_stream( |
| (...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 367 ConfigHelper helper; | 356 ConfigHelper helper; |
| 368 internal::AudioReceiveStream recv_stream( | 357 internal::AudioReceiveStream recv_stream( |
| 369 helper.congestion_controller(), helper.config(), helper.audio_state(), | 358 helper.congestion_controller(), helper.config(), helper.audio_state(), |
| 370 helper.event_log()); | 359 helper.event_log()); |
| 371 EXPECT_CALL(*helper.channel_proxy(), | 360 EXPECT_CALL(*helper.channel_proxy(), |
| 372 SetChannelOutputVolumeScaling(FloatEq(0.765f))); | 361 SetChannelOutputVolumeScaling(FloatEq(0.765f))); |
| 373 recv_stream.SetGain(0.765f); | 362 recv_stream.SetGain(0.765f); |
| 374 } | 363 } |
| 375 } // namespace test | 364 } // namespace test |
| 376 } // namespace webrtc | 365 } // namespace webrtc |
| OLD | NEW |