This should increase coverage on some decoders by executing flushing code. Signed-off-by: James Almer <jamr...@gmail.com> --- tools/target_dec_fuzzer.c | 4 ++++ 1 file changed, 4 insertions(+)
diff --git a/tools/target_dec_fuzzer.c b/tools/target_dec_fuzzer.c index dcf47b0f4d..3c2f9125bb 100644 --- a/tools/target_dec_fuzzer.c +++ b/tools/target_dec_fuzzer.c @@ -256,6 +256,7 @@ int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) { error("Failed memory allocation"); memcpy(parsepkt.data, last, data - last); parsepkt.flags = (keyframes & 1) * AV_PKT_FLAG_DISCARD + (!!(keyframes & 2)) * AV_PKT_FLAG_KEY; + int flush = !!(keyframes & 4); keyframes = (keyframes >> 2) + (keyframes<<62); data += sizeof(fuzz_tag); last = data; @@ -289,6 +290,9 @@ int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) { av_packet_move_ref(&avpkt, &parsepkt); } + if (avpkt.flags & AV_PKT_FLAG_KEY && flush) + avcodec_flush_buffers(ctx); + // Iterate through all data while (avpkt.size > 0 && it++ < maxiteration) { av_frame_unref(frame); -- 2.24.0 _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".