From f97905e61d7cb86987d7d4f5fabcfc0d6b57ddbb Mon Sep 17 00:00:00 2001 From: Stefano Sabatini Date: Mon, 2 May 2011 12:35:39 +0200 Subject: scale: fix leak occurring when a scale filter is reconfigured This currently only occurrs in vsrc_buffer in case of mid-stream size/format change. Fix trac issue #124. --- libavfilter/vf_scale.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'libavfilter') diff --git a/libavfilter/vf_scale.c b/libavfilter/vf_scale.c index da84efcbb1..9ff93bd411 100644 --- a/libavfilter/vf_scale.c +++ b/libavfilter/vf_scale.c @@ -214,14 +214,18 @@ static int config_props(AVFilterLink *outlink) scale->input_is_pal = av_pix_fmt_descriptors[inlink->format].flags & PIX_FMT_PAL; - if(scale->sws) + if (scale->sws) sws_freeContext(scale->sws); scale->sws = sws_getContext(inlink ->w, inlink ->h, inlink ->format, outlink->w, outlink->h, outlink->format, scale->flags, NULL, NULL, NULL); + if (scale->isws[0]) + sws_freeContext(scale->isws[0]); scale->isws[0] = sws_getContext(inlink ->w, inlink ->h/2, inlink ->format, outlink->w, outlink->h/2, outlink->format, scale->flags, NULL, NULL, NULL); + if (scale->isws[1]) + sws_freeContext(scale->isws[1]); scale->isws[1] = sws_getContext(inlink ->w, inlink ->h/2, inlink ->format, outlink->w, outlink->h/2, outlink->format, scale->flags, NULL, NULL, NULL); -- cgit v1.2.3