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

Side by Side Diff: media/cast/rtcp/rtcp_unittest.cc

Issue 70713002: Cast: Restructure RTCP interface to better fit our usage. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 7 years, 1 month 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
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "base/test/simple_test_tick_clock.h" 5 #include "base/test/simple_test_tick_clock.h"
6 #include "media/cast/cast_defines.h" 6 #include "media/cast/cast_defines.h"
7 #include "media/cast/pacing/paced_sender.h" 7 #include "media/cast/pacing/paced_sender.h"
8 #include "media/cast/rtcp/mock_rtcp_receiver_feedback.h" 8 #include "media/cast/rtcp/mock_rtcp_receiver_feedback.h"
9 #include "media/cast/rtcp/mock_rtcp_sender_feedback.h" 9 #include "media/cast/rtcp/mock_rtcp_sender_feedback.h"
10 #include "media/cast/rtcp/rtcp.h" 10 #include "media/cast/rtcp/rtcp.h"
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after
62 62
63 class RtcpPeer : public Rtcp { 63 class RtcpPeer : public Rtcp {
64 public: 64 public:
65 RtcpPeer(base::TickClock* clock, 65 RtcpPeer(base::TickClock* clock,
66 RtcpSenderFeedback* sender_feedback, 66 RtcpSenderFeedback* sender_feedback,
67 PacedPacketSender* const paced_packet_sender, 67 PacedPacketSender* const paced_packet_sender,
68 RtpSenderStatistics* rtp_sender_statistics, 68 RtpSenderStatistics* rtp_sender_statistics,
69 RtpReceiverStatistics* rtp_receiver_statistics, 69 RtpReceiverStatistics* rtp_receiver_statistics,
70 RtcpMode rtcp_mode, 70 RtcpMode rtcp_mode,
71 const base::TimeDelta& rtcp_interval, 71 const base::TimeDelta& rtcp_interval,
72 bool sending_media,
73 uint32 local_ssrc, 72 uint32 local_ssrc,
73 uint32 remote_ssrc,
74 const std::string& c_name) 74 const std::string& c_name)
75 : Rtcp(clock, 75 : Rtcp(clock,
76 sender_feedback, 76 sender_feedback,
77 paced_packet_sender, 77 paced_packet_sender,
78 rtp_sender_statistics, 78 rtp_sender_statistics,
79 rtp_receiver_statistics, 79 rtp_receiver_statistics,
80 rtcp_mode, 80 rtcp_mode,
81 rtcp_interval, 81 rtcp_interval,
82 sending_media,
83 local_ssrc, 82 local_ssrc,
83 remote_ssrc,
84 c_name) { 84 c_name) {
85 } 85 }
86 86
87 using Rtcp::CheckForWrapAround; 87 using Rtcp::CheckForWrapAround;
88 using Rtcp::OnReceivedLipSyncInfo; 88 using Rtcp::OnReceivedLipSyncInfo;
89 }; 89 };
90 90
91 class RtcpTest : public ::testing::Test { 91 class RtcpTest : public ::testing::Test {
92 protected: 92 protected:
93 RtcpTest() 93 RtcpTest()
(...skipping 16 matching lines...) Expand all
110 TEST_F(RtcpTest, TimeToSend) { 110 TEST_F(RtcpTest, TimeToSend) {
111 base::TimeTicks start_time; 111 base::TimeTicks start_time;
112 start_time += base::TimeDelta::FromMilliseconds(kStartMillisecond); 112 start_time += base::TimeDelta::FromMilliseconds(kStartMillisecond);
113 Rtcp rtcp(&testing_clock_, 113 Rtcp rtcp(&testing_clock_,
114 &mock_sender_feedback_, 114 &mock_sender_feedback_,
115 &transport_, 115 &transport_,
116 NULL, 116 NULL,
117 NULL, 117 NULL,
118 kRtcpCompound, 118 kRtcpCompound,
119 base::TimeDelta::FromMilliseconds(kRtcpIntervalMs), 119 base::TimeDelta::FromMilliseconds(kRtcpIntervalMs),
120 true, // Media sender.
121 kSenderSsrc, 120 kSenderSsrc,
121 kReceiverSsrc,
122 kCName); 122 kCName);
123 transport_.SetRtcpReceiver(&rtcp); 123 transport_.SetRtcpReceiver(&rtcp);
124 EXPECT_LE(start_time, rtcp.TimeToSendNextRtcpReport()); 124 EXPECT_LE(start_time, rtcp.TimeToSendNextRtcpReport());
125 EXPECT_GE(start_time + base::TimeDelta::FromMilliseconds( 125 EXPECT_GE(start_time + base::TimeDelta::FromMilliseconds(
126 kRtcpIntervalMs * 3 / 2), 126 kRtcpIntervalMs * 3 / 2),
127 rtcp.TimeToSendNextRtcpReport()); 127 rtcp.TimeToSendNextRtcpReport());
128 base::TimeDelta delta = rtcp.TimeToSendNextRtcpReport() - start_time; 128 base::TimeDelta delta = rtcp.TimeToSendNextRtcpReport() - start_time;
129 testing_clock_.Advance(delta); 129 testing_clock_.Advance(delta);
130 EXPECT_EQ(testing_clock_.NowTicks(), rtcp.TimeToSendNextRtcpReport()); 130 EXPECT_EQ(testing_clock_.NowTicks(), rtcp.TimeToSendNextRtcpReport());
131 } 131 }
132 132
133 TEST_F(RtcpTest, BasicSenderReport) { 133 TEST_F(RtcpTest, BasicSenderReport) {
134 Rtcp rtcp(&testing_clock_, 134 Rtcp rtcp(&testing_clock_,
135 &mock_sender_feedback_, 135 &mock_sender_feedback_,
136 &transport_, 136 &transport_,
137 NULL, 137 NULL,
138 NULL, 138 NULL,
139 kRtcpCompound, 139 kRtcpCompound,
140 base::TimeDelta::FromMilliseconds(kRtcpIntervalMs), 140 base::TimeDelta::FromMilliseconds(kRtcpIntervalMs),
141 true, // Media sender.
142 kSenderSsrc, 141 kSenderSsrc,
142 kReceiverSsrc,
143 kCName); 143 kCName);
144 transport_.SetRtcpReceiver(&rtcp); 144 transport_.SetRtcpReceiver(&rtcp);
145 rtcp.SendRtcpReport(kUnknownSsrc); 145 rtcp.SendRtcpFromRtpSender(NULL);
146 } 146 }
147 147
148 TEST_F(RtcpTest, BasicReceiverReport) { 148 TEST_F(RtcpTest, BasicReceiverReport) {
149 Rtcp rtcp(&testing_clock_, 149 Rtcp rtcp(&testing_clock_,
150 &mock_sender_feedback_, 150 &mock_sender_feedback_,
151 &transport_, 151 &transport_,
152 NULL, 152 NULL,
153 NULL, 153 NULL,
154 kRtcpCompound, 154 kRtcpCompound,
155 base::TimeDelta::FromMilliseconds(kRtcpIntervalMs), 155 base::TimeDelta::FromMilliseconds(kRtcpIntervalMs),
156 false, // Media receiver.
157 kSenderSsrc, 156 kSenderSsrc,
157 kReceiverSsrc,
158 kCName); 158 kCName);
159 transport_.SetRtcpReceiver(&rtcp); 159 transport_.SetRtcpReceiver(&rtcp);
160 rtcp.SetRemoteSSRC(kSenderSsrc); 160 rtcp.SendRtcpFromRtpReceiver(NULL, NULL);
161 rtcp.SendRtcpReport(kSenderSsrc);
162 } 161 }
163 162
164 TEST_F(RtcpTest, BasicCast) { 163 TEST_F(RtcpTest, BasicCast) {
165 EXPECT_CALL(mock_sender_feedback_, OnReceivedCastFeedback(_)).Times(1); 164 EXPECT_CALL(mock_sender_feedback_, OnReceivedCastFeedback(_)).Times(1);
166 165
167 // Media receiver. 166 // Media receiver.
168 Rtcp rtcp(&testing_clock_, 167 Rtcp rtcp(&testing_clock_,
169 &mock_sender_feedback_, 168 &mock_sender_feedback_,
170 &transport_, 169 &transport_,
171 NULL, 170 NULL,
172 NULL, 171 NULL,
173 kRtcpReducedSize, 172 kRtcpReducedSize,
174 base::TimeDelta::FromMilliseconds(kRtcpIntervalMs), 173 base::TimeDelta::FromMilliseconds(kRtcpIntervalMs),
175 false, 174 kSenderSsrc,
176 kSenderSsrc, 175 kSenderSsrc,
177 kCName); 176 kCName);
178 transport_.SetRtcpReceiver(&rtcp); 177 transport_.SetRtcpReceiver(&rtcp);
179 rtcp.SetRemoteSSRC(kSenderSsrc);
180 RtcpCastMessage cast_message(kSenderSsrc); 178 RtcpCastMessage cast_message(kSenderSsrc);
181 cast_message.ack_frame_id_ = kAckFrameId; 179 cast_message.ack_frame_id_ = kAckFrameId;
182 PacketIdSet missing_packets; 180 PacketIdSet missing_packets;
183 cast_message.missing_frames_and_packets_[ 181 cast_message.missing_frames_and_packets_[
184 kLostFrameId] = missing_packets; 182 kLostFrameId] = missing_packets;
185 183
186 missing_packets.insert(kLostPacketId1); 184 missing_packets.insert(kLostPacketId1);
187 missing_packets.insert(kLostPacketId2); 185 missing_packets.insert(kLostPacketId2);
188 missing_packets.insert(kLostPacketId3); 186 missing_packets.insert(kLostPacketId3);
189 cast_message.missing_frames_and_packets_[ 187 cast_message.missing_frames_and_packets_[kFrameIdWithLostPackets] =
190 kFrameIdWithLostPackets] = missing_packets; 188 missing_packets;
191 rtcp.SendRtcpCast(cast_message); 189 rtcp.SendRtcpFromRtpReceiver(&cast_message, NULL);
192 } 190 }
193 191
194 TEST_F(RtcpTest, Rtt) { 192 TEST_F(RtcpTest, RttReducedSizeRtcp) {
195 // Media receiver. 193 // Media receiver.
196 LocalRtcpTransport receiver_transport(&testing_clock_); 194 LocalRtcpTransport receiver_transport(&testing_clock_);
197 Rtcp rtcp_receiver(&testing_clock_, 195 Rtcp rtcp_receiver(&testing_clock_,
198 &mock_sender_feedback_, 196 &mock_sender_feedback_,
199 &receiver_transport, 197 &receiver_transport,
200 NULL, 198 NULL,
201 NULL, 199 NULL,
202 kRtcpReducedSize, 200 kRtcpReducedSize,
203 base::TimeDelta::FromMilliseconds(kRtcpIntervalMs), 201 base::TimeDelta::FromMilliseconds(kRtcpIntervalMs),
204 false,
205 kReceiverSsrc, 202 kReceiverSsrc,
203 kSenderSsrc,
206 kCName); 204 kCName);
207 205
208 // Media sender. 206 // Media sender.
209 LocalRtcpTransport sender_transport(&testing_clock_); 207 LocalRtcpTransport sender_transport(&testing_clock_);
210 Rtcp rtcp_sender(&testing_clock_, 208 Rtcp rtcp_sender(&testing_clock_,
211 &mock_sender_feedback_, 209 &mock_sender_feedback_,
212 &sender_transport, 210 &sender_transport,
213 NULL, 211 NULL,
214 NULL, 212 NULL,
215 kRtcpReducedSize, 213 kRtcpReducedSize,
216 base::TimeDelta::FromMilliseconds(kRtcpIntervalMs), 214 base::TimeDelta::FromMilliseconds(kRtcpIntervalMs),
217 true,
218 kSenderSsrc, 215 kSenderSsrc,
216 kReceiverSsrc,
219 kCName); 217 kCName);
220 218
221 receiver_transport.SetRtcpReceiver(&rtcp_sender); 219 receiver_transport.SetRtcpReceiver(&rtcp_sender);
222 sender_transport.SetRtcpReceiver(&rtcp_receiver); 220 sender_transport.SetRtcpReceiver(&rtcp_receiver);
223 221
224 rtcp_sender.SetRemoteSSRC(kReceiverSsrc);
225 rtcp_receiver.SetRemoteSSRC(kSenderSsrc);
226
227 base::TimeDelta rtt; 222 base::TimeDelta rtt;
228 base::TimeDelta avg_rtt; 223 base::TimeDelta avg_rtt;
229 base::TimeDelta min_rtt; 224 base::TimeDelta min_rtt;
230 base::TimeDelta max_rtt; 225 base::TimeDelta max_rtt;
231 EXPECT_FALSE(rtcp_sender.Rtt(&rtt, &avg_rtt, &min_rtt, &max_rtt)); 226 EXPECT_FALSE(rtcp_sender.Rtt(&rtt, &avg_rtt, &min_rtt, &max_rtt));
232 EXPECT_FALSE(rtcp_receiver.Rtt(&rtt, &avg_rtt, &min_rtt, &max_rtt)); 227 EXPECT_FALSE(rtcp_receiver.Rtt(&rtt, &avg_rtt, &min_rtt, &max_rtt));
233 228
234 rtcp_sender.SendRtcpReport(kSenderSsrc); 229 rtcp_sender.SendRtcpFromRtpSender(NULL);
235 rtcp_receiver.SendRtcpReport(kSenderSsrc); 230 rtcp_receiver.SendRtcpFromRtpReceiver(NULL, NULL);
236 EXPECT_TRUE(rtcp_sender.Rtt(&rtt, &avg_rtt, &min_rtt, &max_rtt)); 231 EXPECT_TRUE(rtcp_sender.Rtt(&rtt, &avg_rtt, &min_rtt, &max_rtt));
237 EXPECT_FALSE(rtcp_receiver.Rtt(&rtt, &avg_rtt, &min_rtt, &max_rtt)); 232 EXPECT_FALSE(rtcp_receiver.Rtt(&rtt, &avg_rtt, &min_rtt, &max_rtt));
238 EXPECT_NEAR(2 * kAddedDelay, rtt.InMilliseconds(), 1); 233 EXPECT_NEAR(2 * kAddedDelay, rtt.InMilliseconds(), 1);
239 EXPECT_NEAR(2 * kAddedDelay, avg_rtt.InMilliseconds(), 1); 234 EXPECT_NEAR(2 * kAddedDelay, avg_rtt.InMilliseconds(), 1);
240 EXPECT_NEAR(2 * kAddedDelay, min_rtt.InMilliseconds(), 1); 235 EXPECT_NEAR(2 * kAddedDelay, min_rtt.InMilliseconds(), 1);
241 EXPECT_NEAR(2 * kAddedDelay, max_rtt.InMilliseconds(), 1); 236 EXPECT_NEAR(2 * kAddedDelay, max_rtt.InMilliseconds(), 1);
242 rtcp_sender.SendRtcpReport(kSenderSsrc); 237 rtcp_sender.SendRtcpFromRtpSender(NULL);
243 EXPECT_TRUE(rtcp_receiver.Rtt(&rtt, &avg_rtt, &min_rtt, &max_rtt)); 238 EXPECT_TRUE(rtcp_receiver.Rtt(&rtt, &avg_rtt, &min_rtt, &max_rtt));
244 239
245 EXPECT_NEAR(2 * kAddedDelay, rtt.InMilliseconds(), 1); 240 EXPECT_NEAR(2 * kAddedDelay, rtt.InMilliseconds(), 1);
246 EXPECT_NEAR(2 * kAddedDelay, avg_rtt.InMilliseconds(), 1); 241 EXPECT_NEAR(2 * kAddedDelay, avg_rtt.InMilliseconds(), 1);
247 EXPECT_NEAR(2 * kAddedDelay, min_rtt.InMilliseconds(), 1); 242 EXPECT_NEAR(2 * kAddedDelay, min_rtt.InMilliseconds(), 1);
248 EXPECT_NEAR(2 * kAddedDelay, max_rtt.InMilliseconds(), 1); 243 EXPECT_NEAR(2 * kAddedDelay, max_rtt.InMilliseconds(), 1);
244 }
245
246 TEST_F(RtcpTest, Rtt) {
247 // Media receiver.
248 LocalRtcpTransport receiver_transport(&testing_clock_);
249 Rtcp rtcp_receiver(&testing_clock_,
250 &mock_sender_feedback_,
251 &receiver_transport,
252 NULL,
253 NULL,
254 kRtcpCompound,
255 base::TimeDelta::FromMilliseconds(kRtcpIntervalMs),
256 kReceiverSsrc,
257 kSenderSsrc,
258 kCName);
259
260 // Media sender.
261 LocalRtcpTransport sender_transport(&testing_clock_);
262 Rtcp rtcp_sender(&testing_clock_,
263 &mock_sender_feedback_,
264 &sender_transport,
265 NULL,
266 NULL,
267 kRtcpCompound,
268 base::TimeDelta::FromMilliseconds(kRtcpIntervalMs),
269 kSenderSsrc,
270 kReceiverSsrc,
271 kCName);
272
273 receiver_transport.SetRtcpReceiver(&rtcp_sender);
274 sender_transport.SetRtcpReceiver(&rtcp_receiver);
275
276 base::TimeDelta rtt;
277 base::TimeDelta avg_rtt;
278 base::TimeDelta min_rtt;
279 base::TimeDelta max_rtt;
280 EXPECT_FALSE(rtcp_sender.Rtt(&rtt, &avg_rtt, &min_rtt, &max_rtt));
281 EXPECT_FALSE(rtcp_receiver.Rtt(&rtt, &avg_rtt, &min_rtt, &max_rtt));
282
283 rtcp_sender.SendRtcpFromRtpSender(NULL);
284 rtcp_receiver.SendRtcpFromRtpReceiver(NULL, NULL);
285 EXPECT_TRUE(rtcp_sender.Rtt(&rtt, &avg_rtt, &min_rtt, &max_rtt));
286 EXPECT_FALSE(rtcp_receiver.Rtt(&rtt, &avg_rtt, &min_rtt, &max_rtt));
287 EXPECT_NEAR(2 * kAddedDelay, rtt.InMilliseconds(), 1);
288 EXPECT_NEAR(2 * kAddedDelay, avg_rtt.InMilliseconds(), 1);
289 EXPECT_NEAR(2 * kAddedDelay, min_rtt.InMilliseconds(), 1);
290 EXPECT_NEAR(2 * kAddedDelay, max_rtt.InMilliseconds(), 1);
291
292 rtcp_sender.SendRtcpFromRtpSender(NULL);
293 EXPECT_TRUE(rtcp_receiver.Rtt(&rtt, &avg_rtt, &min_rtt, &max_rtt));
294 EXPECT_NEAR(2 * kAddedDelay, rtt.InMilliseconds(), 1);
295 EXPECT_NEAR(2 * kAddedDelay, avg_rtt.InMilliseconds(), 1);
296 EXPECT_NEAR(2 * kAddedDelay, min_rtt.InMilliseconds(), 1);
297 EXPECT_NEAR(2 * kAddedDelay, max_rtt.InMilliseconds(), 1);
249 298
250 receiver_transport.SetShortDelay(); 299 receiver_transport.SetShortDelay();
251 sender_transport.SetShortDelay(); 300 sender_transport.SetShortDelay();
252 rtcp_receiver.SendRtcpReport(kSenderSsrc); 301 rtcp_receiver.SendRtcpFromRtpReceiver(NULL, NULL);
253 EXPECT_TRUE(rtcp_sender.Rtt(&rtt, &avg_rtt, &min_rtt, &max_rtt)); 302 EXPECT_TRUE(rtcp_sender.Rtt(&rtt, &avg_rtt, &min_rtt, &max_rtt));
254
255 EXPECT_NEAR(kAddedDelay + kAddedShortDelay, rtt.InMilliseconds(), 1); 303 EXPECT_NEAR(kAddedDelay + kAddedShortDelay, rtt.InMilliseconds(), 1);
256 EXPECT_NEAR((kAddedShortDelay + 3 * kAddedDelay) / 2, 304 EXPECT_NEAR((kAddedShortDelay + 3 * kAddedDelay) / 2,
257 avg_rtt.InMilliseconds(), 305 avg_rtt.InMilliseconds(),
258 1); 306 1);
259 EXPECT_NEAR(kAddedDelay + kAddedShortDelay, min_rtt.InMilliseconds(), 1); 307 EXPECT_NEAR(kAddedDelay + kAddedShortDelay, min_rtt.InMilliseconds(), 1);
260 EXPECT_NEAR(2 * kAddedDelay, max_rtt.InMilliseconds(), 1); 308 EXPECT_NEAR(2 * kAddedDelay, max_rtt.InMilliseconds(), 1);
261 rtcp_sender.SendRtcpReport(kSenderSsrc); 309
310 rtcp_sender.SendRtcpFromRtpSender(NULL);
262 EXPECT_TRUE(rtcp_receiver.Rtt(&rtt, &avg_rtt, &min_rtt, &max_rtt)); 311 EXPECT_TRUE(rtcp_receiver.Rtt(&rtt, &avg_rtt, &min_rtt, &max_rtt));
263
264 EXPECT_NEAR(2 * kAddedShortDelay, rtt.InMilliseconds(), 1); 312 EXPECT_NEAR(2 * kAddedShortDelay, rtt.InMilliseconds(), 1);
265 EXPECT_NEAR((2 * kAddedShortDelay + 2 * kAddedDelay) / 2, 313 EXPECT_NEAR((2 * kAddedShortDelay + 2 * kAddedDelay) / 2,
266 avg_rtt.InMilliseconds(), 314 avg_rtt.InMilliseconds(),
267 1); 315 1);
268 EXPECT_NEAR(2 * kAddedShortDelay, min_rtt.InMilliseconds(), 1); 316 EXPECT_NEAR(2 * kAddedShortDelay, min_rtt.InMilliseconds(), 1);
269 EXPECT_NEAR(2 * kAddedDelay, max_rtt.InMilliseconds(), 1); 317 EXPECT_NEAR(2 * kAddedDelay, max_rtt.InMilliseconds(), 1);
318
319 rtcp_receiver.SendRtcpFromRtpReceiver(NULL, NULL);
320 EXPECT_TRUE(rtcp_sender.Rtt(&rtt, &avg_rtt, &min_rtt, &max_rtt));
321 EXPECT_NEAR(2 * kAddedShortDelay, rtt.InMilliseconds(), 1);
322 EXPECT_NEAR(2 * kAddedShortDelay, min_rtt.InMilliseconds(), 1);
323 EXPECT_NEAR(2 * kAddedDelay, max_rtt.InMilliseconds(), 1);
324
325 rtcp_receiver.SendRtcpFromRtpReceiver(NULL, NULL);
326 EXPECT_TRUE(rtcp_sender.Rtt(&rtt, &avg_rtt, &min_rtt, &max_rtt));
327 EXPECT_NEAR(2 * kAddedShortDelay, rtt.InMilliseconds(), 1);
328 EXPECT_NEAR(2 * kAddedShortDelay, min_rtt.InMilliseconds(), 1);
329 EXPECT_NEAR(2 * kAddedDelay, max_rtt.InMilliseconds(), 1);
270 } 330 }
271 331
272 TEST_F(RtcpTest, NtpAndTime) { 332 TEST_F(RtcpTest, NtpAndTime) {
273 const int64 kSecondsbetweenYear1900and2010 = GG_INT64_C(40176 * 24 * 60 * 60); 333 const int64 kSecondsbetweenYear1900and2010 = GG_INT64_C(40176 * 24 * 60 * 60);
274 const int64 kSecondsbetweenYear1900and2030 = GG_INT64_C(47481 * 24 * 60 * 60); 334 const int64 kSecondsbetweenYear1900and2030 = GG_INT64_C(47481 * 24 * 60 * 60);
275 335
276 uint32 ntp_seconds_1 = 0; 336 uint32 ntp_seconds_1 = 0;
277 uint32 ntp_fractions_1 = 0; 337 uint32 ntp_fractions_1 = 0;
278 base::TimeTicks input_time = base::TimeTicks::Now(); 338 base::TimeTicks input_time = base::TimeTicks::Now();
279 ConvertTimeTicksToNtp(input_time, &ntp_seconds_1, &ntp_fractions_1); 339 ConvertTimeTicksToNtp(input_time, &ntp_seconds_1, &ntp_fractions_1);
(...skipping 22 matching lines...) Expand all
302 } 362 }
303 363
304 TEST_F(RtcpTest, WrapAround) { 364 TEST_F(RtcpTest, WrapAround) {
305 RtcpPeer rtcp_peer(&testing_clock_, 365 RtcpPeer rtcp_peer(&testing_clock_,
306 &mock_sender_feedback_, 366 &mock_sender_feedback_,
307 NULL, 367 NULL,
308 NULL, 368 NULL,
309 NULL, 369 NULL,
310 kRtcpReducedSize, 370 kRtcpReducedSize,
311 base::TimeDelta::FromMilliseconds(kRtcpIntervalMs), 371 base::TimeDelta::FromMilliseconds(kRtcpIntervalMs),
312 false,
313 kReceiverSsrc, 372 kReceiverSsrc,
373 kSenderSsrc,
314 kCName); 374 kCName);
315 uint32 new_timestamp = 0; 375 uint32 new_timestamp = 0;
316 uint32 old_timestamp = 0; 376 uint32 old_timestamp = 0;
317 EXPECT_EQ(0, rtcp_peer.CheckForWrapAround(new_timestamp, old_timestamp)); 377 EXPECT_EQ(0, rtcp_peer.CheckForWrapAround(new_timestamp, old_timestamp));
318 new_timestamp = 1234567890; 378 new_timestamp = 1234567890;
319 old_timestamp = 1234567000; 379 old_timestamp = 1234567000;
320 EXPECT_EQ(0, rtcp_peer.CheckForWrapAround(new_timestamp, old_timestamp)); 380 EXPECT_EQ(0, rtcp_peer.CheckForWrapAround(new_timestamp, old_timestamp));
321 new_timestamp = 1234567000; 381 new_timestamp = 1234567000;
322 old_timestamp = 1234567890; 382 old_timestamp = 1234567890;
323 EXPECT_EQ(0, rtcp_peer.CheckForWrapAround(new_timestamp, old_timestamp)); 383 EXPECT_EQ(0, rtcp_peer.CheckForWrapAround(new_timestamp, old_timestamp));
324 new_timestamp = 123; 384 new_timestamp = 123;
325 old_timestamp = 4234567890u; 385 old_timestamp = 4234567890u;
326 EXPECT_EQ(1, rtcp_peer.CheckForWrapAround(new_timestamp, old_timestamp)); 386 EXPECT_EQ(1, rtcp_peer.CheckForWrapAround(new_timestamp, old_timestamp));
327 new_timestamp = 4234567890u; 387 new_timestamp = 4234567890u;
328 old_timestamp = 123; 388 old_timestamp = 123;
329 EXPECT_EQ(-1, rtcp_peer.CheckForWrapAround(new_timestamp, old_timestamp)); 389 EXPECT_EQ(-1, rtcp_peer.CheckForWrapAround(new_timestamp, old_timestamp));
330 } 390 }
331 391
332 TEST_F(RtcpTest, RtpTimestampInSenderTime) { 392 TEST_F(RtcpTest, RtpTimestampInSenderTime) {
333 RtcpPeer rtcp_peer(&testing_clock_, 393 RtcpPeer rtcp_peer(&testing_clock_,
334 &mock_sender_feedback_, 394 &mock_sender_feedback_,
335 NULL, 395 NULL,
336 NULL, 396 NULL,
337 NULL, 397 NULL,
338 kRtcpReducedSize, 398 kRtcpReducedSize,
339 base::TimeDelta::FromMilliseconds(kRtcpIntervalMs), 399 base::TimeDelta::FromMilliseconds(kRtcpIntervalMs),
340 false,
341 kReceiverSsrc, 400 kReceiverSsrc,
401 kSenderSsrc,
342 kCName); 402 kCName);
343 int frequency = 32000; 403 int frequency = 32000;
344 uint32 rtp_timestamp = 64000; 404 uint32 rtp_timestamp = 64000;
345 base::TimeTicks rtp_timestamp_in_ticks; 405 base::TimeTicks rtp_timestamp_in_ticks;
346 406
347 // Test fail before we get a OnReceivedLipSyncInfo. 407 // Test fail before we get a OnReceivedLipSyncInfo.
348 EXPECT_FALSE(rtcp_peer.RtpTimestampInSenderTime(frequency, rtp_timestamp, 408 EXPECT_FALSE(rtcp_peer.RtpTimestampInSenderTime(frequency, rtp_timestamp,
349 &rtp_timestamp_in_ticks)); 409 &rtp_timestamp_in_ticks));
350 410
351 uint32 ntp_seconds = 0; 411 uint32 ntp_seconds = 0;
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
387 rtcp_peer.OnReceivedLipSyncInfo(rtp_timestamp, ntp_seconds, ntp_fractions); 447 rtcp_peer.OnReceivedLipSyncInfo(rtp_timestamp, ntp_seconds, ntp_fractions);
388 rtp_timestamp = 64000; 448 rtp_timestamp = 64000;
389 EXPECT_TRUE(rtcp_peer.RtpTimestampInSenderTime(frequency, rtp_timestamp, 449 EXPECT_TRUE(rtcp_peer.RtpTimestampInSenderTime(frequency, rtp_timestamp,
390 &rtp_timestamp_in_ticks)); 450 &rtp_timestamp_in_ticks));
391 EXPECT_EQ(input_time + base::TimeDelta::FromMilliseconds(4000), 451 EXPECT_EQ(input_time + base::TimeDelta::FromMilliseconds(4000),
392 rtp_timestamp_in_ticks); 452 rtp_timestamp_in_ticks);
393 } 453 }
394 454
395 } // namespace cast 455 } // namespace cast
396 } // namespace media 456 } // namespace media
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698