tools/target_dec_fuzzer: Disable MB debug after a few iterations

This debug code can be quite slow on constructed streams

Fixes: Timeout
Fixes: 38907/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_H264_fuzzer-6334628852531200

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
pull/375/head
Michael Niedermayer 3 years ago
parent 3a64a4c582
commit 76c41a5bfe
  1. 8
      tools/target_dec_fuzzer.c

@ -392,8 +392,10 @@ int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
decode_more = ret >= 0;
if(!decode_more) {
ec_pixels += (ctx->width + 32LL) * (ctx->height + 32LL);
if (it > 20 || ec_pixels > 4 * ctx->max_pixels)
if (it > 20 || ec_pixels > 4 * ctx->max_pixels) {
ctx->error_concealment = 0;
ctx->debug &= ~(FF_DEBUG_SKIP | FF_DEBUG_QP | FF_DEBUG_MB_TYPE);
}
if (ec_pixels > maxpixels)
goto maximums_reached;
}
@ -406,8 +408,10 @@ int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
int ret = decode_handler(ctx, frame, &got_frame, avpkt);
ec_pixels += (ctx->width + 32LL) * (ctx->height + 32LL);
if (it > 20 || ec_pixels > 4 * ctx->max_pixels)
if (it > 20 || ec_pixels > 4 * ctx->max_pixels) {
ctx->error_concealment = 0;
ctx->debug &= ~(FF_DEBUG_SKIP | FF_DEBUG_QP | FF_DEBUG_MB_TYPE);
}
if (ec_pixels > maxpixels)
goto maximums_reached;

Loading…
Cancel
Save