diff --git a/common_video/h264/sps_parser.cc b/common_video/h264/sps_parser.cc index cfb0f24ff2..e14334249c 100644 --- a/common_video/h264/sps_parser.cc +++ b/common_video/h264/sps_parser.cc @@ -117,7 +117,7 @@ absl::optional SpsParser::ParseSpsUpToVui( // BitstreamReader::ReadBits, which can read at most 64 bits at a time. We // also have to avoid overflow when adding 4 to the on-wire golomb value, // e.g., for evil input data, ReadExponentialGolomb might return 0xfffc. - const uint32_t kMaxLog2Minus4 = 32 - 4; + const uint32_t kMaxLog2Minus4 = 12; // log2_max_frame_num_minus4: ue(v) uint32_t log2_max_frame_num_minus4 = reader.ReadExponentialGolomb(); diff --git a/common_video/h264/sps_parser_unittest.cc b/common_video/h264/sps_parser_unittest.cc index 9e210c65d8..c9326e4b28 100644 --- a/common_video/h264/sps_parser_unittest.cc +++ b/common_video/h264/sps_parser_unittest.cc @@ -196,15 +196,15 @@ TEST(H264SpsParserTest, TestLog2MaxFrameNumMinus4) { EXPECT_EQ(1u, sps->id); EXPECT_EQ(4u, sps->log2_max_frame_num); - GenerateFakeSps(320u, 180u, 1, 28, 0, &buffer); + GenerateFakeSps(320u, 180u, 1, 12, 0, &buffer); sps = SpsParser::ParseSps(buffer.data(), buffer.size()); ASSERT_TRUE(sps.has_value()); EXPECT_EQ(320u, sps->width); EXPECT_EQ(180u, sps->height); EXPECT_EQ(1u, sps->id); - EXPECT_EQ(32u, sps->log2_max_frame_num); + EXPECT_EQ(16u, sps->log2_max_frame_num); - GenerateFakeSps(320u, 180u, 1, 29, 0, &buffer); + GenerateFakeSps(320u, 180u, 1, 13, 0, &buffer); EXPECT_FALSE(SpsParser::ParseSps(buffer.data(), buffer.size())); } @@ -219,15 +219,15 @@ TEST(H264SpsParserTest, TestLog2MaxPicOrderCntMinus4) { EXPECT_EQ(1u, sps->id); EXPECT_EQ(4u, sps->log2_max_pic_order_cnt_lsb); - GenerateFakeSps(320u, 180u, 1, 0, 28, &buffer); + GenerateFakeSps(320u, 180u, 1, 0, 12, &buffer); EXPECT_TRUE(static_cast( sps = SpsParser::ParseSps(buffer.data(), buffer.size()))); EXPECT_EQ(320u, sps->width); EXPECT_EQ(180u, sps->height); EXPECT_EQ(1u, sps->id); - EXPECT_EQ(32u, sps->log2_max_pic_order_cnt_lsb); + EXPECT_EQ(16u, sps->log2_max_pic_order_cnt_lsb); - GenerateFakeSps(320u, 180u, 1, 0, 29, &buffer); + GenerateFakeSps(320u, 180u, 1, 0, 13, &buffer); EXPECT_FALSE(SpsParser::ParseSps(buffer.data(), buffer.size())); }