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

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

Issue 192843002: Cast:Adding signaling and infrastructure for adjustable delay (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Updates Created 6 years, 9 months 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 | Annotate | Revision Log
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/memory/scoped_ptr.h" 5 #include "base/memory/scoped_ptr.h"
6 #include "base/test/simple_test_tick_clock.h" 6 #include "base/test/simple_test_tick_clock.h"
7 #include "media/cast/cast_defines.h" 7 #include "media/cast/cast_defines.h"
8 #include "media/cast/cast_environment.h" 8 #include "media/cast/cast_environment.h"
9 #include "media/cast/rtcp/receiver_rtcp_event_subscriber.h" 9 #include "media/cast/rtcp/receiver_rtcp_event_subscriber.h"
10 #include "media/cast/rtcp/rtcp_sender.h" 10 #include "media/cast/rtcp/rtcp_sender.h"
11 #include "media/cast/rtcp/rtcp_utility.h" 11 #include "media/cast/rtcp/rtcp_utility.h"
12 #include "media/cast/rtcp/test_rtcp_packet_builder.h" 12 #include "media/cast/rtcp/test_rtcp_packet_builder.h"
13 #include "media/cast/test/fake_single_thread_task_runner.h" 13 #include "media/cast/test/fake_single_thread_task_runner.h"
14 #include "media/cast/transport/cast_transport_defines.h" 14 #include "media/cast/transport/cast_transport_defines.h"
15 #include "media/cast/transport/pacing/paced_sender.h" 15 #include "media/cast/transport/pacing/paced_sender.h"
16 #include "testing/gmock/include/gmock/gmock.h" 16 #include "testing/gmock/include/gmock/gmock.h"
17 17
18 namespace media { 18 namespace media {
19 namespace cast { 19 namespace cast {
20 20
21 namespace { 21 namespace {
22 static const uint32 kSendingSsrc = 0x12345678; 22 static const uint32 kSendingSsrc = 0x12345678;
23 static const uint32 kMediaSsrc = 0x87654321; 23 static const uint32 kMediaSsrc = 0x87654321;
24 static const int16 kDefaultDelay = 100;
24 static const std::string kCName("test@10.1.1.1"); 25 static const std::string kCName("test@10.1.1.1");
25 26
26 transport::RtcpReportBlock GetReportBlock() { 27 transport::RtcpReportBlock GetReportBlock() {
27 transport::RtcpReportBlock report_block; 28 transport::RtcpReportBlock report_block;
28 // Initialize remote_ssrc to a "clearly illegal" value. 29 // Initialize remote_ssrc to a "clearly illegal" value.
29 report_block.remote_ssrc = 0xDEAD; 30 report_block.remote_ssrc = 0xDEAD;
30 report_block.media_ssrc = kMediaSsrc; // SSRC of the RTP packet sender. 31 report_block.media_ssrc = kMediaSsrc; // SSRC of the RTP packet sender.
31 report_block.fraction_lost = kLoss >> 24; 32 report_block.fraction_lost = kLoss >> 24;
32 report_block.cumulative_lost = kLoss; // 24 bits valid. 33 report_block.cumulative_lost = kLoss; // 24 bits valid.
33 report_block.extended_high_sequence_number = kExtendedMax; 34 report_block.extended_high_sequence_number = kExtendedMax;
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after
98 }; 99 };
99 100
100 TEST_F(RtcpSenderTest, RtcpReceiverReport) { 101 TEST_F(RtcpSenderTest, RtcpReceiverReport) {
101 // Empty receiver report + c_name. 102 // Empty receiver report + c_name.
102 TestRtcpPacketBuilder p1; 103 TestRtcpPacketBuilder p1;
103 p1.AddRr(kSendingSsrc, 0); 104 p1.AddRr(kSendingSsrc, 0);
104 p1.AddSdesCname(kSendingSsrc, kCName); 105 p1.AddSdesCname(kSendingSsrc, kCName);
105 test_transport_.SetExpectedRtcpPacket(p1.GetPacket()); 106 test_transport_.SetExpectedRtcpPacket(p1.GetPacket());
106 107
107 rtcp_sender_->SendRtcpFromRtpReceiver( 108 rtcp_sender_->SendRtcpFromRtpReceiver(
108 RtcpSender::kRtcpRr, NULL, NULL, NULL, NULL); 109 transport::kRtcpRr, NULL, NULL, NULL, NULL, kDefaultDelay);
109 110
110 EXPECT_EQ(1, test_transport_.packet_count()); 111 EXPECT_EQ(1, test_transport_.packet_count());
111 112
112 // Receiver report with report block + c_name. 113 // Receiver report with report block + c_name.
113 TestRtcpPacketBuilder p2; 114 TestRtcpPacketBuilder p2;
114 p2.AddRr(kSendingSsrc, 1); 115 p2.AddRr(kSendingSsrc, 1);
115 p2.AddRb(kMediaSsrc); 116 p2.AddRb(kMediaSsrc);
116 p2.AddSdesCname(kSendingSsrc, kCName); 117 p2.AddSdesCname(kSendingSsrc, kCName);
117 test_transport_.SetExpectedRtcpPacket(p2.GetPacket().Pass()); 118 test_transport_.SetExpectedRtcpPacket(p2.GetPacket().Pass());
118 119
119 transport::RtcpReportBlock report_block = GetReportBlock(); 120 transport::RtcpReportBlock report_block = GetReportBlock();
120 121
121 rtcp_sender_->SendRtcpFromRtpReceiver( 122 rtcp_sender_->SendRtcpFromRtpReceiver(
122 RtcpSender::kRtcpRr, &report_block, NULL, NULL, NULL); 123 transport::kRtcpRr, &report_block, NULL, NULL, NULL, kDefaultDelay);
123 124
124 EXPECT_EQ(2, test_transport_.packet_count()); 125 EXPECT_EQ(2, test_transport_.packet_count());
125 } 126 }
126 127
127 TEST_F(RtcpSenderTest, RtcpReceiverReportWithRrtr) { 128 TEST_F(RtcpSenderTest, RtcpReceiverReportWithRrtr) {
128 // Receiver report with report block + c_name. 129 // Receiver report with report block + c_name.
129 TestRtcpPacketBuilder p; 130 TestRtcpPacketBuilder p;
130 p.AddRr(kSendingSsrc, 1); 131 p.AddRr(kSendingSsrc, 1);
131 p.AddRb(kMediaSsrc); 132 p.AddRb(kMediaSsrc);
132 p.AddSdesCname(kSendingSsrc, kCName); 133 p.AddSdesCname(kSendingSsrc, kCName);
133 p.AddXrHeader(kSendingSsrc); 134 p.AddXrHeader(kSendingSsrc);
134 p.AddXrRrtrBlock(); 135 p.AddXrRrtrBlock();
135 test_transport_.SetExpectedRtcpPacket(p.GetPacket().Pass()); 136 test_transport_.SetExpectedRtcpPacket(p.GetPacket().Pass());
136 137
137 transport::RtcpReportBlock report_block = GetReportBlock(); 138 transport::RtcpReportBlock report_block = GetReportBlock();
138 139
139 RtcpReceiverReferenceTimeReport rrtr; 140 RtcpReceiverReferenceTimeReport rrtr;
140 rrtr.ntp_seconds = kNtpHigh; 141 rrtr.ntp_seconds = kNtpHigh;
141 rrtr.ntp_fraction = kNtpLow; 142 rrtr.ntp_fraction = kNtpLow;
142 143
143 rtcp_sender_->SendRtcpFromRtpReceiver( 144 rtcp_sender_->SendRtcpFromRtpReceiver(
144 RtcpSender::kRtcpRr | RtcpSender::kRtcpRrtr, 145 transport::kRtcpRr | transport::kRtcpRrtr,
145 &report_block, 146 &report_block,
146 &rrtr, 147 &rrtr,
147 NULL, 148 NULL,
148 NULL); 149 NULL,
150 kDefaultDelay);
149 151
150 EXPECT_EQ(1, test_transport_.packet_count()); 152 EXPECT_EQ(1, test_transport_.packet_count());
151 } 153 }
152 154
153 TEST_F(RtcpSenderTest, RtcpReceiverReportWithCast) { 155 TEST_F(RtcpSenderTest, RtcpReceiverReportWithCast) {
154 // Receiver report with report block + c_name. 156 // Receiver report with report block + c_name.
155 TestRtcpPacketBuilder p; 157 TestRtcpPacketBuilder p;
156 p.AddRr(kSendingSsrc, 1); 158 p.AddRr(kSendingSsrc, 1);
157 p.AddRb(kMediaSsrc); 159 p.AddRb(kMediaSsrc);
158 p.AddSdesCname(kSendingSsrc, kCName); 160 p.AddSdesCname(kSendingSsrc, kCName);
159 p.AddCast(kSendingSsrc, kMediaSsrc); 161 p.AddCast(kSendingSsrc, kMediaSsrc, kDefaultDelay);
160 test_transport_.SetExpectedRtcpPacket(p.GetPacket().Pass()); 162 test_transport_.SetExpectedRtcpPacket(p.GetPacket().Pass());
161 163
162 transport::RtcpReportBlock report_block = GetReportBlock(); 164 transport::RtcpReportBlock report_block = GetReportBlock();
163 165
164 RtcpCastMessage cast_message(kMediaSsrc); 166 RtcpCastMessage cast_message(kMediaSsrc);
165 cast_message.ack_frame_id_ = kAckFrameId; 167 cast_message.ack_frame_id_ = kAckFrameId;
166 PacketIdSet missing_packets; 168 PacketIdSet missing_packets;
167 cast_message.missing_frames_and_packets_[kLostFrameId] = missing_packets; 169 cast_message.missing_frames_and_packets_[kLostFrameId] = missing_packets;
168 170
169 missing_packets.insert(kLostPacketId1); 171 missing_packets.insert(kLostPacketId1);
170 missing_packets.insert(kLostPacketId2); 172 missing_packets.insert(kLostPacketId2);
171 missing_packets.insert(kLostPacketId3); 173 missing_packets.insert(kLostPacketId3);
172 cast_message.missing_frames_and_packets_[kFrameIdWithLostPackets] = 174 cast_message.missing_frames_and_packets_[kFrameIdWithLostPackets] =
173 missing_packets; 175 missing_packets;
174 176
175 rtcp_sender_->SendRtcpFromRtpReceiver( 177 rtcp_sender_->SendRtcpFromRtpReceiver(
176 RtcpSender::kRtcpRr | RtcpSender::kRtcpCast, 178 transport::kRtcpRr | transport::kRtcpCast,
177 &report_block, 179 &report_block,
178 NULL, 180 NULL,
179 &cast_message, 181 &cast_message,
180 NULL); 182 NULL,
183 kDefaultDelay);
181 184
182 EXPECT_EQ(1, test_transport_.packet_count()); 185 EXPECT_EQ(1, test_transport_.packet_count());
183 } 186 }
184 187
185 TEST_F(RtcpSenderTest, RtcpReceiverReportWithRrtraAndCastMessage) { 188 TEST_F(RtcpSenderTest, RtcpReceiverReportWithRrtraAndCastMessage) {
186 TestRtcpPacketBuilder p; 189 TestRtcpPacketBuilder p;
187 p.AddRr(kSendingSsrc, 1); 190 p.AddRr(kSendingSsrc, 1);
188 p.AddRb(kMediaSsrc); 191 p.AddRb(kMediaSsrc);
189 p.AddSdesCname(kSendingSsrc, kCName); 192 p.AddSdesCname(kSendingSsrc, kCName);
190 p.AddXrHeader(kSendingSsrc); 193 p.AddXrHeader(kSendingSsrc);
191 p.AddXrRrtrBlock(); 194 p.AddXrRrtrBlock();
192 p.AddCast(kSendingSsrc, kMediaSsrc); 195 p.AddCast(kSendingSsrc, kMediaSsrc, kDefaultDelay);
193 test_transport_.SetExpectedRtcpPacket(p.GetPacket().Pass()); 196 test_transport_.SetExpectedRtcpPacket(p.GetPacket().Pass());
194 197
195 transport::RtcpReportBlock report_block = GetReportBlock(); 198 transport::RtcpReportBlock report_block = GetReportBlock();
196 199
197 RtcpReceiverReferenceTimeReport rrtr; 200 RtcpReceiverReferenceTimeReport rrtr;
198 rrtr.ntp_seconds = kNtpHigh; 201 rrtr.ntp_seconds = kNtpHigh;
199 rrtr.ntp_fraction = kNtpLow; 202 rrtr.ntp_fraction = kNtpLow;
200 203
201 RtcpCastMessage cast_message(kMediaSsrc); 204 RtcpCastMessage cast_message(kMediaSsrc);
202 cast_message.ack_frame_id_ = kAckFrameId; 205 cast_message.ack_frame_id_ = kAckFrameId;
203 PacketIdSet missing_packets; 206 PacketIdSet missing_packets;
204 cast_message.missing_frames_and_packets_[kLostFrameId] = missing_packets; 207 cast_message.missing_frames_and_packets_[kLostFrameId] = missing_packets;
205 208
206 missing_packets.insert(kLostPacketId1); 209 missing_packets.insert(kLostPacketId1);
207 missing_packets.insert(kLostPacketId2); 210 missing_packets.insert(kLostPacketId2);
208 missing_packets.insert(kLostPacketId3); 211 missing_packets.insert(kLostPacketId3);
209 cast_message.missing_frames_and_packets_[kFrameIdWithLostPackets] = 212 cast_message.missing_frames_and_packets_[kFrameIdWithLostPackets] =
210 missing_packets; 213 missing_packets;
211 214
212 rtcp_sender_->SendRtcpFromRtpReceiver( 215 rtcp_sender_->SendRtcpFromRtpReceiver(
213 RtcpSender::kRtcpRr | RtcpSender::kRtcpRrtr | RtcpSender::kRtcpCast, 216 transport::kRtcpRr | transport::kRtcpRrtr | transport::kRtcpCast,
214 &report_block, 217 &report_block,
215 &rrtr, 218 &rrtr,
216 &cast_message, 219 &cast_message,
217 NULL); 220 NULL,
221 kDefaultDelay);
218 222
219 EXPECT_EQ(1, test_transport_.packet_count()); 223 EXPECT_EQ(1, test_transport_.packet_count());
220 } 224 }
221 225
222 TEST_F(RtcpSenderTest, RtcpReceiverReportWithRrtrCastMessageAndLog) { 226 TEST_F(RtcpSenderTest, RtcpReceiverReportWithRrtrCastMessageAndLog) {
223 static const uint32 kTimeBaseMs = 12345678; 227 static const uint32 kTimeBaseMs = 12345678;
224 static const uint32 kTimeDelayMs = 10; 228 static const uint32 kTimeDelayMs = 10;
225 229
226 TestRtcpPacketBuilder p; 230 TestRtcpPacketBuilder p;
227 p.AddRr(kSendingSsrc, 1); 231 p.AddRr(kSendingSsrc, 1);
228 p.AddRb(kMediaSsrc); 232 p.AddRb(kMediaSsrc);
229 p.AddSdesCname(kSendingSsrc, kCName); 233 p.AddSdesCname(kSendingSsrc, kCName);
230 p.AddXrHeader(kSendingSsrc); 234 p.AddXrHeader(kSendingSsrc);
231 p.AddXrRrtrBlock(); 235 p.AddXrRrtrBlock();
232 p.AddCast(kSendingSsrc, kMediaSsrc); 236 p.AddCast(kSendingSsrc, kMediaSsrc, kDefaultDelay);
233 test_transport_.SetExpectedRtcpPacket(p.GetPacket().Pass()); 237 test_transport_.SetExpectedRtcpPacket(p.GetPacket().Pass());
234 238
235 transport::RtcpReportBlock report_block = GetReportBlock(); 239 transport::RtcpReportBlock report_block = GetReportBlock();
236 240
237 RtcpReceiverReferenceTimeReport rrtr; 241 RtcpReceiverReferenceTimeReport rrtr;
238 rrtr.ntp_seconds = kNtpHigh; 242 rrtr.ntp_seconds = kNtpHigh;
239 rrtr.ntp_fraction = kNtpLow; 243 rrtr.ntp_fraction = kNtpLow;
240 244
241 RtcpCastMessage cast_message(kMediaSsrc); 245 RtcpCastMessage cast_message(kMediaSsrc);
242 cast_message.ack_frame_id_ = kAckFrameId; 246 cast_message.ack_frame_id_ = kAckFrameId;
243 PacketIdSet missing_packets; 247 PacketIdSet missing_packets;
244 cast_message.missing_frames_and_packets_[kLostFrameId] = missing_packets; 248 cast_message.missing_frames_and_packets_[kLostFrameId] = missing_packets;
245 249
246 missing_packets.insert(kLostPacketId1); 250 missing_packets.insert(kLostPacketId1);
247 missing_packets.insert(kLostPacketId2); 251 missing_packets.insert(kLostPacketId2);
248 missing_packets.insert(kLostPacketId3); 252 missing_packets.insert(kLostPacketId3);
249 cast_message.missing_frames_and_packets_[kFrameIdWithLostPackets] = 253 cast_message.missing_frames_and_packets_[kFrameIdWithLostPackets] =
250 missing_packets; 254 missing_packets;
251 255
252 ReceiverRtcpEventSubscriber event_subscriber( 256 ReceiverRtcpEventSubscriber event_subscriber(
253 500, ReceiverRtcpEventSubscriber::kVideoEventSubscriber); 257 500, ReceiverRtcpEventSubscriber::kVideoEventSubscriber);
254 258
255 rtcp_sender_->SendRtcpFromRtpReceiver( 259 rtcp_sender_->SendRtcpFromRtpReceiver(
256 RtcpSender::kRtcpRr | RtcpSender::kRtcpRrtr | RtcpSender::kRtcpCast | 260 transport::kRtcpRr | transport::kRtcpRrtr | transport::kRtcpCast |
257 RtcpSender::kRtcpReceiverLog, 261 transport::kRtcpReceiverLog,
258 &report_block, 262 &report_block,
259 &rrtr, 263 &rrtr,
260 &cast_message, 264 &cast_message,
261 &event_subscriber); 265 &event_subscriber,
266 kDefaultDelay);
262 267
263 base::SimpleTestTickClock testing_clock; 268 base::SimpleTestTickClock testing_clock;
264 testing_clock.Advance(base::TimeDelta::FromMilliseconds(kTimeBaseMs)); 269 testing_clock.Advance(base::TimeDelta::FromMilliseconds(kTimeBaseMs));
265 270
266 p.AddReceiverLog(kSendingSsrc); 271 p.AddReceiverLog(kSendingSsrc);
267 p.AddReceiverFrameLog(kRtpTimestamp, 2, kTimeBaseMs); 272 p.AddReceiverFrameLog(kRtpTimestamp, 2, kTimeBaseMs);
268 p.AddReceiverEventLog(0, 5, 0); 273 p.AddReceiverEventLog(0, 5, 0);
269 p.AddReceiverEventLog(kLostPacketId1, 8, kTimeDelayMs); 274 p.AddReceiverEventLog(kLostPacketId1, 8, kTimeDelayMs);
270 275
271 test_transport_.SetExpectedRtcpPacket(p.GetPacket().Pass()); 276 test_transport_.SetExpectedRtcpPacket(p.GetPacket().Pass());
272 277
273 FrameEvent frame_event; 278 FrameEvent frame_event;
274 frame_event.rtp_timestamp = kRtpTimestamp; 279 frame_event.rtp_timestamp = kRtpTimestamp;
275 frame_event.type = kVideoAckSent; 280 frame_event.type = kVideoAckSent;
276 frame_event.timestamp = testing_clock.NowTicks(); 281 frame_event.timestamp = testing_clock.NowTicks();
277 event_subscriber.OnReceiveFrameEvent(frame_event); 282 event_subscriber.OnReceiveFrameEvent(frame_event);
278 testing_clock.Advance(base::TimeDelta::FromMilliseconds(kTimeDelayMs)); 283 testing_clock.Advance(base::TimeDelta::FromMilliseconds(kTimeDelayMs));
279 284
280 PacketEvent packet_event; 285 PacketEvent packet_event;
281 packet_event.rtp_timestamp = kRtpTimestamp; 286 packet_event.rtp_timestamp = kRtpTimestamp;
282 packet_event.type = kVideoPacketReceived; 287 packet_event.type = kVideoPacketReceived;
283 packet_event.timestamp = testing_clock.NowTicks(); 288 packet_event.timestamp = testing_clock.NowTicks();
284 packet_event.packet_id = kLostPacketId1; 289 packet_event.packet_id = kLostPacketId1;
285 event_subscriber.OnReceivePacketEvent(packet_event); 290 event_subscriber.OnReceivePacketEvent(packet_event);
286 EXPECT_EQ(2u, event_subscriber.get_rtcp_events().size()); 291 EXPECT_EQ(2u, event_subscriber.get_rtcp_events().size());
287 292
288 rtcp_sender_->SendRtcpFromRtpReceiver( 293 rtcp_sender_->SendRtcpFromRtpReceiver(
289 RtcpSender::kRtcpRr | RtcpSender::kRtcpRrtr | RtcpSender::kRtcpCast | 294 transport::kRtcpRr | transport::kRtcpRrtr | transport::kRtcpCast |
290 RtcpSender::kRtcpReceiverLog, 295 transport::kRtcpReceiverLog,
291 &report_block, 296 &report_block,
292 &rrtr, 297 &rrtr,
293 &cast_message, 298 &cast_message,
294 &event_subscriber); 299 &event_subscriber,
300 kDefaultDelay);
295 301
296 EXPECT_EQ(2, test_transport_.packet_count()); 302 EXPECT_EQ(2, test_transport_.packet_count());
297 303
298 // We expect to see the same packet because we send redundant events. 304 // We expect to see the same packet because we send redundant events.
299 rtcp_sender_->SendRtcpFromRtpReceiver( 305 rtcp_sender_->SendRtcpFromRtpReceiver(
300 RtcpSender::kRtcpRr | RtcpSender::kRtcpRrtr | RtcpSender::kRtcpCast | 306 transport::kRtcpRr | transport::kRtcpRrtr | transport::kRtcpCast |
301 RtcpSender::kRtcpReceiverLog, 307 transport::kRtcpReceiverLog,
302 &report_block, 308 &report_block,
303 &rrtr, 309 &rrtr,
304 &cast_message, 310 &cast_message,
305 &event_subscriber); 311 &event_subscriber,
312 kDefaultDelay);
306 313
307 EXPECT_EQ(3, test_transport_.packet_count()); 314 EXPECT_EQ(3, test_transport_.packet_count());
308 } 315 }
309 316
310 TEST_F(RtcpSenderTest, RtcpReceiverReportWithOversizedFrameLog) { 317 TEST_F(RtcpSenderTest, RtcpReceiverReportWithOversizedFrameLog) {
311 static const uint32 kTimeBaseMs = 12345678; 318 static const uint32 kTimeBaseMs = 12345678;
312 static const uint32 kTimeDelayMs = 10; 319 static const uint32 kTimeDelayMs = 10;
313 320
314 TestRtcpPacketBuilder p; 321 TestRtcpPacketBuilder p;
315 p.AddRr(kSendingSsrc, 1); 322 p.AddRr(kSendingSsrc, 1);
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
353 PacketEvent packet_event; 360 PacketEvent packet_event;
354 packet_event.rtp_timestamp = kRtpTimestamp + 2345; 361 packet_event.rtp_timestamp = kRtpTimestamp + 2345;
355 packet_event.type = kVideoPacketReceived; 362 packet_event.type = kVideoPacketReceived;
356 packet_event.timestamp = testing_clock.NowTicks(); 363 packet_event.timestamp = testing_clock.NowTicks();
357 packet_event.packet_id = kLostPacketId1; 364 packet_event.packet_id = kLostPacketId1;
358 event_subscriber.OnReceivePacketEvent(packet_event); 365 event_subscriber.OnReceivePacketEvent(packet_event);
359 testing_clock.Advance(base::TimeDelta::FromMilliseconds(kTimeDelayMs)); 366 testing_clock.Advance(base::TimeDelta::FromMilliseconds(kTimeDelayMs));
360 } 367 }
361 368
362 rtcp_sender_->SendRtcpFromRtpReceiver( 369 rtcp_sender_->SendRtcpFromRtpReceiver(
363 RtcpSender::kRtcpRr | RtcpSender::kRtcpReceiverLog, 370 transport::kRtcpRr | transport::kRtcpReceiverLog,
364 &report_block, 371 &report_block,
365 NULL, 372 NULL,
366 NULL, 373 NULL,
367 &event_subscriber); 374 &event_subscriber,
375 kDefaultDelay);
368 376
369 EXPECT_EQ(1, test_transport_.packet_count()); 377 EXPECT_EQ(1, test_transport_.packet_count());
370 } 378 }
371 379
372 TEST_F(RtcpSenderTest, RtcpReceiverReportWithTooManyLogFrames) { 380 TEST_F(RtcpSenderTest, RtcpReceiverReportWithTooManyLogFrames) {
373 static const uint32 kTimeBaseMs = 12345678; 381 static const uint32 kTimeBaseMs = 12345678;
374 static const uint32 kTimeDelayMs = 10; 382 static const uint32 kTimeDelayMs = 10;
375 383
376 TestRtcpPacketBuilder p; 384 TestRtcpPacketBuilder p;
377 p.AddRr(kSendingSsrc, 1); 385 p.AddRr(kSendingSsrc, 1);
(...skipping 28 matching lines...) Expand all
406 for (size_t i = 0; i < kRtcpMaxReceiverLogMessages; ++i) { 414 for (size_t i = 0; i < kRtcpMaxReceiverLogMessages; ++i) {
407 FrameEvent frame_event; 415 FrameEvent frame_event;
408 frame_event.rtp_timestamp = kRtpTimestamp + static_cast<int>(i); 416 frame_event.rtp_timestamp = kRtpTimestamp + static_cast<int>(i);
409 frame_event.type = media::cast::kVideoAckSent; 417 frame_event.type = media::cast::kVideoAckSent;
410 frame_event.timestamp = testing_clock.NowTicks(); 418 frame_event.timestamp = testing_clock.NowTicks();
411 event_subscriber.OnReceiveFrameEvent(frame_event); 419 event_subscriber.OnReceiveFrameEvent(frame_event);
412 testing_clock.Advance(base::TimeDelta::FromMilliseconds(kTimeDelayMs)); 420 testing_clock.Advance(base::TimeDelta::FromMilliseconds(kTimeDelayMs));
413 } 421 }
414 422
415 rtcp_sender_->SendRtcpFromRtpReceiver( 423 rtcp_sender_->SendRtcpFromRtpReceiver(
416 RtcpSender::kRtcpRr | RtcpSender::kRtcpReceiverLog, 424 transport::kRtcpRr | transport::kRtcpReceiverLog,
417 &report_block, 425 &report_block,
418 NULL, 426 NULL,
419 NULL, 427 NULL,
420 &event_subscriber); 428 &event_subscriber,
429 kDefaultDelay);
421 430
422 EXPECT_EQ(1, test_transport_.packet_count()); 431 EXPECT_EQ(1, test_transport_.packet_count());
423 } 432 }
424 433
425 TEST_F(RtcpSenderTest, RtcpReceiverReportWithOldLogFrames) { 434 TEST_F(RtcpSenderTest, RtcpReceiverReportWithOldLogFrames) {
426 static const uint32 kTimeBaseMs = 12345678; 435 static const uint32 kTimeBaseMs = 12345678;
427 436
428 TestRtcpPacketBuilder p; 437 TestRtcpPacketBuilder p;
429 p.AddRr(kSendingSsrc, 1); 438 p.AddRr(kSendingSsrc, 1);
430 p.AddRb(kMediaSsrc); 439 p.AddRb(kMediaSsrc);
(...skipping 22 matching lines...) Expand all
453 FrameEvent frame_event; 462 FrameEvent frame_event;
454 frame_event.rtp_timestamp = kRtpTimestamp; 463 frame_event.rtp_timestamp = kRtpTimestamp;
455 frame_event.type = media::cast::kVideoAckSent; 464 frame_event.type = media::cast::kVideoAckSent;
456 frame_event.timestamp = testing_clock.NowTicks(); 465 frame_event.timestamp = testing_clock.NowTicks();
457 event_subscriber.OnReceiveFrameEvent(frame_event); 466 event_subscriber.OnReceiveFrameEvent(frame_event);
458 testing_clock.Advance( 467 testing_clock.Advance(
459 base::TimeDelta::FromMilliseconds(kTimeBetweenEventsMs)); 468 base::TimeDelta::FromMilliseconds(kTimeBetweenEventsMs));
460 } 469 }
461 470
462 rtcp_sender_->SendRtcpFromRtpReceiver( 471 rtcp_sender_->SendRtcpFromRtpReceiver(
463 RtcpSender::kRtcpRr | RtcpSender::kRtcpReceiverLog, 472 transport::kRtcpRr | transport::kRtcpReceiverLog,
464 &report_block, 473 &report_block,
465 NULL, 474 NULL,
466 NULL, 475 NULL,
467 &event_subscriber); 476 &event_subscriber,
477 kDefaultDelay);
468 478
469 EXPECT_EQ(1, test_transport_.packet_count()); 479 EXPECT_EQ(1, test_transport_.packet_count());
470 } 480 }
471 481
472 } // namespace cast 482 } // namespace cast
473 } // namespace media 483 } // namespace media
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698