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

Side by Side Diff: media/cast/net/rtcp/rtcp_builder_unittest.cc

Issue 1709863002: Add Cast PLI support on sender side. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Address dcheng's comments. Created 4 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
« no previous file with comments | « media/cast/net/rtcp/rtcp_builder.cc ('k') | media/cast/net/rtcp/rtcp_defines.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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 <stddef.h> 5 #include <stddef.h>
6 #include <stdint.h> 6 #include <stdint.h>
7 7
8 #include "base/macros.h" 8 #include "base/macros.h"
9 #include "base/memory/scoped_ptr.h" 9 #include "base/memory/scoped_ptr.h"
10 #include "base/test/simple_test_tick_clock.h" 10 #include "base/test/simple_test_tick_clock.h"
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after
66 } 66 }
67 67
68 static RtpTimeTicks test_rtp_timestamp() { 68 static RtpTimeTicks test_rtp_timestamp() {
69 return RtpTimeTicks().Expand(kRtpTimestamp); 69 return RtpTimeTicks().Expand(kRtpTimestamp);
70 } 70 }
71 71
72 PacketRef BuildRtcpFromReceiver( 72 PacketRef BuildRtcpFromReceiver(
73 const RtcpReportBlock* report_block, 73 const RtcpReportBlock* report_block,
74 const RtcpReceiverReferenceTimeReport* rrtr, 74 const RtcpReceiverReferenceTimeReport* rrtr,
75 const RtcpCastMessage* cast_message, 75 const RtcpCastMessage* cast_message,
76 const RtcpPliMessage* pli_message,
76 const ReceiverRtcpEventSubscriber::RtcpEvents* rtcp_events, 77 const ReceiverRtcpEventSubscriber::RtcpEvents* rtcp_events,
77 base::TimeDelta target_delay) { 78 base::TimeDelta target_delay) {
78 DCHECK(rtcp_builder_); 79 DCHECK(rtcp_builder_);
79 80
80 rtcp_builder_->Start(); 81 rtcp_builder_->Start();
81 if (report_block) 82 if (report_block)
82 rtcp_builder_->AddRR(report_block); 83 rtcp_builder_->AddRR(report_block);
83 if (rrtr) 84 if (rrtr)
84 rtcp_builder_->AddRrtr(*rrtr); 85 rtcp_builder_->AddRrtr(*rrtr);
85 if (cast_message) 86 if (cast_message)
86 rtcp_builder_->AddCast(*cast_message, target_delay); 87 rtcp_builder_->AddCast(*cast_message, target_delay);
88 if (pli_message)
89 rtcp_builder_->AddPli(*pli_message);
87 if (rtcp_events) 90 if (rtcp_events)
88 rtcp_builder_->AddReceiverLog(*rtcp_events); 91 rtcp_builder_->AddReceiverLog(*rtcp_events);
89 return rtcp_builder_->Finish(); 92 return rtcp_builder_->Finish();
90 } 93 }
91 94
92 scoped_ptr<RtcpBuilder> rtcp_builder_; 95 scoped_ptr<RtcpBuilder> rtcp_builder_;
93 96
94 DISALLOW_COPY_AND_ASSIGN(RtcpBuilderTest); 97 DISALLOW_COPY_AND_ASSIGN(RtcpBuilderTest);
95 }; 98 };
96 99
97 TEST_F(RtcpBuilderTest, RtcpReceiverReport) { 100 TEST_F(RtcpBuilderTest, RtcpReceiverReport) {
98 // Receiver report with report block. 101 // Receiver report with report block.
99 TestRtcpPacketBuilder p2; 102 TestRtcpPacketBuilder p2;
100 p2.AddRr(kSendingSsrc, 1); 103 p2.AddRr(kSendingSsrc, 1);
101 p2.AddRb(kMediaSsrc); 104 p2.AddRb(kMediaSsrc);
102 105
103 RtcpReportBlock report_block = GetReportBlock(); 106 RtcpReportBlock report_block = GetReportBlock();
104 107
105 ExpectPacketEQ( 108 ExpectPacketEQ(p2.GetPacket(),
106 p2.GetPacket(), 109 BuildRtcpFromReceiver(&report_block, nullptr, nullptr, nullptr,
107 BuildRtcpFromReceiver(&report_block, NULL, NULL, NULL, kDefaultDelay)); 110 nullptr, kDefaultDelay));
108 } 111 }
109 112
110 TEST_F(RtcpBuilderTest, RtcpReceiverReportWithRrtr) { 113 TEST_F(RtcpBuilderTest, RtcpReceiverReportWithRrtr) {
111 // Receiver report with report block. 114 // Receiver report with report block.
112 TestRtcpPacketBuilder p; 115 TestRtcpPacketBuilder p;
113 p.AddRr(kSendingSsrc, 1); 116 p.AddRr(kSendingSsrc, 1);
114 p.AddRb(kMediaSsrc); 117 p.AddRb(kMediaSsrc);
115 p.AddXrHeader(kSendingSsrc); 118 p.AddXrHeader(kSendingSsrc);
116 p.AddXrRrtrBlock(); 119 p.AddXrRrtrBlock();
117 120
118 RtcpReportBlock report_block = GetReportBlock(); 121 RtcpReportBlock report_block = GetReportBlock();
119 122
120 RtcpReceiverReferenceTimeReport rrtr; 123 RtcpReceiverReferenceTimeReport rrtr;
121 rrtr.ntp_seconds = kNtpHigh; 124 rrtr.ntp_seconds = kNtpHigh;
122 rrtr.ntp_fraction = kNtpLow; 125 rrtr.ntp_fraction = kNtpLow;
123 126
124 ExpectPacketEQ( 127 ExpectPacketEQ(p.GetPacket(),
125 p.GetPacket(), 128 BuildRtcpFromReceiver(&report_block, &rrtr, nullptr, nullptr,
126 BuildRtcpFromReceiver(&report_block, &rrtr, NULL, NULL, kDefaultDelay)); 129 nullptr, kDefaultDelay));
127 } 130 }
128 131
129 TEST_F(RtcpBuilderTest, RtcpReceiverReportWithCast) { 132 TEST_F(RtcpBuilderTest, RtcpReceiverReportWithCast) {
130 // Receiver report with report block. 133 // Receiver report with report block.
131 TestRtcpPacketBuilder p; 134 TestRtcpPacketBuilder p;
132 p.AddRr(kSendingSsrc, 1); 135 p.AddRr(kSendingSsrc, 1);
133 p.AddRb(kMediaSsrc); 136 p.AddRb(kMediaSsrc);
134 p.AddCast(kSendingSsrc, kMediaSsrc, kDefaultDelay); 137 p.AddCast(kSendingSsrc, kMediaSsrc, kDefaultDelay);
135 138
136 RtcpReportBlock report_block = GetReportBlock(); 139 RtcpReportBlock report_block = GetReportBlock();
137 140
138 RtcpCastMessage cast_message(kMediaSsrc); 141 RtcpCastMessage cast_message(kMediaSsrc);
139 cast_message.ack_frame_id = kAckFrameId; 142 cast_message.ack_frame_id = kAckFrameId;
140 PacketIdSet missing_packets; 143 PacketIdSet missing_packets;
141 cast_message.missing_frames_and_packets[kLostFrameId] = missing_packets; 144 cast_message.missing_frames_and_packets[kLostFrameId] = missing_packets;
142 145
143 missing_packets.insert(kLostPacketId1); 146 missing_packets.insert(kLostPacketId1);
144 missing_packets.insert(kLostPacketId2); 147 missing_packets.insert(kLostPacketId2);
145 missing_packets.insert(kLostPacketId3); 148 missing_packets.insert(kLostPacketId3);
146 cast_message.missing_frames_and_packets[kFrameIdWithLostPackets] = 149 cast_message.missing_frames_and_packets[kFrameIdWithLostPackets] =
147 missing_packets; 150 missing_packets;
148 151
149 ExpectPacketEQ(p.GetPacket(), 152 ExpectPacketEQ(p.GetPacket(),
150 BuildRtcpFromReceiver(&report_block, NULL, &cast_message, NULL, 153 BuildRtcpFromReceiver(&report_block, nullptr, &cast_message,
151 kDefaultDelay)); 154 nullptr, nullptr, kDefaultDelay));
152 } 155 }
153 156
154 TEST_F(RtcpBuilderTest, RtcpReceiverReportWithRrtraAndCastMessage) { 157 TEST_F(RtcpBuilderTest, RtcpReceiverReportWithRrtraAndCastMessage) {
155 TestRtcpPacketBuilder p; 158 TestRtcpPacketBuilder p;
156 p.AddRr(kSendingSsrc, 1); 159 p.AddRr(kSendingSsrc, 1);
157 p.AddRb(kMediaSsrc); 160 p.AddRb(kMediaSsrc);
158 p.AddXrHeader(kSendingSsrc); 161 p.AddXrHeader(kSendingSsrc);
159 p.AddXrRrtrBlock(); 162 p.AddXrRrtrBlock();
160 p.AddCast(kSendingSsrc, kMediaSsrc, kDefaultDelay); 163 p.AddCast(kSendingSsrc, kMediaSsrc, kDefaultDelay);
161 164
162 RtcpReportBlock report_block = GetReportBlock(); 165 RtcpReportBlock report_block = GetReportBlock();
163 166
164 RtcpReceiverReferenceTimeReport rrtr; 167 RtcpReceiverReferenceTimeReport rrtr;
165 rrtr.ntp_seconds = kNtpHigh; 168 rrtr.ntp_seconds = kNtpHigh;
166 rrtr.ntp_fraction = kNtpLow; 169 rrtr.ntp_fraction = kNtpLow;
167 170
168 RtcpCastMessage cast_message(kMediaSsrc); 171 RtcpCastMessage cast_message(kMediaSsrc);
169 cast_message.ack_frame_id = kAckFrameId; 172 cast_message.ack_frame_id = kAckFrameId;
170 PacketIdSet missing_packets; 173 PacketIdSet missing_packets;
171 cast_message.missing_frames_and_packets[kLostFrameId] = missing_packets; 174 cast_message.missing_frames_and_packets[kLostFrameId] = missing_packets;
172 175
173 missing_packets.insert(kLostPacketId1); 176 missing_packets.insert(kLostPacketId1);
174 missing_packets.insert(kLostPacketId2); 177 missing_packets.insert(kLostPacketId2);
175 missing_packets.insert(kLostPacketId3); 178 missing_packets.insert(kLostPacketId3);
176 cast_message.missing_frames_and_packets[kFrameIdWithLostPackets] = 179 cast_message.missing_frames_and_packets[kFrameIdWithLostPackets] =
177 missing_packets; 180 missing_packets;
178 181
179 ExpectPacketEQ(p.GetPacket(), 182 ExpectPacketEQ(p.GetPacket(),
180 BuildRtcpFromReceiver(&report_block, &rrtr, &cast_message, 183 BuildRtcpFromReceiver(&report_block, &rrtr, &cast_message,
181 NULL, kDefaultDelay)); 184 nullptr, nullptr, kDefaultDelay));
182 } 185 }
183 186
184 TEST_F(RtcpBuilderTest, RtcpReceiverReportWithRrtrCastMessageAndLog) { 187 TEST_F(RtcpBuilderTest, RtcpReceiverReportWithRrtrCastMessageAndLog) {
185 static const uint32_t kTimeBaseMs = 12345678; 188 static const uint32_t kTimeBaseMs = 12345678;
186 static const uint32_t kTimeDelayMs = 10; 189 static const uint32_t kTimeDelayMs = 10;
187 190
188 TestRtcpPacketBuilder p; 191 TestRtcpPacketBuilder p;
189 p.AddRr(kSendingSsrc, 1); 192 p.AddRr(kSendingSsrc, 1);
190 p.AddRb(kMediaSsrc); 193 p.AddRb(kMediaSsrc);
191 p.AddXrHeader(kSendingSsrc); 194 p.AddXrHeader(kSendingSsrc);
(...skipping 15 matching lines...) Expand all
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 ReceiverRtcpEventSubscriber event_subscriber(500, VIDEO_EVENT); 215 ReceiverRtcpEventSubscriber event_subscriber(500, VIDEO_EVENT);
213 ReceiverRtcpEventSubscriber::RtcpEvents rtcp_events; 216 ReceiverRtcpEventSubscriber::RtcpEvents rtcp_events;
214 217
215 ExpectPacketEQ(p.GetPacket(), 218 ExpectPacketEQ(p.GetPacket(),
216 BuildRtcpFromReceiver(&report_block, &rrtr, &cast_message, 219 BuildRtcpFromReceiver(&report_block, &rrtr, &cast_message,
217 &rtcp_events, kDefaultDelay)); 220 nullptr, &rtcp_events, kDefaultDelay));
218 221
219 base::SimpleTestTickClock testing_clock; 222 base::SimpleTestTickClock testing_clock;
220 testing_clock.Advance(base::TimeDelta::FromMilliseconds(kTimeBaseMs)); 223 testing_clock.Advance(base::TimeDelta::FromMilliseconds(kTimeBaseMs));
221 224
222 p.AddReceiverLog(kSendingSsrc); 225 p.AddReceiverLog(kSendingSsrc);
223 p.AddReceiverFrameLog(test_rtp_timestamp().lower_32_bits(), 2, kTimeBaseMs); 226 p.AddReceiverFrameLog(test_rtp_timestamp().lower_32_bits(), 2, kTimeBaseMs);
224 p.AddReceiverEventLog(0, FRAME_ACK_SENT, 0); 227 p.AddReceiverEventLog(0, FRAME_ACK_SENT, 0);
225 p.AddReceiverEventLog(kLostPacketId1, PACKET_RECEIVED, kTimeDelayMs); 228 p.AddReceiverEventLog(kLostPacketId1, PACKET_RECEIVED, kTimeDelayMs);
226 229
227 FrameEvent frame_event; 230 FrameEvent frame_event;
228 frame_event.rtp_timestamp = test_rtp_timestamp(); 231 frame_event.rtp_timestamp = test_rtp_timestamp();
229 frame_event.type = FRAME_ACK_SENT; 232 frame_event.type = FRAME_ACK_SENT;
230 frame_event.media_type = VIDEO_EVENT; 233 frame_event.media_type = VIDEO_EVENT;
231 frame_event.timestamp = testing_clock.NowTicks(); 234 frame_event.timestamp = testing_clock.NowTicks();
232 event_subscriber.OnReceiveFrameEvent(frame_event); 235 event_subscriber.OnReceiveFrameEvent(frame_event);
233 testing_clock.Advance(base::TimeDelta::FromMilliseconds(kTimeDelayMs)); 236 testing_clock.Advance(base::TimeDelta::FromMilliseconds(kTimeDelayMs));
234 237
235 PacketEvent packet_event; 238 PacketEvent packet_event;
236 packet_event.rtp_timestamp = test_rtp_timestamp(); 239 packet_event.rtp_timestamp = test_rtp_timestamp();
237 packet_event.type = PACKET_RECEIVED; 240 packet_event.type = PACKET_RECEIVED;
238 packet_event.media_type = VIDEO_EVENT; 241 packet_event.media_type = VIDEO_EVENT;
239 packet_event.timestamp = testing_clock.NowTicks(); 242 packet_event.timestamp = testing_clock.NowTicks();
240 packet_event.packet_id = kLostPacketId1; 243 packet_event.packet_id = kLostPacketId1;
241 event_subscriber.OnReceivePacketEvent(packet_event); 244 event_subscriber.OnReceivePacketEvent(packet_event);
242 event_subscriber.GetRtcpEventsWithRedundancy(&rtcp_events); 245 event_subscriber.GetRtcpEventsWithRedundancy(&rtcp_events);
243 EXPECT_EQ(2u, rtcp_events.size()); 246 EXPECT_EQ(2u, rtcp_events.size());
244 247
245 ExpectPacketEQ(p.GetPacket(), 248 ExpectPacketEQ(p.GetPacket(),
246 BuildRtcpFromReceiver(&report_block, &rrtr, &cast_message, 249 BuildRtcpFromReceiver(&report_block, &rrtr, &cast_message,
247 &rtcp_events, kDefaultDelay)); 250 nullptr, &rtcp_events, kDefaultDelay));
248 } 251 }
249 252
250 TEST_F(RtcpBuilderTest, RtcpReceiverReportWithOversizedFrameLog) { 253 TEST_F(RtcpBuilderTest, RtcpReceiverReportWithOversizedFrameLog) {
251 static const uint32_t kTimeBaseMs = 12345678; 254 static const uint32_t kTimeBaseMs = 12345678;
252 static const uint32_t kTimeDelayMs = 10; 255 static const uint32_t kTimeDelayMs = 10;
253 256
254 TestRtcpPacketBuilder p; 257 TestRtcpPacketBuilder p;
255 p.AddRr(kSendingSsrc, 1); 258 p.AddRr(kSendingSsrc, 1);
256 p.AddRb(kMediaSsrc); 259 p.AddRb(kMediaSsrc);
257 260
(...skipping 28 matching lines...) Expand all
286 packet_event.timestamp = testing_clock.NowTicks(); 289 packet_event.timestamp = testing_clock.NowTicks();
287 packet_event.packet_id = kLostPacketId1; 290 packet_event.packet_id = kLostPacketId1;
288 event_subscriber.OnReceivePacketEvent(packet_event); 291 event_subscriber.OnReceivePacketEvent(packet_event);
289 testing_clock.Advance(base::TimeDelta::FromMilliseconds(kTimeDelayMs)); 292 testing_clock.Advance(base::TimeDelta::FromMilliseconds(kTimeDelayMs));
290 } 293 }
291 294
292 ReceiverRtcpEventSubscriber::RtcpEvents rtcp_events; 295 ReceiverRtcpEventSubscriber::RtcpEvents rtcp_events;
293 event_subscriber.GetRtcpEventsWithRedundancy(&rtcp_events); 296 event_subscriber.GetRtcpEventsWithRedundancy(&rtcp_events);
294 297
295 ExpectPacketEQ(p.GetPacket(), 298 ExpectPacketEQ(p.GetPacket(),
296 BuildRtcpFromReceiver(&report_block, NULL, NULL, &rtcp_events, 299 BuildRtcpFromReceiver(&report_block, nullptr, nullptr, nullptr,
297 kDefaultDelay)); 300 &rtcp_events, kDefaultDelay));
298 } 301 }
299 302
300 TEST_F(RtcpBuilderTest, RtcpReceiverReportWithTooManyLogFrames) { 303 TEST_F(RtcpBuilderTest, RtcpReceiverReportWithTooManyLogFrames) {
301 static const uint32_t kTimeBaseMs = 12345678; 304 static const uint32_t kTimeBaseMs = 12345678;
302 static const uint32_t kTimeDelayMs = 10; 305 static const uint32_t kTimeDelayMs = 10;
303 306
304 TestRtcpPacketBuilder p; 307 TestRtcpPacketBuilder p;
305 p.AddRr(kSendingSsrc, 1); 308 p.AddRr(kSendingSsrc, 1);
306 p.AddRb(kMediaSsrc); 309 p.AddRb(kMediaSsrc);
307 310
(...skipping 23 matching lines...) Expand all
331 frame_event.media_type = VIDEO_EVENT; 334 frame_event.media_type = VIDEO_EVENT;
332 frame_event.timestamp = testing_clock.NowTicks(); 335 frame_event.timestamp = testing_clock.NowTicks();
333 event_subscriber.OnReceiveFrameEvent(frame_event); 336 event_subscriber.OnReceiveFrameEvent(frame_event);
334 testing_clock.Advance(base::TimeDelta::FromMilliseconds(kTimeDelayMs)); 337 testing_clock.Advance(base::TimeDelta::FromMilliseconds(kTimeDelayMs));
335 } 338 }
336 339
337 ReceiverRtcpEventSubscriber::RtcpEvents rtcp_events; 340 ReceiverRtcpEventSubscriber::RtcpEvents rtcp_events;
338 event_subscriber.GetRtcpEventsWithRedundancy(&rtcp_events); 341 event_subscriber.GetRtcpEventsWithRedundancy(&rtcp_events);
339 342
340 ExpectPacketEQ(p.GetPacket(), 343 ExpectPacketEQ(p.GetPacket(),
341 BuildRtcpFromReceiver(&report_block, NULL, NULL, &rtcp_events, 344 BuildRtcpFromReceiver(&report_block, nullptr, nullptr, nullptr,
342 kDefaultDelay)); 345 &rtcp_events, kDefaultDelay));
343 } 346 }
344 347
345 TEST_F(RtcpBuilderTest, RtcpReceiverReportWithOldLogFrames) { 348 TEST_F(RtcpBuilderTest, RtcpReceiverReportWithOldLogFrames) {
346 static const uint32_t kTimeBaseMs = 12345678; 349 static const uint32_t kTimeBaseMs = 12345678;
347 350
348 TestRtcpPacketBuilder p; 351 TestRtcpPacketBuilder p;
349 p.AddRr(kSendingSsrc, 1); 352 p.AddRr(kSendingSsrc, 1);
350 p.AddRb(kMediaSsrc); 353 p.AddRb(kMediaSsrc);
351 354
352 RtcpReportBlock report_block = GetReportBlock(); 355 RtcpReportBlock report_block = GetReportBlock();
(...skipping 22 matching lines...) Expand all
375 frame_event.timestamp = testing_clock.NowTicks(); 378 frame_event.timestamp = testing_clock.NowTicks();
376 event_subscriber.OnReceiveFrameEvent(frame_event); 379 event_subscriber.OnReceiveFrameEvent(frame_event);
377 testing_clock.Advance( 380 testing_clock.Advance(
378 base::TimeDelta::FromMilliseconds(kTimeBetweenEventsMs)); 381 base::TimeDelta::FromMilliseconds(kTimeBetweenEventsMs));
379 } 382 }
380 383
381 ReceiverRtcpEventSubscriber::RtcpEvents rtcp_events; 384 ReceiverRtcpEventSubscriber::RtcpEvents rtcp_events;
382 event_subscriber.GetRtcpEventsWithRedundancy(&rtcp_events); 385 event_subscriber.GetRtcpEventsWithRedundancy(&rtcp_events);
383 386
384 ExpectPacketEQ(p.GetPacket(), 387 ExpectPacketEQ(p.GetPacket(),
385 BuildRtcpFromReceiver(&report_block, NULL, NULL, &rtcp_events, 388 BuildRtcpFromReceiver(&report_block, nullptr, nullptr, nullptr,
386 kDefaultDelay)); 389 &rtcp_events, kDefaultDelay));
387 } 390 }
388 391
389 TEST_F(RtcpBuilderTest, RtcpReceiverReportRedundancy) { 392 TEST_F(RtcpBuilderTest, RtcpReceiverReportRedundancy) {
390 uint32_t time_base_ms = 12345678; 393 uint32_t time_base_ms = 12345678;
391 int kTimeBetweenEventsMs = 10; 394 int kTimeBetweenEventsMs = 10;
392 395
393 RtcpReportBlock report_block = GetReportBlock(); 396 RtcpReportBlock report_block = GetReportBlock();
394 397
395 base::SimpleTestTickClock testing_clock; 398 base::SimpleTestTickClock testing_clock;
396 testing_clock.Advance(base::TimeDelta::FromMilliseconds(time_base_ms)); 399 testing_clock.Advance(base::TimeDelta::FromMilliseconds(time_base_ms));
(...skipping 22 matching lines...) Expand all
419 frame_event.rtp_timestamp = test_rtp_timestamp(); 422 frame_event.rtp_timestamp = test_rtp_timestamp();
420 frame_event.type = FRAME_ACK_SENT; 423 frame_event.type = FRAME_ACK_SENT;
421 frame_event.media_type = VIDEO_EVENT; 424 frame_event.media_type = VIDEO_EVENT;
422 frame_event.timestamp = testing_clock.NowTicks(); 425 frame_event.timestamp = testing_clock.NowTicks();
423 event_subscriber.OnReceiveFrameEvent(frame_event); 426 event_subscriber.OnReceiveFrameEvent(frame_event);
424 427
425 ReceiverRtcpEventSubscriber::RtcpEvents rtcp_events; 428 ReceiverRtcpEventSubscriber::RtcpEvents rtcp_events;
426 event_subscriber.GetRtcpEventsWithRedundancy(&rtcp_events); 429 event_subscriber.GetRtcpEventsWithRedundancy(&rtcp_events);
427 430
428 ExpectPacketEQ(p.GetPacket(), 431 ExpectPacketEQ(p.GetPacket(),
429 BuildRtcpFromReceiver(&report_block, NULL, NULL, 432 BuildRtcpFromReceiver(&report_block, nullptr, nullptr,
430 &rtcp_events, kDefaultDelay)); 433 nullptr, &rtcp_events, kDefaultDelay));
431 434
432 testing_clock.Advance( 435 testing_clock.Advance(
433 base::TimeDelta::FromMilliseconds(kTimeBetweenEventsMs)); 436 base::TimeDelta::FromMilliseconds(kTimeBetweenEventsMs));
434 time_base_ms += kTimeBetweenEventsMs; 437 time_base_ms += kTimeBetweenEventsMs;
435 } 438 }
436 } 439 }
437 440
438 TEST_F(RtcpBuilderTest, RtcpSenderReport) { 441 TEST_F(RtcpBuilderTest, RtcpSenderReport) {
439 RtcpSenderInfo sender_info; 442 RtcpSenderInfo sender_info;
440 sender_info.ntp_seconds = kNtpHigh; 443 sender_info.ntp_seconds = kNtpHigh;
441 sender_info.ntp_fraction = kNtpLow; 444 sender_info.ntp_fraction = kNtpLow;
442 sender_info.rtp_timestamp = test_rtp_timestamp(); 445 sender_info.rtp_timestamp = test_rtp_timestamp();
443 sender_info.send_packet_count = kSendPacketCount; 446 sender_info.send_packet_count = kSendPacketCount;
444 sender_info.send_octet_count = kSendOctetCount; 447 sender_info.send_octet_count = kSendOctetCount;
445 448
446 // Sender report. 449 // Sender report.
447 TestRtcpPacketBuilder p; 450 TestRtcpPacketBuilder p;
448 p.AddSr(kSendingSsrc, 0); 451 p.AddSr(kSendingSsrc, 0);
449 452
450 ExpectPacketEQ(p.GetPacket(), 453 ExpectPacketEQ(p.GetPacket(),
451 rtcp_builder_->BuildRtcpFromSender(sender_info)); 454 rtcp_builder_->BuildRtcpFromSender(sender_info));
452 } 455 }
453 456
454 } // namespace cast 457 } // namespace cast
455 } // namespace media 458 } // namespace media
OLDNEW
« no previous file with comments | « media/cast/net/rtcp/rtcp_builder.cc ('k') | media/cast/net/rtcp/rtcp_defines.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698