Index: webrtc/modules/video_coding/decoding_state.cc |
diff --git a/webrtc/modules/video_coding/decoding_state.cc b/webrtc/modules/video_coding/decoding_state.cc |
index 229555287c826a6c8f9a9b99588e5cda53a5ddda..0c45ae3b397583f3cf13472a90ebedb721b2844b 100644 |
--- a/webrtc/modules/video_coding/decoding_state.cc |
+++ b/webrtc/modules/video_coding/decoding_state.cc |
@@ -291,8 +291,15 @@ bool VCMDecodingState::UsingPictureId(const VCMFrameBuffer* frame) const { |
} |
bool VCMDecodingState::UsingFlexibleMode(const VCMFrameBuffer* frame) const { |
- return frame->CodecSpecific()->codecType == kVideoCodecVP9 && |
- frame->CodecSpecific()->codecSpecific.VP9.flexible_mode; |
+ bool is_flexible_mode = |
+ frame->CodecSpecific()->codecType == kVideoCodecVP9 && |
+ frame->CodecSpecific()->codecSpecific.VP9.flexible_mode; |
+ if (is_flexible_mode && frame->PictureId() == kNoPictureId) { |
+ LOG(LS_WARNING) << "Frame is marked as using flexible mode but no" |
+ << "picture id is set."; |
+ return false; |
+ } |
+ return is_flexible_mode; |
} |
// TODO(philipel): change how check work, this check practially |