| Index: webrtc/modules/video_coding/rtp_frame_reference_finder.cc
|
| diff --git a/webrtc/modules/video_coding/rtp_frame_reference_finder.cc b/webrtc/modules/video_coding/rtp_frame_reference_finder.cc
|
| index d687a99924b892bb6b9234c738ac7cfc91376ff7..a64518a41e8ed0e53b252ddfadf6b93579241a35 100644
|
| --- a/webrtc/modules/video_coding/rtp_frame_reference_finder.cc
|
| +++ b/webrtc/modules/video_coding/rtp_frame_reference_finder.cc
|
| @@ -298,6 +298,14 @@ void RtpFrameReferenceFinder::ManageFrameVp8(
|
| return;
|
| }
|
|
|
| + // If the last frame on this layer is ahead of this frame it means that
|
| + // a layer sync frame has been received after this frame for the same
|
| + // base layer frame, drop this frame.
|
| + if (AheadOf<uint16_t, kPicIdLength>(layer_info_it->second[layer],
|
| + frame->picture_id)) {
|
| + return;
|
| + }
|
| +
|
| // If we have not yet received a frame between this frame and the referenced
|
| // frame then we have to wait for that frame to be completed first.
|
| auto not_received_frame_it =
|
| @@ -309,6 +317,8 @@ void RtpFrameReferenceFinder::ManageFrameVp8(
|
| return;
|
| }
|
|
|
| + RTC_DCHECK((AheadOf<uint16_t, kPicIdLength>(frame->picture_id,
|
| + layer_info_it->second[layer])));
|
| ++frame->num_references;
|
| frame->references[layer] = layer_info_it->second[layer];
|
| }
|
|
|