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

Side by Side Diff: media/cast/framer/framer_unittest.cc

Issue 109413004: Cast:Adding cast_transport_config and cleaning up (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: nits Created 6 years, 11 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
« no previous file with comments | « media/cast/framer/framer.cc ('k') | media/cast/rtcp/rtcp.cc » ('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 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/framer/framer.h" 6 #include "media/cast/framer/framer.h"
7 #include "media/cast/rtp_receiver/mock_rtp_payload_feedback.h" 7 #include "media/cast/rtp_receiver/mock_rtp_payload_feedback.h"
8 #include "testing/gtest/include/gtest/gtest.h" 8 #include "testing/gtest/include/gtest/gtest.h"
9 9
10 namespace media { 10 namespace media {
11 namespace cast { 11 namespace cast {
12 12
13 class FramerTest : public ::testing::Test { 13 class FramerTest : public ::testing::Test {
14 protected: 14 protected:
15 FramerTest() 15 FramerTest()
16 : mock_rtp_payload_feedback_(), 16 : mock_rtp_payload_feedback_(),
17 framer_(&testing_clock_, &mock_rtp_payload_feedback_, 0, true, 0) { 17 framer_(&testing_clock_, &mock_rtp_payload_feedback_, 0, true, 0) {
18 } 18 }
19 19
20 virtual ~FramerTest() {} 20 virtual ~FramerTest() {}
21 21
22 virtual void SetUp() OVERRIDE { 22 virtual void SetUp() OVERRIDE {
23 // Build a default one packet frame - populate webrtc header. 23 // Build a default one packet frame - populate webrtc header.
24 rtp_header_.is_key_frame = false; 24 rtp_header_.is_key_frame = false;
25 rtp_header_.frame_id = 0; 25 rtp_header_.frame_id = 0;
26 rtp_header_.packet_id = 0; 26 rtp_header_.packet_id = 0;
27 rtp_header_.max_packet_id = 0; 27 rtp_header_.max_packet_id = 0;
28 rtp_header_.is_reference = false; 28 rtp_header_.is_reference = false;
29 rtp_header_.reference_frame_id = 0; 29 rtp_header_.reference_frame_id = 0;
30 payload_.assign(kIpPacketSize, 0); 30 payload_.assign(kMaxIpPacketSize, 0);
31 31
32 EXPECT_CALL(mock_rtp_payload_feedback_, 32 EXPECT_CALL(mock_rtp_payload_feedback_,
33 CastFeedback(testing::_)).WillRepeatedly(testing::Return()); 33 CastFeedback(testing::_)).WillRepeatedly(testing::Return());
34 } 34 }
35 35
36 std::vector<uint8> payload_; 36 std::vector<uint8> payload_;
37 RtpCastHeader rtp_header_; 37 RtpCastHeader rtp_header_;
38 MockRtpPayloadFeedback mock_rtp_payload_feedback_; 38 MockRtpPayloadFeedback mock_rtp_payload_feedback_;
39 Framer framer_; 39 Framer framer_;
40 base::SimpleTestTickClock testing_clock_; 40 base::SimpleTestTickClock testing_clock_;
41 }; 41 };
42 42
43 43
44 TEST_F(FramerTest, EmptyState) { 44 TEST_F(FramerTest, EmptyState) {
45 EncodedVideoFrame frame; 45 transport::EncodedVideoFrame frame;
46 uint32 rtp_timestamp; 46 uint32 rtp_timestamp;
47 bool next_frame = false; 47 bool next_frame = false;
48 EXPECT_FALSE(framer_.GetEncodedVideoFrame(&frame, &rtp_timestamp, 48 EXPECT_FALSE(framer_.GetEncodedVideoFrame(&frame, &rtp_timestamp,
49 &next_frame)); 49 &next_frame));
50 } 50 }
51 51
52 TEST_F(FramerTest, AlwaysStartWithKey) { 52 TEST_F(FramerTest, AlwaysStartWithKey) {
53 EncodedVideoFrame frame; 53 transport::EncodedVideoFrame frame;
54 uint32 rtp_timestamp; 54 uint32 rtp_timestamp;
55 bool next_frame = false; 55 bool next_frame = false;
56 bool complete = false; 56 bool complete = false;
57 bool duplicate = false; 57 bool duplicate = false;
58 58
59 // Insert non key first frame. 59 // Insert non key first frame.
60 complete = framer_.InsertPacket(payload_.data(), payload_.size(), rtp_header_, 60 complete = framer_.InsertPacket(payload_.data(), payload_.size(), rtp_header_,
61 &duplicate); 61 &duplicate);
62 EXPECT_TRUE(complete); 62 EXPECT_TRUE(complete);
63 EXPECT_FALSE(framer_.GetEncodedVideoFrame(&frame, &rtp_timestamp, 63 EXPECT_FALSE(framer_.GetEncodedVideoFrame(&frame, &rtp_timestamp,
64 &next_frame)); 64 &next_frame));
65 rtp_header_.frame_id = 1; 65 rtp_header_.frame_id = 1;
66 rtp_header_.is_key_frame = true; 66 rtp_header_.is_key_frame = true;
67 complete = framer_.InsertPacket(payload_.data(), payload_.size(), rtp_header_, 67 complete = framer_.InsertPacket(payload_.data(), payload_.size(), rtp_header_,
68 &duplicate); 68 &duplicate);
69 EXPECT_TRUE(complete); 69 EXPECT_TRUE(complete);
70 EXPECT_TRUE(framer_.GetEncodedVideoFrame(&frame, &rtp_timestamp, 70 EXPECT_TRUE(framer_.GetEncodedVideoFrame(&frame, &rtp_timestamp,
71 &next_frame)); 71 &next_frame));
72 EXPECT_TRUE(next_frame); 72 EXPECT_TRUE(next_frame);
73 EXPECT_EQ(1u, frame.frame_id); 73 EXPECT_EQ(1u, frame.frame_id);
74 EXPECT_TRUE(frame.key_frame); 74 EXPECT_TRUE(frame.key_frame);
75 framer_.ReleaseFrame(frame.frame_id); 75 framer_.ReleaseFrame(frame.frame_id);
76 } 76 }
77 77
78 TEST_F(FramerTest, CompleteFrame) { 78 TEST_F(FramerTest, CompleteFrame) {
79 EncodedVideoFrame frame; 79 transport::EncodedVideoFrame frame;
80 uint32 rtp_timestamp; 80 uint32 rtp_timestamp;
81 bool next_frame = false; 81 bool next_frame = false;
82 bool complete = false; 82 bool complete = false;
83 bool duplicate = false; 83 bool duplicate = false;
84 84
85 // Start with a complete key frame. 85 // Start with a complete key frame.
86 rtp_header_.is_key_frame = true; 86 rtp_header_.is_key_frame = true;
87 complete = framer_.InsertPacket(payload_.data(), payload_.size(), rtp_header_, 87 complete = framer_.InsertPacket(payload_.data(), payload_.size(), rtp_header_,
88 &duplicate); 88 &duplicate);
89 EXPECT_TRUE(complete); 89 EXPECT_TRUE(complete);
(...skipping 18 matching lines...) Expand all
108 ++rtp_header_.frame_id; 108 ++rtp_header_.frame_id;
109 rtp_header_.max_packet_id = 0; 109 rtp_header_.max_packet_id = 0;
110 complete = framer_.InsertPacket(payload_.data(), payload_.size(), rtp_header_, 110 complete = framer_.InsertPacket(payload_.data(), payload_.size(), rtp_header_,
111 &duplicate); 111 &duplicate);
112 EXPECT_TRUE(complete); 112 EXPECT_TRUE(complete);
113 EXPECT_FALSE(framer_.GetEncodedVideoFrame(&frame, &rtp_timestamp, 113 EXPECT_FALSE(framer_.GetEncodedVideoFrame(&frame, &rtp_timestamp,
114 &next_frame)); 114 &next_frame));
115 } 115 }
116 116
117 TEST_F(FramerTest, DuplicatePackets) { 117 TEST_F(FramerTest, DuplicatePackets) {
118 EncodedVideoFrame frame; 118 transport::EncodedVideoFrame frame;
119 uint32 rtp_timestamp; 119 uint32 rtp_timestamp;
120 bool next_frame = false; 120 bool next_frame = false;
121 bool complete = false; 121 bool complete = false;
122 bool duplicate = false; 122 bool duplicate = false;
123 123
124 // Start with an incomplete key frame. 124 // Start with an incomplete key frame.
125 rtp_header_.is_key_frame = true; 125 rtp_header_.is_key_frame = true;
126 rtp_header_.max_packet_id = 1; 126 rtp_header_.max_packet_id = 1;
127 duplicate = true; 127 duplicate = true;
128 complete = framer_.InsertPacket(payload_.data(), payload_.size(), rtp_header_, 128 complete = framer_.InsertPacket(payload_.data(), payload_.size(), rtp_header_,
(...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after
200 complete = framer_.InsertPacket(payload_.data(), payload_.size(), rtp_header_, 200 complete = framer_.InsertPacket(payload_.data(), payload_.size(), rtp_header_,
201 &duplicate); 201 &duplicate);
202 EXPECT_FALSE(complete); 202 EXPECT_FALSE(complete);
203 EXPECT_TRUE(duplicate); 203 EXPECT_TRUE(duplicate);
204 EXPECT_TRUE(framer_.GetEncodedVideoFrame(&frame, &rtp_timestamp, 204 EXPECT_TRUE(framer_.GetEncodedVideoFrame(&frame, &rtp_timestamp,
205 &next_frame)); 205 &next_frame));
206 EXPECT_EQ(1u, frame.frame_id); 206 EXPECT_EQ(1u, frame.frame_id);
207 } 207 }
208 208
209 TEST_F(FramerTest, ContinuousSequence) { 209 TEST_F(FramerTest, ContinuousSequence) {
210 EncodedVideoFrame frame; 210 transport::EncodedVideoFrame frame;
211 uint32 rtp_timestamp; 211 uint32 rtp_timestamp;
212 bool next_frame = false; 212 bool next_frame = false;
213 bool complete = false; 213 bool complete = false;
214 bool duplicate = false; 214 bool duplicate = false;
215 215
216 // Start with a complete key frame. 216 // Start with a complete key frame.
217 rtp_header_.is_key_frame = true; 217 rtp_header_.is_key_frame = true;
218 complete = framer_.InsertPacket(payload_.data(), payload_.size(), rtp_header_, 218 complete = framer_.InsertPacket(payload_.data(), payload_.size(), rtp_header_,
219 &duplicate); 219 &duplicate);
220 EXPECT_TRUE(complete); 220 EXPECT_TRUE(complete);
221 EXPECT_TRUE(framer_.GetEncodedVideoFrame(&frame, &rtp_timestamp, 221 EXPECT_TRUE(framer_.GetEncodedVideoFrame(&frame, &rtp_timestamp,
222 &next_frame)); 222 &next_frame));
223 EXPECT_TRUE(next_frame); 223 EXPECT_TRUE(next_frame);
224 EXPECT_EQ(0u, frame.frame_id); 224 EXPECT_EQ(0u, frame.frame_id);
225 EXPECT_TRUE(frame.key_frame); 225 EXPECT_TRUE(frame.key_frame);
226 framer_.ReleaseFrame(frame.frame_id); 226 framer_.ReleaseFrame(frame.frame_id);
227 227
228 // Complete - not continuous. 228 // Complete - not continuous.
229 rtp_header_.frame_id = 2; 229 rtp_header_.frame_id = 2;
230 rtp_header_.is_key_frame = false; 230 rtp_header_.is_key_frame = false;
231 complete = framer_.InsertPacket(payload_.data(), payload_.size(), rtp_header_, 231 complete = framer_.InsertPacket(payload_.data(), payload_.size(), rtp_header_,
232 &duplicate); 232 &duplicate);
233 EXPECT_TRUE(complete); 233 EXPECT_TRUE(complete);
234 EXPECT_FALSE(framer_.GetEncodedVideoFrame(&frame, &rtp_timestamp, 234 EXPECT_FALSE(framer_.GetEncodedVideoFrame(&frame, &rtp_timestamp,
235 &next_frame)); 235 &next_frame));
236 } 236 }
237 237
238 TEST_F(FramerTest, Wrap) { 238 TEST_F(FramerTest, Wrap) {
239 // Insert key frame, frame_id = 255 (will jump to that) 239 // Insert key frame, frame_id = 255 (will jump to that)
240 EncodedVideoFrame frame; 240 transport::EncodedVideoFrame frame;
241 uint32 rtp_timestamp; 241 uint32 rtp_timestamp;
242 bool next_frame = false; 242 bool next_frame = false;
243 bool duplicate = false; 243 bool duplicate = false;
244 244
245 // Start with a complete key frame. 245 // Start with a complete key frame.
246 rtp_header_.is_key_frame = true; 246 rtp_header_.is_key_frame = true;
247 rtp_header_.frame_id = 255u; 247 rtp_header_.frame_id = 255u;
248 framer_.InsertPacket(payload_.data(), payload_.size(), rtp_header_, 248 framer_.InsertPacket(payload_.data(), payload_.size(), rtp_header_,
249 &duplicate); 249 &duplicate);
250 EXPECT_TRUE(framer_.GetEncodedVideoFrame(&frame, &rtp_timestamp, 250 EXPECT_TRUE(framer_.GetEncodedVideoFrame(&frame, &rtp_timestamp,
251 &next_frame)); 251 &next_frame));
252 EXPECT_TRUE(next_frame); 252 EXPECT_TRUE(next_frame);
253 EXPECT_EQ(255u, frame.frame_id); 253 EXPECT_EQ(255u, frame.frame_id);
254 framer_.ReleaseFrame(frame.frame_id); 254 framer_.ReleaseFrame(frame.frame_id);
255 255
256 // Insert wrapped delta frame - should be continuous. 256 // Insert wrapped delta frame - should be continuous.
257 rtp_header_.is_key_frame = false; 257 rtp_header_.is_key_frame = false;
258 rtp_header_.frame_id = 256; 258 rtp_header_.frame_id = 256;
259 framer_.InsertPacket(payload_.data(), payload_.size(), rtp_header_, 259 framer_.InsertPacket(payload_.data(), payload_.size(), rtp_header_,
260 &duplicate); 260 &duplicate);
261 EXPECT_TRUE(framer_.GetEncodedVideoFrame(&frame, &rtp_timestamp, 261 EXPECT_TRUE(framer_.GetEncodedVideoFrame(&frame, &rtp_timestamp,
262 &next_frame)); 262 &next_frame));
263 EXPECT_TRUE(next_frame); 263 EXPECT_TRUE(next_frame);
264 EXPECT_EQ(256u, frame.frame_id); 264 EXPECT_EQ(256u, frame.frame_id);
265 framer_.ReleaseFrame(frame.frame_id); 265 framer_.ReleaseFrame(frame.frame_id);
266 } 266 }
267 267
268 TEST_F(FramerTest, Reset) { 268 TEST_F(FramerTest, Reset) {
269 EncodedVideoFrame frame; 269 transport::EncodedVideoFrame frame;
270 uint32 rtp_timestamp; 270 uint32 rtp_timestamp;
271 bool next_frame = false; 271 bool next_frame = false;
272 bool complete = false; 272 bool complete = false;
273 bool duplicate = false; 273 bool duplicate = false;
274 274
275 // Start with a complete key frame. 275 // Start with a complete key frame.
276 rtp_header_.is_key_frame = true; 276 rtp_header_.is_key_frame = true;
277 complete = framer_.InsertPacket(payload_.data(), payload_.size(), rtp_header_, 277 complete = framer_.InsertPacket(payload_.data(), payload_.size(), rtp_header_,
278 &duplicate); 278 &duplicate);
279 EXPECT_TRUE(complete); 279 EXPECT_TRUE(complete);
280 framer_.Reset(); 280 framer_.Reset();
281 EXPECT_FALSE(framer_.GetEncodedVideoFrame(&frame, &rtp_timestamp, 281 EXPECT_FALSE(framer_.GetEncodedVideoFrame(&frame, &rtp_timestamp,
282 &next_frame)); 282 &next_frame));
283 } 283 }
284 284
285 TEST_F(FramerTest, RequireKeyAfterReset) { 285 TEST_F(FramerTest, RequireKeyAfterReset) {
286 EncodedVideoFrame frame; 286 transport::EncodedVideoFrame frame;
287 uint32 rtp_timestamp; 287 uint32 rtp_timestamp;
288 bool next_frame = false; 288 bool next_frame = false;
289 bool duplicate = false; 289 bool duplicate = false;
290 290
291 framer_.Reset(); 291 framer_.Reset();
292 292
293 // Start with a complete key frame. 293 // Start with a complete key frame.
294 rtp_header_.is_key_frame = false; 294 rtp_header_.is_key_frame = false;
295 rtp_header_.frame_id = 0u; 295 rtp_header_.frame_id = 0u;
296 framer_.InsertPacket(payload_.data(), payload_.size(), rtp_header_, 296 framer_.InsertPacket(payload_.data(), payload_.size(), rtp_header_,
297 &duplicate); 297 &duplicate);
298 EXPECT_FALSE(framer_.GetEncodedVideoFrame(&frame, &rtp_timestamp, 298 EXPECT_FALSE(framer_.GetEncodedVideoFrame(&frame, &rtp_timestamp,
299 &next_frame)); 299 &next_frame));
300 rtp_header_.frame_id = 1; 300 rtp_header_.frame_id = 1;
301 rtp_header_.is_key_frame = true; 301 rtp_header_.is_key_frame = true;
302 framer_.InsertPacket(payload_.data(), payload_.size(), rtp_header_, 302 framer_.InsertPacket(payload_.data(), payload_.size(), rtp_header_,
303 &duplicate); 303 &duplicate);
304 EXPECT_TRUE(framer_.GetEncodedVideoFrame(&frame, &rtp_timestamp, 304 EXPECT_TRUE(framer_.GetEncodedVideoFrame(&frame, &rtp_timestamp,
305 &next_frame)); 305 &next_frame));
306 EXPECT_TRUE(next_frame); 306 EXPECT_TRUE(next_frame);
307 } 307 }
308 308
309 TEST_F(FramerTest, BasicNonLastReferenceId) { 309 TEST_F(FramerTest, BasicNonLastReferenceId) {
310 EncodedVideoFrame frame; 310 transport::EncodedVideoFrame frame;
311 uint32 rtp_timestamp; 311 uint32 rtp_timestamp;
312 bool next_frame = false; 312 bool next_frame = false;
313 bool duplicate = false; 313 bool duplicate = false;
314 314
315 rtp_header_.is_key_frame = true; 315 rtp_header_.is_key_frame = true;
316 rtp_header_.frame_id = 0; 316 rtp_header_.frame_id = 0;
317 framer_.InsertPacket(payload_.data(), payload_.size(), rtp_header_, 317 framer_.InsertPacket(payload_.data(), payload_.size(), rtp_header_,
318 &duplicate); 318 &duplicate);
319 319
320 EXPECT_TRUE(framer_.GetEncodedVideoFrame(&frame, &rtp_timestamp, 320 EXPECT_TRUE(framer_.GetEncodedVideoFrame(&frame, &rtp_timestamp,
321 &next_frame)); 321 &next_frame));
322 framer_.ReleaseFrame(frame.frame_id); 322 framer_.ReleaseFrame(frame.frame_id);
323 323
324 rtp_header_.is_key_frame = false; 324 rtp_header_.is_key_frame = false;
325 rtp_header_.is_reference = true; 325 rtp_header_.is_reference = true;
326 rtp_header_.reference_frame_id = 0; 326 rtp_header_.reference_frame_id = 0;
327 rtp_header_.frame_id = 5u; 327 rtp_header_.frame_id = 5u;
328 framer_.InsertPacket(payload_.data(), payload_.size(), rtp_header_, 328 framer_.InsertPacket(payload_.data(), payload_.size(), rtp_header_,
329 &duplicate); 329 &duplicate);
330 330
331 EXPECT_TRUE(framer_.GetEncodedVideoFrame(&frame, &rtp_timestamp, 331 EXPECT_TRUE(framer_.GetEncodedVideoFrame(&frame, &rtp_timestamp,
332 &next_frame)); 332 &next_frame));
333 EXPECT_FALSE(next_frame); 333 EXPECT_FALSE(next_frame);
334 } 334 }
335 335
336 TEST_F(FramerTest, InOrderReferenceFrameSelection) { 336 TEST_F(FramerTest, InOrderReferenceFrameSelection) {
337 // Create pattern: 0, 1, 4, 5. 337 // Create pattern: 0, 1, 4, 5.
338 EncodedVideoFrame frame; 338 transport::EncodedVideoFrame frame;
339 uint32 rtp_timestamp; 339 uint32 rtp_timestamp;
340 bool next_frame = false; 340 bool next_frame = false;
341 bool duplicate = false; 341 bool duplicate = false;
342 342
343 rtp_header_.is_key_frame = true; 343 rtp_header_.is_key_frame = true;
344 rtp_header_.frame_id = 0; 344 rtp_header_.frame_id = 0;
345 framer_.InsertPacket(payload_.data(), payload_.size(), rtp_header_, 345 framer_.InsertPacket(payload_.data(), payload_.size(), rtp_header_,
346 &duplicate); 346 &duplicate);
347 rtp_header_.is_key_frame = false; 347 rtp_header_.is_key_frame = false;
348 rtp_header_.frame_id = 1; 348 rtp_header_.frame_id = 1;
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
388 framer_.InsertPacket(payload_.data(), payload_.size(), rtp_header_, 388 framer_.InsertPacket(payload_.data(), payload_.size(), rtp_header_,
389 &duplicate); 389 &duplicate);
390 EXPECT_TRUE(framer_.GetEncodedVideoFrame(&frame, &rtp_timestamp, 390 EXPECT_TRUE(framer_.GetEncodedVideoFrame(&frame, &rtp_timestamp,
391 &next_frame)); 391 &next_frame));
392 EXPECT_TRUE(next_frame); 392 EXPECT_TRUE(next_frame);
393 EXPECT_EQ(5u, frame.frame_id); 393 EXPECT_EQ(5u, frame.frame_id);
394 } 394 }
395 395
396 TEST_F(FramerTest, AudioWrap) { 396 TEST_F(FramerTest, AudioWrap) {
397 // All audio frames are marked as key frames. 397 // All audio frames are marked as key frames.
398 EncodedAudioFrame frame; 398 transport::EncodedAudioFrame frame;
399 uint32 rtp_timestamp; 399 uint32 rtp_timestamp;
400 bool next_frame = false; 400 bool next_frame = false;
401 bool duplicate = false; 401 bool duplicate = false;
402 402
403 rtp_header_.is_key_frame = true; 403 rtp_header_.is_key_frame = true;
404 rtp_header_.frame_id = 254; 404 rtp_header_.frame_id = 254;
405 405
406 framer_.InsertPacket(payload_.data(), payload_.size(), rtp_header_, 406 framer_.InsertPacket(payload_.data(), payload_.size(), rtp_header_,
407 &duplicate); 407 &duplicate);
408 EXPECT_TRUE(framer_.GetEncodedAudioFrame(&frame, &rtp_timestamp, 408 EXPECT_TRUE(framer_.GetEncodedAudioFrame(&frame, &rtp_timestamp,
(...skipping 19 matching lines...) Expand all
428 428
429 EXPECT_TRUE(framer_.GetEncodedAudioFrame(&frame, &rtp_timestamp, 429 EXPECT_TRUE(framer_.GetEncodedAudioFrame(&frame, &rtp_timestamp,
430 &next_frame)); 430 &next_frame));
431 EXPECT_TRUE(next_frame); 431 EXPECT_TRUE(next_frame);
432 EXPECT_EQ(256u, frame.frame_id); 432 EXPECT_EQ(256u, frame.frame_id);
433 framer_.ReleaseFrame(frame.frame_id); 433 framer_.ReleaseFrame(frame.frame_id);
434 } 434 }
435 435
436 TEST_F(FramerTest, AudioWrapWithMissingFrame) { 436 TEST_F(FramerTest, AudioWrapWithMissingFrame) {
437 // All audio frames are marked as key frames. 437 // All audio frames are marked as key frames.
438 EncodedAudioFrame frame; 438 transport::EncodedAudioFrame frame;
439 uint32 rtp_timestamp; 439 uint32 rtp_timestamp;
440 bool next_frame = false; 440 bool next_frame = false;
441 bool duplicate = false; 441 bool duplicate = false;
442 442
443 // Insert and get first packet. 443 // Insert and get first packet.
444 rtp_header_.is_key_frame = true; 444 rtp_header_.is_key_frame = true;
445 rtp_header_.frame_id = 253; 445 rtp_header_.frame_id = 253;
446 framer_.InsertPacket(payload_.data(), payload_.size(), rtp_header_, 446 framer_.InsertPacket(payload_.data(), payload_.size(), rtp_header_,
447 &duplicate); 447 &duplicate);
448 EXPECT_TRUE(framer_.GetEncodedAudioFrame(&frame, &rtp_timestamp, 448 EXPECT_TRUE(framer_.GetEncodedAudioFrame(&frame, &rtp_timestamp,
(...skipping 18 matching lines...) Expand all
467 framer_.ReleaseFrame(frame.frame_id); 467 framer_.ReleaseFrame(frame.frame_id);
468 EXPECT_TRUE(framer_.GetEncodedAudioFrame(&frame, &rtp_timestamp, 468 EXPECT_TRUE(framer_.GetEncodedAudioFrame(&frame, &rtp_timestamp,
469 &next_frame)); 469 &next_frame));
470 EXPECT_TRUE(next_frame); 470 EXPECT_TRUE(next_frame);
471 EXPECT_EQ(256u, frame.frame_id); 471 EXPECT_EQ(256u, frame.frame_id);
472 framer_.ReleaseFrame(frame.frame_id); 472 framer_.ReleaseFrame(frame.frame_id);
473 } 473 }
474 474
475 } // namespace cast 475 } // namespace cast
476 } // namespace media 476 } // namespace media
OLDNEW
« no previous file with comments | « media/cast/framer/framer.cc ('k') | media/cast/rtcp/rtcp.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698