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

Side by Side Diff: webrtc/modules/rtp_rtcp/source/rtp_format_vp9_unittest.cc

Issue 1427253002: Change type of pid_diff (int16_t -> uint8_t) according to updates in RTP payload profile. (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: also update include/module_common_types.h Created 5 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 /* 1 /*
2 * Copyright (c) 2015 The WebRTC project authors. All Rights Reserved. 2 * Copyright (c) 2015 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 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
48 EXPECT_EQ(expected.width[i], actual.width[i]); 48 EXPECT_EQ(expected.width[i], actual.width[i]);
49 EXPECT_EQ(expected.height[i], actual.height[i]); 49 EXPECT_EQ(expected.height[i], actual.height[i]);
50 } 50 }
51 } 51 }
52 EXPECT_EQ(expected.gof.num_frames_in_gof, actual.gof.num_frames_in_gof); 52 EXPECT_EQ(expected.gof.num_frames_in_gof, actual.gof.num_frames_in_gof);
53 for (size_t i = 0; i < expected.gof.num_frames_in_gof; i++) { 53 for (size_t i = 0; i < expected.gof.num_frames_in_gof; i++) {
54 EXPECT_EQ(expected.gof.temporal_up_switch[i], 54 EXPECT_EQ(expected.gof.temporal_up_switch[i],
55 actual.gof.temporal_up_switch[i]); 55 actual.gof.temporal_up_switch[i]);
56 EXPECT_EQ(expected.gof.temporal_idx[i], actual.gof.temporal_idx[i]); 56 EXPECT_EQ(expected.gof.temporal_idx[i], actual.gof.temporal_idx[i]);
57 EXPECT_EQ(expected.gof.num_ref_pics[i], actual.gof.num_ref_pics[i]); 57 EXPECT_EQ(expected.gof.num_ref_pics[i], actual.gof.num_ref_pics[i]);
58 for (size_t j = 0; j < expected.gof.num_ref_pics[i]; j++) { 58 for (uint8_t j = 0; j < expected.gof.num_ref_pics[i]; j++) {
59 EXPECT_EQ(expected.gof.pid_diff[i][j], actual.gof.pid_diff[i][j]); 59 EXPECT_EQ(expected.gof.pid_diff[i][j], actual.gof.pid_diff[i][j]);
60 } 60 }
61 } 61 }
62 } 62 }
63 } 63 }
64 64
65 void VerifyPayload(const RtpDepacketizer::ParsedPayload& parsed, 65 void VerifyPayload(const RtpDepacketizer::ParsedPayload& parsed,
66 const uint8_t* payload, 66 const uint8_t* payload,
67 size_t payload_length) { 67 size_t payload_length) {
68 EXPECT_EQ(payload, parsed.payload); 68 EXPECT_EQ(payload, parsed.payload);
(...skipping 469 matching lines...) Expand 10 before | Expand all | Expand 10 after
538 expected_.temporal_idx = kTemporalIdx; 538 expected_.temporal_idx = kTemporalIdx;
539 expected_.temporal_up_switch = kUbit ? true : false; 539 expected_.temporal_up_switch = kUbit ? true : false;
540 expected_.spatial_idx = kSpatialIdx; 540 expected_.spatial_idx = kSpatialIdx;
541 expected_.inter_layer_predicted = kDbit ? true : false; 541 expected_.inter_layer_predicted = kDbit ? true : false;
542 ParseAndCheckPacket(packet, expected_, kHeaderLength, sizeof(packet)); 542 ParseAndCheckPacket(packet, expected_, kHeaderLength, sizeof(packet));
543 } 543 }
544 544
545 TEST_F(RtpDepacketizerVp9Test, ParseRefIdx) { 545 TEST_F(RtpDepacketizerVp9Test, ParseRefIdx) {
546 const uint8_t kHeaderLength = 6; 546 const uint8_t kHeaderLength = 6;
547 const int16_t kPictureId = 17; 547 const int16_t kPictureId = 17;
548 const int16_t kPdiff1 = 17; 548 const uint8_t kPdiff1 = 17;
549 const int16_t kPdiff2 = 18; 549 const uint8_t kPdiff2 = 18;
550 const int16_t kPdiff3 = 127; 550 const uint8_t kPdiff3 = 127;
551 uint8_t packet[13] = {0}; 551 uint8_t packet[13] = {0};
552 packet[0] = 0xD8; // I:1 P:1 L:0 F:1 B:1 E:0 V:0 R:0 552 packet[0] = 0xD8; // I:1 P:1 L:0 F:1 B:1 E:0 V:0 R:0
553 packet[1] = 0x80 | ((kPictureId >> 8) & 0x7F); // Two byte pictureID. 553 packet[1] = 0x80 | ((kPictureId >> 8) & 0x7F); // Two byte pictureID.
554 packet[2] = kPictureId; 554 packet[2] = kPictureId;
555 packet[3] = (kPdiff1 << 1) | 1; // P_DIFF N:1 555 packet[3] = (kPdiff1 << 1) | 1; // P_DIFF N:1
556 packet[4] = (kPdiff2 << 1) | 1; // P_DIFF N:1 556 packet[4] = (kPdiff2 << 1) | 1; // P_DIFF N:1
557 packet[5] = (kPdiff3 << 1) | 0; // P_DIFF N:0 557 packet[5] = (kPdiff3 << 1) | 0; // P_DIFF N:0
558 558
559 // I:1 P:1 L:0 F:1 B:1 E:0 V:0 559 // I:1 P:1 L:0 F:1 B:1 E:0 V:0
560 // I: PICTURE ID:17 560 // I: PICTURE ID:17
561 // I: 561 // I:
562 // P,F: P_DIFF:17 N:1 => refPicId = 17 - 17 = 0 562 // P,F: P_DIFF:17 N:1 => refPicId = 17 - 17 = 0
563 // P,F: P_DIFF:18 N:1 => refPicId = (kMaxPictureId + 1) + 17 - 18 = 0x7FFF 563 // P,F: P_DIFF:18 N:1 => refPicId = (kMaxPictureId + 1) + 17 - 18 = 0x7FFF
564 // P,F: P_DIFF:127 N:0 => refPicId = (kMaxPictureId + 1) + 17 - 127 = 32658 564 // P,F: P_DIFF:127 N:0 => refPicId = (kMaxPictureId + 1) + 17 - 127 = 32658
565 expected_.beginning_of_frame = true; 565 expected_.beginning_of_frame = true;
566 expected_.inter_pic_predicted = true; 566 expected_.inter_pic_predicted = true;
567 expected_.flexible_mode = true; 567 expected_.flexible_mode = true;
568 expected_.picture_id = kPictureId; 568 expected_.picture_id = kPictureId;
569 expected_.num_ref_pics = 3; 569 expected_.num_ref_pics = 3;
570 expected_.pid_diff[0] = kPdiff1; 570 expected_.pid_diff[0] = kPdiff1;
571 expected_.pid_diff[1] = kPdiff2; 571 expected_.pid_diff[1] = kPdiff2;
572 expected_.pid_diff[2] = kPdiff3; 572 expected_.pid_diff[2] = kPdiff3;
573 expected_.ref_picture_id[0] = 0; 573 expected_.ref_picture_id[0] = 0;
574 expected_.ref_picture_id[1] = 0x7FFF; 574 expected_.ref_picture_id[1] = 0x7FFF;
575 expected_.ref_picture_id[2] = 32658; 575 expected_.ref_picture_id[2] = 32658;
576 ParseAndCheckPacket(packet, expected_, kHeaderLength, sizeof(packet)); 576 ParseAndCheckPacket(packet, expected_, kHeaderLength, sizeof(packet));
577 } 577 }
578 578
579 TEST_F(RtpDepacketizerVp9Test, ParseRefIdxFailsWithNoPictureId) { 579 TEST_F(RtpDepacketizerVp9Test, ParseRefIdxFailsWithNoPictureId) {
580 const int16_t kPdiff = 3; 580 const uint8_t kPdiff = 3;
581 uint8_t packet[13] = {0}; 581 uint8_t packet[13] = {0};
582 packet[0] = 0x58; // I:0 P:1 L:0 F:1 B:1 E:0 V:0 R:0 582 packet[0] = 0x58; // I:0 P:1 L:0 F:1 B:1 E:0 V:0 R:0
583 packet[1] = (kPdiff << 1); // P,F: P_DIFF:3 N:0 583 packet[1] = (kPdiff << 1); // P,F: P_DIFF:3 N:0
584 584
585 RtpDepacketizer::ParsedPayload parsed; 585 RtpDepacketizer::ParsedPayload parsed;
586 EXPECT_FALSE(depacketizer_->Parse(&parsed, packet, sizeof(packet))); 586 EXPECT_FALSE(depacketizer_->Parse(&parsed, packet, sizeof(packet)));
587 } 587 }
588 588
589 TEST_F(RtpDepacketizerVp9Test, ParseRefIdxFailsWithTooManyRefPics) { 589 TEST_F(RtpDepacketizerVp9Test, ParseRefIdxFailsWithTooManyRefPics) {
590 const int16_t kPdiff = 3; 590 const uint8_t kPdiff = 3;
591 uint8_t packet[13] = {0}; 591 uint8_t packet[13] = {0};
592 packet[0] = 0xD8; // I:1 P:1 L:0 F:1 B:1 E:0 V:0 R:0 592 packet[0] = 0xD8; // I:1 P:1 L:0 F:1 B:1 E:0 V:0 R:0
593 packet[1] = kMaxOneBytePictureId; // I: PICTURE ID:127 593 packet[1] = kMaxOneBytePictureId; // I: PICTURE ID:127
594 packet[2] = (kPdiff << 1) | 1; // P,F: P_DIFF:3 N:1 594 packet[2] = (kPdiff << 1) | 1; // P,F: P_DIFF:3 N:1
595 packet[3] = (kPdiff << 1) | 1; // P,F: P_DIFF:3 N:1 595 packet[3] = (kPdiff << 1) | 1; // P,F: P_DIFF:3 N:1
596 packet[4] = (kPdiff << 1) | 1; // P,F: P_DIFF:3 N:1 596 packet[4] = (kPdiff << 1) | 1; // P,F: P_DIFF:3 N:1
597 packet[5] = (kPdiff << 1) | 0; // P,F: P_DIFF:3 N:0 597 packet[5] = (kPdiff << 1) | 0; // P,F: P_DIFF:3 N:0
598 598
599 RtpDepacketizer::ParsedPayload parsed; 599 RtpDepacketizer::ParsedPayload parsed;
600 EXPECT_FALSE(depacketizer_->Parse(&parsed, packet, sizeof(packet))); 600 EXPECT_FALSE(depacketizer_->Parse(&parsed, packet, sizeof(packet)));
(...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after
676 } 676 }
677 677
678 TEST_F(RtpDepacketizerVp9Test, ParseFailsForTooShortBufferToFitPayload) { 678 TEST_F(RtpDepacketizerVp9Test, ParseFailsForTooShortBufferToFitPayload) {
679 const uint8_t kHeaderLength = 1; 679 const uint8_t kHeaderLength = 1;
680 uint8_t packet[kHeaderLength] = {0}; 680 uint8_t packet[kHeaderLength] = {0};
681 RtpDepacketizer::ParsedPayload parsed; 681 RtpDepacketizer::ParsedPayload parsed;
682 EXPECT_FALSE(depacketizer_->Parse(&parsed, packet, sizeof(packet))); 682 EXPECT_FALSE(depacketizer_->Parse(&parsed, packet, sizeof(packet)));
683 } 683 }
684 684
685 } // namespace webrtc 685 } // namespace webrtc
OLDNEW
« no previous file with comments | « webrtc/modules/rtp_rtcp/source/rtp_format_vp9.cc ('k') | webrtc/modules/video_coding/main/source/jitter_buffer.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698