Calculate VP9 references to wrap at kPicIdLength instead of 16 bits.
Bug: webrtc:8293 Change-Id: Iedc09a10548c2112e99247a5845a02c1bd3e7b80 Reviewed-on: https://webrtc-review.googlesource.com/4200 Reviewed-by: Erik Språng <sprang@webrtc.org> Commit-Queue: Philip Eliasson <philipel@webrtc.org> Cr-Commit-Position: refs/heads/master@{#20017}
This commit is contained in:
@ -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<kPicIdLength>(frame->picture_id, codec_header.pid_diff[i]);
|
||||
}
|
||||
|
||||
UnwrapPictureIds(frame);
|
||||
|
||||
@ -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
|
||||
|
||||
Reference in New Issue
Block a user