Never drop keyframes in VP9 encoder fuzzer
Libvpx VP9 encoder never drops keyframe.
Bug: chromium:379326016
Change-Id: I013cd24f224b22ee096990633167a9c2ddabd4f2
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/378821
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Commit-Queue: Sergey Silkin <ssilkin@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#43979}
diff --git a/test/fuzzers/vp9_encoder_references_fuzzer.cc b/test/fuzzers/vp9_encoder_references_fuzzer.cc
index e41847d..31f0435 100644
--- a/test/fuzzers/vp9_encoder_references_fuzzer.cc
+++ b/test/fuzzers/vp9_encoder_references_fuzzer.cc
@@ -599,21 +599,24 @@
// Don't encode disabled spatial layers.
continue;
}
- bool drop = true;
- switch (state.frame_drop.framedrop_mode) {
- case FULL_SUPERFRAME_DROP:
- drop = encode_spatial_layers == 0;
- break;
- case LAYER_DROP:
- drop = (encode_spatial_layers & (1 << sid)) == 0;
- break;
- case CONSTRAINED_LAYER_DROP:
- drop = DropBelow(encode_spatial_layers, sid,
- state.config.ss_number_layers);
- break;
- case CONSTRAINED_FROM_ABOVE_DROP:
- drop = DropAbove(encode_spatial_layers, sid);
- break;
+ bool drop = false;
+ // Never drop keyframe.
+ if (frame_types[0] != VideoFrameType::kVideoFrameKey) {
+ switch (state.frame_drop.framedrop_mode) {
+ case FULL_SUPERFRAME_DROP:
+ drop = encode_spatial_layers == 0;
+ break;
+ case LAYER_DROP:
+ drop = (encode_spatial_layers & (1 << sid)) == 0;
+ break;
+ case CONSTRAINED_LAYER_DROP:
+ drop = DropBelow(encode_spatial_layers, sid,
+ state.config.ss_number_layers);
+ break;
+ case CONSTRAINED_FROM_ABOVE_DROP:
+ drop = DropAbove(encode_spatial_layers, sid);
+ break;
+ }
}
if (!drop) {
state.layer_id.spatial_layer_id = sid;