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

Side by Side Diff: webrtc/modules/video_coding/rtp_frame_reference_finder_unittest.cc

Issue 2760893002: Don't recalculate Tl0PicIdx when the VP9 frame has no Tl0PicIdx. (Closed)
Patch Set: Feedback fix + minor refactoring. Created 3 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 | « webrtc/modules/video_coding/rtp_frame_reference_finder.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright (c) 2016 The WebRTC project authors. All Rights Reserved. 2 * Copyright (c) 2016 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 1267 matching lines...) Expand 10 before | Expand all | Expand 10 after
1278 CheckReferencesVp9(pid + 5, 1, pid + 4); 1278 CheckReferencesVp9(pid + 5, 1, pid + 4);
1279 CheckReferencesVp9(pid + 6, 0, pid + 4); 1279 CheckReferencesVp9(pid + 6, 0, pid + 4);
1280 CheckReferencesVp9(pid + 6, 1, pid + 5); 1280 CheckReferencesVp9(pid + 6, 1, pid + 5);
1281 CheckReferencesVp9(pid + 7, 1, pid + 6); 1281 CheckReferencesVp9(pid + 7, 1, pid + 6);
1282 CheckReferencesVp9(pid + 8, 0, pid + 6); 1282 CheckReferencesVp9(pid + 8, 0, pid + 6);
1283 CheckReferencesVp9(pid + 8, 1, pid + 7); 1283 CheckReferencesVp9(pid + 8, 1, pid + 7);
1284 } 1284 }
1285 1285
1286 // TODO(philipel): Remove when VP9 PID/TL0 does not jump mid-stream (should be 1286 // TODO(philipel): Remove when VP9 PID/TL0 does not jump mid-stream (should be
1287 // around M59). 1287 // around M59).
1288 TEST_F(TestRtpFrameReferenceFinder, Vp9PidFix_PidJumpsForwardNoTl0PicIdx) {
1289 GofInfoVP9 ss;
1290 ss.SetGofInfoVP9(kTemporalStructureMode1);
1291
1292 VCMPacket packet;
1293 packet.timestamp = 0;
1294 packet.codec = kVideoCodecVP9;
1295 packet.frameType = kVideoFrameKey;
1296 packet.markerBit = true;
1297 packet.video_header.codecHeader.VP9.flexible_mode = false;
1298 packet.video_header.codecHeader.VP9.picture_id = 0;
1299 packet.video_header.codecHeader.VP9.temporal_idx = kNoTemporalIdx;
1300 packet.video_header.codecHeader.VP9.spatial_idx = kNoSpatialIdx;
1301 packet.video_header.codecHeader.VP9.tl0_pic_idx = kNoTl0PicIdx;
1302 packet.video_header.codecHeader.VP9.temporal_up_switch = true;
1303 packet.video_header.codecHeader.VP9.ss_data_available = true;
1304 packet.video_header.codecHeader.VP9.gof = ss;
1305
1306 ref_packet_buffer_->InsertPacket(&packet);
1307 reference_finder_->ManageFrame(std::unique_ptr<RtpFrameObject>(
1308 new RtpFrameObject(ref_packet_buffer_, 0, 0, 0, 0, 0)));
1309
1310 packet.timestamp = 1;
1311 packet.video_header.codecHeader.VP9.picture_id = 5000;
1312
1313 ref_packet_buffer_->InsertPacket(&packet);
1314 reference_finder_->ManageFrame(std::unique_ptr<RtpFrameObject>(
1315 new RtpFrameObject(ref_packet_buffer_, 0, 0, 0, 0, 0)));
1316
1317 ASSERT_EQ(2UL, frames_from_callback_.size());
1318 CheckReferencesVp9(0, 0);
1319 CheckReferencesVp9(128, 0);
1320 }
1321
1322 // TODO(philipel): Remove when VP9 PID/TL0 does not jump mid-stream (should be
1323 // around M59).
1288 TEST_F(TestRtpFrameReferenceFinder, Vp9PidFix_PidJumpsBackwardThenForward) { 1324 TEST_F(TestRtpFrameReferenceFinder, Vp9PidFix_PidJumpsBackwardThenForward) {
1289 GofInfoVP9 ss; 1325 GofInfoVP9 ss;
1290 ss.SetGofInfoVP9(kTemporalStructureMode1); 1326 ss.SetGofInfoVP9(kTemporalStructureMode1);
1291 1327
1292 VCMPacket packet; 1328 VCMPacket packet;
1293 packet.timestamp = 0; 1329 packet.timestamp = 0;
1294 packet.codec = kVideoCodecVP9; 1330 packet.codec = kVideoCodecVP9;
1295 packet.frameType = kVideoFrameKey; 1331 packet.frameType = kVideoFrameKey;
1296 packet.markerBit = true; 1332 packet.markerBit = true;
1297 packet.video_header.codecHeader.VP9.flexible_mode = false; 1333 packet.video_header.codecHeader.VP9.flexible_mode = false;
1298 packet.video_header.codecHeader.VP9.picture_id = 1; 1334 packet.video_header.codecHeader.VP9.picture_id = 1;
1299 packet.video_header.codecHeader.VP9.temporal_idx = 0; 1335 packet.video_header.codecHeader.VP9.temporal_idx = 0;
1300 packet.video_header.codecHeader.VP9.spatial_idx = 0; 1336 packet.video_header.codecHeader.VP9.spatial_idx = 0;
1301 packet.video_header.codecHeader.VP9.tl0_pic_idx = 0; 1337 packet.video_header.codecHeader.VP9.tl0_pic_idx = 0;
1302 packet.video_header.codecHeader.VP9.temporal_up_switch = true; 1338 packet.video_header.codecHeader.VP9.temporal_up_switch = true;
1303 packet.video_header.codecHeader.VP9.ss_data_available = true; 1339 packet.video_header.codecHeader.VP9.ss_data_available = true;
1304 packet.video_header.codecHeader.VP9.gof = ss; 1340 packet.video_header.codecHeader.VP9.gof = ss;
1305 1341
1306 { 1342 ref_packet_buffer_->InsertPacket(&packet);
1307 ref_packet_buffer_->InsertPacket(&packet); 1343 reference_finder_->ManageFrame(std::unique_ptr<RtpFrameObject>(
1308 std::unique_ptr<RtpFrameObject> frame( 1344 new RtpFrameObject(ref_packet_buffer_, 0, 0, 0, 0, 0)));
1309 new RtpFrameObject(ref_packet_buffer_, 0, 0, 0, 0, 0));
1310 reference_finder_->ManageFrame(std::move(frame));
1311 }
1312 1345
1313 // Timestamp goes forward but pid goes backwards. 1346 // Timestamp goes forward but pid goes backwards.
1314 packet.timestamp = 1; 1347 packet.timestamp = 1;
1315 packet.video_header.codecHeader.VP9.picture_id = 0; 1348 packet.video_header.codecHeader.VP9.picture_id = 0;
1316 1349
1317 { 1350 ref_packet_buffer_->InsertPacket(&packet);
1318 ref_packet_buffer_->InsertPacket(&packet); 1351 reference_finder_->ManageFrame(std::unique_ptr<RtpFrameObject>(
1319 std::unique_ptr<RtpFrameObject> frame( 1352 new RtpFrameObject(ref_packet_buffer_, 0, 0, 0, 0, 0)));
1320 new RtpFrameObject(ref_packet_buffer_, 0, 0, 0, 0, 0));
1321 reference_finder_->ManageFrame(std::move(frame));
1322 }
1323 1353
1324 packet.timestamp = 2; 1354 packet.timestamp = 2;
1325 packet.video_header.codecHeader.VP9.picture_id = 5000; 1355 packet.video_header.codecHeader.VP9.picture_id = 5000;
1326 1356
1327 { 1357 ref_packet_buffer_->InsertPacket(&packet);
1328 ref_packet_buffer_->InsertPacket(&packet); 1358 reference_finder_->ManageFrame(std::unique_ptr<RtpFrameObject>(
1329 std::unique_ptr<RtpFrameObject> frame( 1359 new RtpFrameObject(ref_packet_buffer_, 0, 0, 0, 0, 0)));
1330 new RtpFrameObject(ref_packet_buffer_, 0, 0, 0, 0, 0));
1331 reference_finder_->ManageFrame(std::move(frame));
1332 }
1333 1360
1334 ASSERT_EQ(3UL, frames_from_callback_.size()); 1361 ASSERT_EQ(3UL, frames_from_callback_.size());
1335 CheckReferencesVp9(1, 0); 1362 CheckReferencesVp9(1, 0);
1336 CheckReferencesVp9(129, 0); 1363 CheckReferencesVp9(129, 0);
1337 CheckReferencesVp9(257, 0); 1364 CheckReferencesVp9(257, 0);
1338 } 1365 }
1339 1366
1340 // TODO(philipel): Remove when VP9 PID/TL0 does not jump mid-stream (should be 1367 // TODO(philipel): Remove when VP9 PID/TL0 does not jump mid-stream (should be
1341 // around M59). 1368 // around M59).
1342 TEST_F(TestRtpFrameReferenceFinder, Vp9PidFix_Tl0JumpsBackwardThenForward) { 1369 TEST_F(TestRtpFrameReferenceFinder, Vp9PidFix_Tl0JumpsBackwardThenForward) {
1343 GofInfoVP9 ss; 1370 GofInfoVP9 ss;
1344 ss.SetGofInfoVP9(kTemporalStructureMode1); 1371 ss.SetGofInfoVP9(kTemporalStructureMode1);
1345 1372
1346 VCMPacket packet; 1373 VCMPacket packet;
1347 packet.timestamp = 0; 1374 packet.timestamp = 0;
1348 packet.codec = kVideoCodecVP9; 1375 packet.codec = kVideoCodecVP9;
1349 packet.frameType = kVideoFrameKey; 1376 packet.frameType = kVideoFrameKey;
1350 packet.markerBit = true; 1377 packet.markerBit = true;
1351 packet.video_header.codecHeader.VP9.flexible_mode = false; 1378 packet.video_header.codecHeader.VP9.flexible_mode = false;
1352 packet.video_header.codecHeader.VP9.picture_id = 0; 1379 packet.video_header.codecHeader.VP9.picture_id = 0;
1353 packet.video_header.codecHeader.VP9.temporal_idx = 0; 1380 packet.video_header.codecHeader.VP9.temporal_idx = 0;
1354 packet.video_header.codecHeader.VP9.spatial_idx = 0; 1381 packet.video_header.codecHeader.VP9.spatial_idx = 0;
1355 packet.video_header.codecHeader.VP9.tl0_pic_idx = 1; 1382 packet.video_header.codecHeader.VP9.tl0_pic_idx = 1;
1356 packet.video_header.codecHeader.VP9.temporal_up_switch = true; 1383 packet.video_header.codecHeader.VP9.temporal_up_switch = true;
1357 packet.video_header.codecHeader.VP9.ss_data_available = true; 1384 packet.video_header.codecHeader.VP9.ss_data_available = true;
1358 packet.video_header.codecHeader.VP9.gof = ss; 1385 packet.video_header.codecHeader.VP9.gof = ss;
1359 { 1386 ref_packet_buffer_->InsertPacket(&packet);
1360 ref_packet_buffer_->InsertPacket(&packet); 1387 reference_finder_->ManageFrame(std::unique_ptr<RtpFrameObject>(
1361 std::unique_ptr<RtpFrameObject> frame( 1388 new RtpFrameObject(ref_packet_buffer_, 0, 0, 0, 0, 0)));
1362 new RtpFrameObject(ref_packet_buffer_, 0, 0, 0, 0, 0));
1363 reference_finder_->ManageFrame(std::move(frame));
1364 }
1365 1389
1366 packet.timestamp = 1; 1390 packet.timestamp = 1;
1367 packet.video_header.codecHeader.VP9.picture_id = 1; 1391 packet.video_header.codecHeader.VP9.picture_id = 1;
1368 packet.video_header.codecHeader.VP9.tl0_pic_idx = 0; 1392 packet.video_header.codecHeader.VP9.tl0_pic_idx = 0;
1369 { 1393 ref_packet_buffer_->InsertPacket(&packet);
1370 ref_packet_buffer_->InsertPacket(&packet); 1394 reference_finder_->ManageFrame(std::unique_ptr<RtpFrameObject>(
1371 std::unique_ptr<RtpFrameObject> frame( 1395 new RtpFrameObject(ref_packet_buffer_, 0, 0, 0, 0, 0)));
1372 new RtpFrameObject(ref_packet_buffer_, 0, 0, 0, 0, 0));
1373 reference_finder_->ManageFrame(std::move(frame));
1374 }
1375 1396
1376 packet.timestamp = 2; 1397 packet.timestamp = 2;
1377 packet.frameType = kVideoFrameDelta; 1398 packet.frameType = kVideoFrameDelta;
1378 packet.video_header.codecHeader.VP9.picture_id = 2; 1399 packet.video_header.codecHeader.VP9.picture_id = 2;
1379 packet.video_header.codecHeader.VP9.tl0_pic_idx = 2; 1400 packet.video_header.codecHeader.VP9.tl0_pic_idx = 2;
1380 { 1401 ref_packet_buffer_->InsertPacket(&packet);
1381 ref_packet_buffer_->InsertPacket(&packet); 1402 reference_finder_->ManageFrame(std::unique_ptr<RtpFrameObject>(
1382 std::unique_ptr<RtpFrameObject> frame( 1403 new RtpFrameObject(ref_packet_buffer_, 0, 0, 0, 0, 0)));
1383 new RtpFrameObject(ref_packet_buffer_, 0, 0, 0, 0, 0));
1384 reference_finder_->ManageFrame(std::move(frame));
1385 }
1386 1404
1387 packet.timestamp = 3; 1405 packet.timestamp = 3;
1388 packet.frameType = kVideoFrameKey; 1406 packet.frameType = kVideoFrameKey;
1389 packet.video_header.codecHeader.VP9.ss_data_available = true; 1407 packet.video_header.codecHeader.VP9.ss_data_available = true;
1390 packet.video_header.codecHeader.VP9.picture_id = 3; 1408 packet.video_header.codecHeader.VP9.picture_id = 3;
1391 packet.video_header.codecHeader.VP9.tl0_pic_idx = 129; 1409 packet.video_header.codecHeader.VP9.tl0_pic_idx = 129;
1392 { 1410 ref_packet_buffer_->InsertPacket(&packet);
1393 ref_packet_buffer_->InsertPacket(&packet); 1411 reference_finder_->ManageFrame(std::unique_ptr<RtpFrameObject>(
1394 std::unique_ptr<RtpFrameObject> frame( 1412 new RtpFrameObject(ref_packet_buffer_, 0, 0, 0, 0, 0)));
1395 new RtpFrameObject(ref_packet_buffer_, 0, 0, 0, 0, 0));
1396 reference_finder_->ManageFrame(std::move(frame));
1397 }
1398 1413
1399 ASSERT_EQ(4UL, frames_from_callback_.size()); 1414 ASSERT_EQ(4UL, frames_from_callback_.size());
1400 CheckReferencesVp9(0, 0); 1415 CheckReferencesVp9(0, 0);
1401 CheckReferencesVp9(128, 0); 1416 CheckReferencesVp9(128, 0);
1402 CheckReferencesVp9(129, 0, 128); 1417 CheckReferencesVp9(129, 0, 128);
1403 CheckReferencesVp9(257, 0); 1418 CheckReferencesVp9(257, 0);
1404 } 1419 }
1405 1420
1406 // TODO(philipel): Remove when VP9 PID/TL0 does not jump mid-stream (should be 1421 // TODO(philipel): Remove when VP9 PID/TL0 does not jump mid-stream (should be
1407 // around M59). 1422 // around M59).
1408 TEST_F(TestRtpFrameReferenceFinder, Vp9PidFix_PidSmallJumpForward) { 1423 TEST_F(TestRtpFrameReferenceFinder, Vp9PidFix_PidSmallJumpForward) {
1409 GofInfoVP9 ss; 1424 GofInfoVP9 ss;
1410 ss.SetGofInfoVP9(kTemporalStructureMode1); 1425 ss.SetGofInfoVP9(kTemporalStructureMode1);
1411 1426
1412 VCMPacket packet; 1427 VCMPacket packet;
1413 packet.timestamp = 0; 1428 packet.timestamp = 0;
1414 packet.codec = kVideoCodecVP9; 1429 packet.codec = kVideoCodecVP9;
1415 packet.frameType = kVideoFrameKey; 1430 packet.frameType = kVideoFrameKey;
1416 packet.markerBit = true; 1431 packet.markerBit = true;
1417 packet.video_header.codecHeader.VP9.flexible_mode = false; 1432 packet.video_header.codecHeader.VP9.flexible_mode = false;
1418 packet.video_header.codecHeader.VP9.picture_id = 1; 1433 packet.video_header.codecHeader.VP9.picture_id = 1;
1419 packet.video_header.codecHeader.VP9.temporal_idx = 0; 1434 packet.video_header.codecHeader.VP9.temporal_idx = 0;
1420 packet.video_header.codecHeader.VP9.spatial_idx = 0; 1435 packet.video_header.codecHeader.VP9.spatial_idx = 0;
1421 packet.video_header.codecHeader.VP9.tl0_pic_idx = 1; 1436 packet.video_header.codecHeader.VP9.tl0_pic_idx = 1;
1422 packet.video_header.codecHeader.VP9.temporal_up_switch = true; 1437 packet.video_header.codecHeader.VP9.temporal_up_switch = true;
1423 packet.video_header.codecHeader.VP9.ss_data_available = true; 1438 packet.video_header.codecHeader.VP9.ss_data_available = true;
1424 packet.video_header.codecHeader.VP9.gof = ss; 1439 packet.video_header.codecHeader.VP9.gof = ss;
1425 { 1440 ref_packet_buffer_->InsertPacket(&packet);
1426 ref_packet_buffer_->InsertPacket(&packet); 1441 reference_finder_->ManageFrame(std::unique_ptr<RtpFrameObject>(
1427 std::unique_ptr<RtpFrameObject> frame( 1442 new RtpFrameObject(ref_packet_buffer_, 0, 0, 0, 0, 0)));
1428 new RtpFrameObject(ref_packet_buffer_, 0, 0, 0, 0, 0));
1429 reference_finder_->ManageFrame(std::move(frame));
1430 }
1431 1443
1432 packet.timestamp = 1; 1444 packet.timestamp = 1;
1433 packet.video_header.codecHeader.VP9.picture_id = 2; 1445 packet.video_header.codecHeader.VP9.picture_id = 2;
1434 packet.video_header.codecHeader.VP9.tl0_pic_idx = 2; 1446 packet.video_header.codecHeader.VP9.tl0_pic_idx = 2;
1435 { 1447 ref_packet_buffer_->InsertPacket(&packet);
1436 ref_packet_buffer_->InsertPacket(&packet); 1448 reference_finder_->ManageFrame(std::unique_ptr<RtpFrameObject>(
1437 std::unique_ptr<RtpFrameObject> frame( 1449 new RtpFrameObject(ref_packet_buffer_, 0, 0, 0, 0, 0)));
1438 new RtpFrameObject(ref_packet_buffer_, 0, 0, 0, 0, 0));
1439 reference_finder_->ManageFrame(std::move(frame));
1440 }
1441 1450
1442 packet.timestamp = 2; 1451 packet.timestamp = 2;
1443 packet.video_header.codecHeader.VP9.picture_id = 3; 1452 packet.video_header.codecHeader.VP9.picture_id = 3;
1444 packet.video_header.codecHeader.VP9.tl0_pic_idx = 2; 1453 packet.video_header.codecHeader.VP9.tl0_pic_idx = 2;
1445 { 1454 ref_packet_buffer_->InsertPacket(&packet);
1446 ref_packet_buffer_->InsertPacket(&packet); 1455 reference_finder_->ManageFrame(std::unique_ptr<RtpFrameObject>(
1447 std::unique_ptr<RtpFrameObject> frame( 1456 new RtpFrameObject(ref_packet_buffer_, 0, 0, 0, 0, 0)));
1448 new RtpFrameObject(ref_packet_buffer_, 0, 0, 0, 0, 0));
1449 reference_finder_->ManageFrame(std::move(frame));
1450 }
1451 1457
1452 packet.timestamp = 2; 1458 packet.timestamp = 2;
1453 packet.video_header.codecHeader.VP9.picture_id = 4; 1459 packet.video_header.codecHeader.VP9.picture_id = 4;
1454 packet.video_header.codecHeader.VP9.tl0_pic_idx = 1; 1460 packet.video_header.codecHeader.VP9.tl0_pic_idx = 1;
1455 { 1461 ref_packet_buffer_->InsertPacket(&packet);
1456 ref_packet_buffer_->InsertPacket(&packet); 1462 reference_finder_->ManageFrame(std::unique_ptr<RtpFrameObject>(
1457 std::unique_ptr<RtpFrameObject> frame( 1463 new RtpFrameObject(ref_packet_buffer_, 0, 0, 0, 0, 0)));
1458 new RtpFrameObject(ref_packet_buffer_, 0, 0, 0, 0, 0));
1459 reference_finder_->ManageFrame(std::move(frame));
1460 }
1461 1464
1462 ASSERT_EQ(4UL, frames_from_callback_.size()); 1465 ASSERT_EQ(4UL, frames_from_callback_.size());
1463 CheckReferencesVp9(1, 0); 1466 CheckReferencesVp9(1, 0);
1464 CheckReferencesVp9(2, 0); 1467 CheckReferencesVp9(2, 0);
1465 CheckReferencesVp9(3, 0); 1468 CheckReferencesVp9(3, 0);
1466 CheckReferencesVp9(131, 0); 1469 CheckReferencesVp9(131, 0);
1467 } 1470 }
1468 1471
1469 // TODO(philipel): Remove when VP9 PID/TL0 does not jump mid-stream (should be 1472 // TODO(philipel): Remove when VP9 PID/TL0 does not jump mid-stream (should be
1470 // around M59). 1473 // around M59).
1471 TEST_F(TestRtpFrameReferenceFinder, Vp9PidFix_DropOldFrame) { 1474 TEST_F(TestRtpFrameReferenceFinder, Vp9PidFix_DropOldFrame) {
1472 GofInfoVP9 ss; 1475 GofInfoVP9 ss;
1473 ss.SetGofInfoVP9(kTemporalStructureMode1); 1476 ss.SetGofInfoVP9(kTemporalStructureMode1);
1474 1477
1475 VCMPacket packet; 1478 VCMPacket packet;
1476 packet.timestamp = 0; 1479 packet.timestamp = 0;
1477 packet.codec = kVideoCodecVP9; 1480 packet.codec = kVideoCodecVP9;
1478 packet.frameType = kVideoFrameKey; 1481 packet.frameType = kVideoFrameKey;
1479 packet.markerBit = true; 1482 packet.markerBit = true;
1480 packet.video_header.codecHeader.VP9.flexible_mode = false; 1483 packet.video_header.codecHeader.VP9.flexible_mode = false;
1481 packet.video_header.codecHeader.VP9.picture_id = 1; 1484 packet.video_header.codecHeader.VP9.picture_id = 1;
1482 packet.video_header.codecHeader.VP9.temporal_idx = 0; 1485 packet.video_header.codecHeader.VP9.temporal_idx = 0;
1483 packet.video_header.codecHeader.VP9.spatial_idx = 0; 1486 packet.video_header.codecHeader.VP9.spatial_idx = 0;
1484 packet.video_header.codecHeader.VP9.tl0_pic_idx = 1; 1487 packet.video_header.codecHeader.VP9.tl0_pic_idx = 1;
1485 packet.video_header.codecHeader.VP9.temporal_up_switch = true; 1488 packet.video_header.codecHeader.VP9.temporal_up_switch = true;
1486 packet.video_header.codecHeader.VP9.ss_data_available = true; 1489 packet.video_header.codecHeader.VP9.ss_data_available = true;
1487 packet.video_header.codecHeader.VP9.gof = ss; 1490 packet.video_header.codecHeader.VP9.gof = ss;
1488 { 1491 ref_packet_buffer_->InsertPacket(&packet);
1489 ref_packet_buffer_->InsertPacket(&packet); 1492 reference_finder_->ManageFrame(std::unique_ptr<RtpFrameObject>(
1490 std::unique_ptr<RtpFrameObject> frame( 1493 new RtpFrameObject(ref_packet_buffer_, 0, 0, 0, 0, 0)));
1491 new RtpFrameObject(ref_packet_buffer_, 0, 0, 0, 0, 0));
1492 reference_finder_->ManageFrame(std::move(frame));
1493 }
1494 1494
1495 packet.timestamp = 1; 1495 packet.timestamp = 1;
1496 packet.video_header.codecHeader.VP9.picture_id = 0; 1496 packet.video_header.codecHeader.VP9.picture_id = 0;
1497 packet.video_header.codecHeader.VP9.tl0_pic_idx = 2; 1497 packet.video_header.codecHeader.VP9.tl0_pic_idx = 2;
1498 { 1498 ref_packet_buffer_->InsertPacket(&packet);
1499 ref_packet_buffer_->InsertPacket(&packet); 1499 reference_finder_->ManageFrame(std::unique_ptr<RtpFrameObject>(
1500 std::unique_ptr<RtpFrameObject> frame( 1500 new RtpFrameObject(ref_packet_buffer_, 0, 0, 0, 0, 0)));
1501 new RtpFrameObject(ref_packet_buffer_, 0, 0, 0, 0, 0));
1502 reference_finder_->ManageFrame(std::move(frame));
1503 }
1504 1501
1505 packet.timestamp = 0; 1502 packet.timestamp = 0;
1506 packet.video_header.codecHeader.VP9.picture_id = 3; 1503 packet.video_header.codecHeader.VP9.picture_id = 3;
1507 packet.video_header.codecHeader.VP9.tl0_pic_idx = 2; 1504 packet.video_header.codecHeader.VP9.tl0_pic_idx = 2;
1508 { 1505 ref_packet_buffer_->InsertPacket(&packet);
1509 ref_packet_buffer_->InsertPacket(&packet); 1506 reference_finder_->ManageFrame(std::unique_ptr<RtpFrameObject>(
1510 std::unique_ptr<RtpFrameObject> frame( 1507 new RtpFrameObject(ref_packet_buffer_, 0, 0, 0, 0, 0)));
1511 new RtpFrameObject(ref_packet_buffer_, 0, 0, 0, 0, 0));
1512 reference_finder_->ManageFrame(std::move(frame));
1513 }
1514 1508
1515 ASSERT_EQ(2UL, frames_from_callback_.size()); 1509 ASSERT_EQ(2UL, frames_from_callback_.size());
1516 CheckReferencesVp9(1, 0); 1510 CheckReferencesVp9(1, 0);
1517 CheckReferencesVp9(129, 0); 1511 CheckReferencesVp9(129, 0);
1518 } 1512 }
1519 1513
1520 } // namespace video_coding 1514 } // namespace video_coding
1521 } // namespace webrtc 1515 } // namespace webrtc
OLDNEW
« no previous file with comments | « webrtc/modules/video_coding/rtp_frame_reference_finder.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698