mirror of
				https://github.com/nyanmisaka/ffmpeg-rockchip.git
				synced 2025-10-30 20:16:42 +08:00 
			
		
		
		
	tools/target_dec_fuzzer: Call avcodec_flush_buffers() in a fuzzer choosen pattern
This should increase coverage Signed-off-by: Michael Niedermayer <michael@niedermayer.cc> Signed-off-by: James Almer <jamrial@gmail.com>
This commit is contained in:
		 Michael Niedermayer
					Michael Niedermayer
				
			
				
					committed by
					
						 James Almer
						James Almer
					
				
			
			
				
	
			
			
			 James Almer
						James Almer
					
				
			
						parent
						
							40dfb4328d
						
					
				
				
					commit
					cb59cd3466
				
			| @@ -110,6 +110,7 @@ int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) { | ||||
|                           const AVPacket *avpkt) = NULL; | ||||
|     AVCodecParserContext *parser = NULL; | ||||
|     uint64_t keyframes = 0; | ||||
|     uint64_t flushpattern = -1; | ||||
|     AVDictionary *opts = NULL; | ||||
|  | ||||
|     if (!c) { | ||||
| @@ -239,6 +240,7 @@ int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) { | ||||
|         ctx->request_channel_layout             = bytestream2_get_le64(&gbc); | ||||
|  | ||||
|         ctx->idct_algo                          = bytestream2_get_byte(&gbc) % 25; | ||||
|         flushpattern                            = bytestream2_get_le64(&gbc); | ||||
|  | ||||
|         if (flags & 0x20) { | ||||
|             switch (ctx->codec_id) { | ||||
| @@ -332,6 +334,10 @@ int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) { | ||||
|                 av_packet_move_ref(&avpkt, &parsepkt); | ||||
|             } | ||||
|  | ||||
|           if (!(flushpattern & 7)) | ||||
|               avcodec_flush_buffers(ctx); | ||||
|           flushpattern = (flushpattern >> 3) + (flushpattern << 61); | ||||
|  | ||||
|           // Iterate through all data | ||||
|           while (avpkt.size > 0 && it++ < maxiteration) { | ||||
|             av_frame_unref(frame); | ||||
|   | ||||
		Reference in New Issue
	
	Block a user