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 218a52d88065c501ced13f31392982e16d4f5cb5..d687a99924b892bb6b9234c738ac7cfc91376ff7 100644 |
--- a/webrtc/modules/video_coding/rtp_frame_reference_finder.cc |
+++ b/webrtc/modules/video_coding/rtp_frame_reference_finder.cc |
@@ -291,7 +291,12 @@ void RtpFrameReferenceFinder::ManageFrameVp8( |
// Find all references for this frame. |
frame->num_references = 0; |
for (uint8_t layer = 0; layer <= codec_header.temporalIdx; ++layer) { |
- RTC_DCHECK_NE(-1, layer_info_it->second[layer]); |
+ // If we have not yet received a previous frame on this temporal layer, |
+ // stash this frame. |
+ if (layer_info_it->second[layer] == -1) { |
+ stashed_frames_.push_back(std::move(frame)); |
+ 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. |