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 104 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
115 EXPECT_CALL(rtp_2, RtxSendStatus()).WillOnce(Return(kRtxRedundantPayloads)); | 115 EXPECT_CALL(rtp_2, RtxSendStatus()).WillOnce(Return(kRtxRedundantPayloads)); |
116 EXPECT_CALL(rtp_2, SSRC()).WillRepeatedly(Return(kSsrc2)); | 116 EXPECT_CALL(rtp_2, SSRC()).WillRepeatedly(Return(kSsrc2)); |
117 packet_router_->AddRtpModule(&rtp_1); | 117 packet_router_->AddRtpModule(&rtp_1); |
118 packet_router_->AddRtpModule(&rtp_2); | 118 packet_router_->AddRtpModule(&rtp_2); |
119 | 119 |
120 // Default configuration, sending padding on all modules sending media, | 120 // Default configuration, sending padding on all modules sending media, |
121 // ordered by priority (based on rtx mode). | 121 // ordered by priority (based on rtx mode). |
122 const size_t requested_padding_bytes = 1000; | 122 const size_t requested_padding_bytes = 1000; |
123 const size_t sent_padding_bytes = 890; | 123 const size_t sent_padding_bytes = 890; |
124 EXPECT_CALL(rtp_2, SendingMedia()).Times(1).WillOnce(Return(true)); | 124 EXPECT_CALL(rtp_2, SendingMedia()).Times(1).WillOnce(Return(true)); |
| 125 EXPECT_CALL(rtp_2, HasBweExtensions()).Times(1).WillOnce(Return(true)); |
125 EXPECT_CALL(rtp_2, TimeToSendPadding(requested_padding_bytes, 111)) | 126 EXPECT_CALL(rtp_2, TimeToSendPadding(requested_padding_bytes, 111)) |
126 .Times(1) | 127 .Times(1) |
127 .WillOnce(Return(sent_padding_bytes)); | 128 .WillOnce(Return(sent_padding_bytes)); |
128 EXPECT_CALL(rtp_1, SendingMedia()).Times(1).WillOnce(Return(true)); | 129 EXPECT_CALL(rtp_1, SendingMedia()).Times(1).WillOnce(Return(true)); |
| 130 EXPECT_CALL(rtp_1, HasBweExtensions()).Times(1).WillOnce(Return(true)); |
129 EXPECT_CALL(rtp_1, TimeToSendPadding( | 131 EXPECT_CALL(rtp_1, TimeToSendPadding( |
130 requested_padding_bytes - sent_padding_bytes, 111)) | 132 requested_padding_bytes - sent_padding_bytes, 111)) |
131 .Times(1) | 133 .Times(1) |
132 .WillOnce(Return(requested_padding_bytes - sent_padding_bytes)); | 134 .WillOnce(Return(requested_padding_bytes - sent_padding_bytes)); |
133 EXPECT_EQ(requested_padding_bytes, | 135 EXPECT_EQ(requested_padding_bytes, |
134 packet_router_->TimeToSendPadding(requested_padding_bytes, 111)); | 136 packet_router_->TimeToSendPadding(requested_padding_bytes, 111)); |
135 | 137 |
136 // Let only the lower priority module be sending and verify the padding | 138 // Let only the lower priority module be sending and verify the padding |
137 // request is routed there. | 139 // request is routed there. |
138 EXPECT_CALL(rtp_2, SendingMedia()).Times(1).WillOnce(Return(false)); | 140 EXPECT_CALL(rtp_2, SendingMedia()).Times(1).WillOnce(Return(false)); |
139 EXPECT_CALL(rtp_2, TimeToSendPadding(requested_padding_bytes, _)).Times(0); | 141 EXPECT_CALL(rtp_2, TimeToSendPadding(requested_padding_bytes, _)).Times(0); |
140 EXPECT_CALL(rtp_1, SendingMedia()).Times(1).WillOnce(Return(true)); | 142 EXPECT_CALL(rtp_1, SendingMedia()).Times(1).WillOnce(Return(true)); |
| 143 EXPECT_CALL(rtp_1, HasBweExtensions()).Times(1).WillOnce(Return(true)); |
141 EXPECT_CALL(rtp_1, TimeToSendPadding(_, _)) | 144 EXPECT_CALL(rtp_1, TimeToSendPadding(_, _)) |
142 .Times(1) | 145 .Times(1) |
143 .WillOnce(Return(sent_padding_bytes)); | 146 .WillOnce(Return(sent_padding_bytes)); |
144 EXPECT_EQ(sent_padding_bytes, | 147 EXPECT_EQ(sent_padding_bytes, |
145 packet_router_->TimeToSendPadding(requested_padding_bytes, | 148 packet_router_->TimeToSendPadding(requested_padding_bytes, |
146 PacketInfo::kNotAProbe)); | 149 PacketInfo::kNotAProbe)); |
147 | 150 |
148 // No sending module at all. | 151 // No sending module at all. |
149 EXPECT_CALL(rtp_1, SendingMedia()).Times(1).WillOnce(Return(false)); | 152 EXPECT_CALL(rtp_1, SendingMedia()).Times(1).WillOnce(Return(false)); |
150 EXPECT_CALL(rtp_1, TimeToSendPadding(requested_padding_bytes, _)).Times(0); | 153 EXPECT_CALL(rtp_1, TimeToSendPadding(requested_padding_bytes, _)).Times(0); |
151 EXPECT_CALL(rtp_2, SendingMedia()).Times(1).WillOnce(Return(false)); | 154 EXPECT_CALL(rtp_2, SendingMedia()).Times(1).WillOnce(Return(false)); |
152 EXPECT_CALL(rtp_2, TimeToSendPadding(_, _)).Times(0); | 155 EXPECT_CALL(rtp_2, TimeToSendPadding(_, _)).Times(0); |
153 EXPECT_EQ(0u, packet_router_->TimeToSendPadding(requested_padding_bytes, | 156 EXPECT_EQ(0u, packet_router_->TimeToSendPadding(requested_padding_bytes, |
154 PacketInfo::kNotAProbe)); | 157 PacketInfo::kNotAProbe)); |
155 | 158 |
| 159 // Only one module has BWE extensions. |
| 160 EXPECT_CALL(rtp_1, SendingMedia()).Times(1).WillOnce(Return(true)); |
| 161 EXPECT_CALL(rtp_1, HasBweExtensions()).Times(1).WillOnce(Return(false)); |
| 162 EXPECT_CALL(rtp_1, TimeToSendPadding(requested_padding_bytes, _)).Times(0); |
| 163 EXPECT_CALL(rtp_2, SendingMedia()).Times(1).WillOnce(Return(true)); |
| 164 EXPECT_CALL(rtp_2, HasBweExtensions()).Times(1).WillOnce(Return(true)); |
| 165 EXPECT_CALL(rtp_2, TimeToSendPadding(requested_padding_bytes, _)) |
| 166 .Times(1) |
| 167 .WillOnce(Return(sent_padding_bytes)); |
| 168 EXPECT_EQ(sent_padding_bytes, |
| 169 packet_router_->TimeToSendPadding(requested_padding_bytes, |
| 170 PacketInfo::kNotAProbe)); |
| 171 |
156 packet_router_->RemoveRtpModule(&rtp_1); | 172 packet_router_->RemoveRtpModule(&rtp_1); |
157 | 173 |
158 // rtp_1 has been removed, try sending padding and make sure rtp_1 isn't asked | 174 // rtp_1 has been removed, try sending padding and make sure rtp_1 isn't asked |
159 // to send by not expecting any calls. Instead verify rtp_2 is called. | 175 // to send by not expecting any calls. Instead verify rtp_2 is called. |
160 EXPECT_CALL(rtp_2, SendingMedia()).Times(1).WillOnce(Return(true)); | 176 EXPECT_CALL(rtp_2, SendingMedia()).Times(1).WillOnce(Return(true)); |
| 177 EXPECT_CALL(rtp_2, HasBweExtensions()).Times(1).WillOnce(Return(true)); |
161 EXPECT_CALL(rtp_2, TimeToSendPadding(requested_padding_bytes, _)).Times(1); | 178 EXPECT_CALL(rtp_2, TimeToSendPadding(requested_padding_bytes, _)).Times(1); |
162 EXPECT_EQ(0u, packet_router_->TimeToSendPadding(requested_padding_bytes, | 179 EXPECT_EQ(0u, packet_router_->TimeToSendPadding(requested_padding_bytes, |
163 PacketInfo::kNotAProbe)); | 180 PacketInfo::kNotAProbe)); |
164 | 181 |
165 packet_router_->RemoveRtpModule(&rtp_2); | 182 packet_router_->RemoveRtpModule(&rtp_2); |
166 } | 183 } |
167 | 184 |
168 TEST_F(PacketRouterTest, SenderOnlyFunctionsRespectSendingMedia) { | 185 TEST_F(PacketRouterTest, SenderOnlyFunctionsRespectSendingMedia) { |
169 MockRtpRtcp rtp; | 186 MockRtpRtcp rtp; |
170 packet_router_->AddRtpModule(&rtp); | 187 packet_router_->AddRtpModule(&rtp); |
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
204 | 221 |
205 rtcp::TransportFeedback feedback; | 222 rtcp::TransportFeedback feedback; |
206 EXPECT_CALL(rtp_1, SendFeedbackPacket(_)).Times(1); | 223 EXPECT_CALL(rtp_1, SendFeedbackPacket(_)).Times(1); |
207 packet_router_->SendFeedback(&feedback); | 224 packet_router_->SendFeedback(&feedback); |
208 packet_router_->RemoveRtpModule(&rtp_1); | 225 packet_router_->RemoveRtpModule(&rtp_1); |
209 EXPECT_CALL(rtp_2, SendFeedbackPacket(_)).Times(1); | 226 EXPECT_CALL(rtp_2, SendFeedbackPacket(_)).Times(1); |
210 packet_router_->SendFeedback(&feedback); | 227 packet_router_->SendFeedback(&feedback); |
211 packet_router_->RemoveRtpModule(&rtp_2); | 228 packet_router_->RemoveRtpModule(&rtp_2); |
212 } | 229 } |
213 } // namespace webrtc | 230 } // namespace webrtc |
OLD | NEW |