Increase frame history size in VP9 references fuzzer The previous history size of 32 is likely too small to track long-term reference frames (such as the initial keyframe). This causes the circular buffer to overwrite old frames that the encoder may still reference, leading to an RTC_CHECK failure. This CL speculatively increases the history size to 256 in an attempt to prevent the fuzzer from crashing on valid long-term dependencies. Fixed: chromium:538422136 Change-Id: I964ebaf78bad94176b1ff0068168219c3adf6da8 Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/494080 Reviewed-by: Danil Chapovalov <danilchap@webrtc.org> Commit-Queue: Johannes Kron <kron@webrtc.org> Cr-Commit-Position: refs/heads/main@{#48296}
diff --git a/test/fuzzers/vp9_encoder_references_fuzzer.cc b/test/fuzzers/vp9_encoder_references_fuzzer.cc index e3546e3..426d598 100644 --- a/test/fuzzers/vp9_encoder_references_fuzzer.cc +++ b/test/fuzzers/vp9_encoder_references_fuzzer.cc
@@ -93,9 +93,10 @@ bool is_end_of_temporal_unit) override {} private: - // With 4 spatial layers and patterns up to 8 pictures, it should be enough to - // keep the last 32 frames to validate dependencies. - static constexpr size_t kMaxFrameHistorySize = 32; + // While 32 frames covers a standard pattern (4 spatial layers * 8 pictures), + // fuzzing has shown that references can occasionally reach further back. + // 256 is used as a pragmatic buffer to keep older frames in history. + static constexpr size_t kMaxFrameHistorySize = 256; struct LayerFrame { int64_t frame_id; int64_t picture_id;