diff --git a/avplay.c b/avplay.c index 242b9aec87795a8eea5a4603c2d7f29a737b214e..98fd954be5ae531104591b178dcbec9cec8dac78 100644 --- a/avplay.c +++ b/avplay.c @@ -1580,8 +1580,10 @@ static int video_thread(void *arg) AVFilterContext *filt_out = NULL, *filt_in = NULL; int last_w = is->video_st->codec->width; int last_h = is->video_st->codec->height; - if (!graph) + if (!graph) { + av_frame_free(&frame); return AVERROR(ENOMEM); + } if ((ret = configure_video_filters(graph, is, vfilters)) < 0) goto the_end; @@ -1589,8 +1591,12 @@ static int video_thread(void *arg) filt_out = is->out_video_filter; #endif - if (!frame) + if (!frame) { +#if CONFIG_AVFILTER + avfilter_graph_free(&graph); +#endif return AVERROR(ENOMEM); + } for (;;) { #if CONFIG_AVFILTER