diff --git a/modules/video_coding/rtp_frame_reference_finder.cc b/modules/video_coding/rtp_frame_reference_finder.cc index b62d4971ea..23e8c81bd6 100644 --- a/modules/video_coding/rtp_frame_reference_finder.cc +++ b/modules/video_coding/rtp_frame_reference_finder.cc @@ -422,7 +422,7 @@ RtpFrameReferenceFinder::FrameDecision RtpFrameReferenceFinder::ManageFrameVp9( frame->num_references = codec_header.num_ref_pics; for (size_t i = 0; i < frame->num_references; ++i) { frame->references[i] = - Subtract<1 << 16>(frame->picture_id, codec_header.pid_diff[i]); + Subtract(frame->picture_id, codec_header.pid_diff[i]); } UnwrapPictureIds(frame); diff --git a/modules/video_coding/rtp_frame_reference_finder_unittest.cc b/modules/video_coding/rtp_frame_reference_finder_unittest.cc index bd21ff1308..5a8198787d 100644 --- a/modules/video_coding/rtp_frame_reference_finder_unittest.cc +++ b/modules/video_coding/rtp_frame_reference_finder_unittest.cc @@ -1313,5 +1313,12 @@ TEST_F(TestRtpFrameReferenceFinder, Vp9FlexibleModeTwoSpatialLayersReordered) { CheckReferencesVp9(8, 1, 7); } +TEST_F(TestRtpFrameReferenceFinder, WrappingFlexReference) { + InsertVp9Flex(0, 0, false, 0, 0, 0, 0, false, {1}); + + ASSERT_EQ(1UL, frames_from_callback_.size()); + CheckReferencesVp9(1, 0, 0); +} + } // namespace video_coding } // namespace webrtc