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

Unified Diff: media/video/h264_poc_unittest.cc

Issue 2661423002: VTVDA: Optimize pic_order_cnt_type == 2. (Closed)
Patch Set: Update unit test. 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « media/video/h264_poc.cc ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: media/video/h264_poc_unittest.cc
diff --git a/media/video/h264_poc_unittest.cc b/media/video/h264_poc_unittest.cc
index d2022d5966fcdf5229b7b5add1f05c7309baedb5..df040b395ea5cfc39dfceb0290065ccfeb67918d 100644
--- a/media/video/h264_poc_unittest.cc
+++ b/media/video/h264_poc_unittest.cc
@@ -23,7 +23,15 @@ class H264POCTest : public testing::Test {
protected:
bool ComputePOC() {
- return h264_poc_.ComputePicOrderCnt(&sps_, slice_hdr_, &poc_);
+ bool result = h264_poc_.ComputePicOrderCnt(&sps_, slice_hdr_, &poc_);
+
+ // Clear MMCO5.
+ slice_hdr_.adaptive_ref_pic_marking_mode_flag = false;
+ slice_hdr_.ref_pic_marking[0].memory_mgmnt_control_operation = 0;
+ slice_hdr_.ref_pic_marking[1].memory_mgmnt_control_operation = 0;
+ slice_hdr_.ref_pic_marking[2].memory_mgmnt_control_operation = 0;
+
+ return result;
}
// Also sets as a reference frame and unsets IDR, which is required for
@@ -105,14 +113,14 @@ TEST_F(H264POCTest, PicOrderCntType0_WithMMCO5) {
ASSERT_TRUE(ComputePOC());
ASSERT_EQ(24, poc_);
+ // MMCO5 resets to 0.
slice_hdr_.frame_num = 4;
slice_hdr_.pic_order_cnt_lsb = 0;
SetMMCO5();
ASSERT_TRUE(ComputePOC());
- ASSERT_EQ(32, poc_);
+ ASSERT_EQ(0, poc_);
- // Due to the MMCO5 above, this is relative to 0, but also detected as
- // positive wrapping.
+ // Still detected as positive wrapping.
slice_hdr_.frame_num = 5;
slice_hdr_.pic_order_cnt_lsb = 8;
ASSERT_TRUE(ComputePOC());
@@ -184,7 +192,7 @@ TEST_F(H264POCTest, PicOrderCntType1_WithMMCO5) {
SetMMCO5();
slice_hdr_.frame_num = 0;
ASSERT_TRUE(ComputePOC());
- ASSERT_EQ(24, poc_);
+ ASSERT_EQ(0, poc_);
// Ref frame, wrapping from before has been cleared.
slice_hdr_.frame_num = 1;
@@ -192,8 +200,7 @@ TEST_F(H264POCTest, PicOrderCntType1_WithMMCO5) {
ASSERT_EQ(1, poc_);
}
-// Despite being invalid, videos with duplicate non-keyframe |frame_num| values
-// are common. http://crbug.com/615289, http://crbug.com/616349.
+// |frame_num| values may be duplicated by non-reference frames.
TEST_F(H264POCTest, PicOrderCntType1_DupFrameNum) {
sps_.pic_order_cnt_type = 1;
sps_.log2_max_frame_num_minus4 = 0; // 16
@@ -215,8 +222,9 @@ TEST_F(H264POCTest, PicOrderCntType1_DupFrameNum) {
ASSERT_EQ(1, poc_);
// Duplicate |frame_num| frame.
+ slice_hdr_.nal_ref_idc = 0;
slice_hdr_.frame_num = 1;
- slice_hdr_.delta_pic_order_cnt0 = 1;
+ slice_hdr_.delta_pic_order_cnt0 = 2;
ASSERT_TRUE(ComputePOC());
ASSERT_EQ(2, poc_);
}
@@ -276,7 +284,7 @@ TEST_F(H264POCTest, PicOrderCntType2_WithMMCO5) {
SetMMCO5();
slice_hdr_.frame_num = 0;
ASSERT_TRUE(ComputePOC());
- ASSERT_EQ(32, poc_);
+ ASSERT_EQ(0, poc_);
// Ref frame, wrapping from before has been cleared.
slice_hdr_.frame_num = 1;
« no previous file with comments | « media/video/h264_poc.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698