diff mbox

[FFmpeg-devel] tools/target_dec_bsf: call avcodec_flush_buffers() on random keyframes

Message ID 20191206191623.2669-1-jamrial@gmail.com
State New
Headers show

Commit Message

James Almer Dec. 6, 2019, 7:16 p.m. UTC
This should increase coverage on some decoders by executing flushing code.

Signed-off-by: James Almer <jamrial@gmail.com>
---
 tools/target_dec_fuzzer.c | 4 ++++
 1 file changed, 4 insertions(+)

Comments

Michael Niedermayer Dec. 6, 2019, 11:05 p.m. UTC | #1
On Fri, Dec 06, 2019 at 04:16:23PM -0300, James Almer wrote:
> This should increase coverage on some decoders by executing flushing code.
> 
> Signed-off-by: James Almer <jamrial@gmail.com>
> ---

>  tools/target_dec_fuzzer.c | 4 ++++

"[PATCH] tools/target_dec_bsf:"

this isnt matching

[...]
diff mbox

Patch

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);