diff --git a/modules/video_coding/utility/vp9_uncompressed_header_parser.cc b/modules/video_coding/utility/vp9_uncompressed_header_parser.cc index bf9d51f692..9e8526a1ee 100644 --- a/modules/video_coding/utility/vp9_uncompressed_header_parser.cc +++ b/modules/video_coding/utility/vp9_uncompressed_header_parser.cc @@ -488,6 +488,8 @@ void Parse(BitstreamReader& br, // Frame context index. frame_info->frame_context_idx = br.ReadBits(2); + frame_info->loop_filter_params_offset_bits = + total_buffer_size_bits - br.RemainingBitCount(); Vp9ReadLoopfilter(br); // Read base QP. diff --git a/modules/video_coding/utility/vp9_uncompressed_header_parser.h b/modules/video_coding/utility/vp9_uncompressed_header_parser.h index 8d1b88c3d3..14b55c4c72 100644 --- a/modules/video_coding/utility/vp9_uncompressed_header_parser.h +++ b/modules/video_coding/utility/vp9_uncompressed_header_parser.h @@ -106,6 +106,9 @@ struct Vp9UncompressedHeader { size_t tile_cols_log2 = 0; // tile_cols = 1 << tile_cols_log2 size_t tile_rows_log2 = 0; // tile_rows = 1 << tile_rows_log2 absl::optional render_size_offset_bits; + // Number of bits from the start of the frame header to where the loop filter + // parameters are located. + absl::optional loop_filter_params_offset_bits; Vp9InterpolationFilter interpolation_filter = Vp9InterpolationFilter::kEightTap; bool allow_high_precision_mv = false; diff --git a/modules/video_coding/utility/vp9_uncompressed_header_parser_unittest.cc b/modules/video_coding/utility/vp9_uncompressed_header_parser_unittest.cc index d8cc738e07..25ab6565ea 100644 --- a/modules/video_coding/utility/vp9_uncompressed_header_parser_unittest.cc +++ b/modules/video_coding/utility/vp9_uncompressed_header_parser_unittest.cc @@ -56,6 +56,7 @@ TEST(Vp9UncompressedHeaderParserTest, FrameWithSegmentation) { EXPECT_EQ(frame_info->tile_cols_log2, 0u); EXPECT_EQ(frame_info->tile_rows_log2, 0u); EXPECT_EQ(frame_info->render_size_offset_bits, 64u); + EXPECT_EQ(frame_info->loop_filter_params_offset_bits, 100u); EXPECT_EQ(frame_info->compressed_header_size, 23u); EXPECT_EQ(frame_info->uncompressed_header_size, 37u);