X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=ffmpeg_filter.c;h=7745cb61b57330aebda0fe7fd597cb6c762edec7;hb=43a4276c6964a2ec57e08c3c622bb94d35c0441f;hp=1608eb12b3acd957c384b6e692e76ab31dc62f5a;hpb=508957fd0fc398271f3ec87cde63ba4533678bf9;p=ffmpeg diff --git a/ffmpeg_filter.c b/ffmpeg_filter.c index 1608eb12b3a..7745cb61b57 100644 --- a/ffmpeg_filter.c +++ b/ffmpeg_filter.c @@ -728,7 +728,8 @@ static int configure_input_video_filter(FilterGraph *fg, InputFilter *ifilter, if (ist->dec_ctx->codec_type == AVMEDIA_TYPE_AUDIO) { av_log(NULL, AV_LOG_ERROR, "Cannot connect video filter to audio input\n"); - return AVERROR(EINVAL); + ret = AVERROR(EINVAL); + goto fail; } if (!fr.num) @@ -737,7 +738,7 @@ static int configure_input_video_filter(FilterGraph *fg, InputFilter *ifilter, if (ist->dec_ctx->codec_type == AVMEDIA_TYPE_SUBTITLE) { ret = sub2video_prepare(ist); if (ret < 0) - return ret; + goto fail; } sar = ist->st->sample_aspect_ratio.num ? @@ -761,11 +762,11 @@ static int configure_input_video_filter(FilterGraph *fg, InputFilter *ifilter, if ((ret = avfilter_graph_create_filter(&ifilter->filter, buffer_filt, name, args.str, NULL, fg->graph)) < 0) - return ret; + goto fail; par->hw_frames_ctx = ist->hw_frames_ctx; ret = av_buffersrc_parameters_set(ifilter->filter, par); if (ret < 0) - return ret; + goto fail; av_freep(&par); last_filter = ifilter->filter; @@ -840,6 +841,10 @@ static int configure_input_video_filter(FilterGraph *fg, InputFilter *ifilter, if ((ret = avfilter_link(last_filter, 0, in->filter_ctx, in->pad_idx)) < 0) return ret; return 0; +fail: + av_freep(&par); + + return ret; } static int configure_input_audio_filter(FilterGraph *fg, InputFilter *ifilter,