From e8e7eb150f152c9e4858ef0be3e76e4f98533cf6 Mon Sep 17 00:00:00 2001 From: Nicolas George Date: Sun, 25 Oct 2015 19:48:10 +0100 Subject: [PATCH] ffmpeg_filter: check encoder before using it to set frame size. Fix a segfault when no encoder is found for a default codec with a complex filter graph. --- ffmpeg_filter.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/ffmpeg_filter.c b/ffmpeg_filter.c index 10b2f5f722..9142a97e8f 100644 --- a/ffmpeg_filter.c +++ b/ffmpeg_filter.c @@ -1046,6 +1046,13 @@ int configure_filtergraph(FilterGraph *fg) for (i = 0; i < fg->nb_outputs; i++) { OutputStream *ost = fg->outputs[i]->ost; + if (!ost->enc) { + /* identical to the same check in ffmpeg.c, needed because + complex filter graphs are initialized earlier */ + av_log(NULL, AV_LOG_ERROR, "Encoder (codec %s) not found for output stream #%d:%d\n", + avcodec_get_name(ost->st->codec->codec_id), ost->file_index, ost->index); + return AVERROR(EINVAL); + } if (ost && ost->enc->type == AVMEDIA_TYPE_AUDIO && !(ost->enc->capabilities & AV_CODEC_CAP_VARIABLE_FRAME_SIZE))