mirror of https://git.ffmpeg.org/ffmpeg.git
tools/target_dec_fuzzer: Use decoder and not codec_id as argument
This allows fuzzing decoders with the same codec_id We also avoid register all to allow the linker to prune unused sections and symbols Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
This commit is contained in:
parent
3f17751eeb
commit
dec2fa8cc7
|
@ -2,7 +2,7 @@ TOOLS = qt-faststart trasher uncoded_frame
|
|||
TOOLS-$(CONFIG_ZLIB) += cws2fws
|
||||
|
||||
tools/target_dec_%_fuzzer.o: tools/target_dec_fuzzer.c
|
||||
$(COMPILE_C) -DFFMPEG_CODEC=AV_CODEC_ID_$*
|
||||
$(COMPILE_C) -DFFMPEG_DECODER=$*
|
||||
|
||||
OBJDIRS += tools
|
||||
|
||||
|
|
|
@ -66,7 +66,7 @@ static AVCodec *c = NULL;
|
|||
static AVCodec *AVCodecInitialize(enum AVCodecID codec_id)
|
||||
{
|
||||
AVCodec *res;
|
||||
avcodec_register_all();
|
||||
|
||||
av_log_set_level(AV_LOG_PANIC);
|
||||
res = avcodec_find_decoder(codec_id);
|
||||
if (!res)
|
||||
|
@ -140,8 +140,20 @@ int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
|
|||
int *got_picture_ptr,
|
||||
const AVPacket *avpkt) = NULL;
|
||||
|
||||
if (!c)
|
||||
if (!c) {
|
||||
#ifdef FFMPEG_DECODER
|
||||
#define DECODER_SYMBOL0(CODEC) ff_##CODEC##_decoder
|
||||
#define DECODER_SYMBOL(CODEC) DECODER_SYMBOL0(CODEC)
|
||||
extern AVCodec DECODER_SYMBOL(FFMPEG_DECODER);
|
||||
avcodec_register(&DECODER_SYMBOL(FFMPEG_DECODER));
|
||||
int codec_id = DECODER_SYMBOL(FFMPEG_DECODER).id;
|
||||
|
||||
c = AVCodecInitialize(codec_id); // Done once.
|
||||
#else
|
||||
avcodec_register_all();
|
||||
c = AVCodecInitialize(FFMPEG_CODEC); // Done once.
|
||||
#endif
|
||||
}
|
||||
|
||||
switch (c->type) {
|
||||
case AVMEDIA_TYPE_AUDIO : decode_handler = avcodec_decode_audio4; break;
|
||||
|
|
Loading…
Reference in New Issue