[FFmpeg-devel] [PATCH] scale: fix leak occurring when a scale filter is reconfigured

Stefano Sabatini stefano.sabatini-lala at poste.it
Mon May 2 17:15:58 CEST 2011


On date Monday 2011-05-02 12:45:17 +0200, Michael Niedermayer encoded:
> On Mon, May 02, 2011 at 12:37:35PM +0200, Stefano Sabatini wrote:
> > 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 files changed, 5 insertions(+), 1 deletions(-)
> > 
> > diff --git a/libavfilter/vf_scale.c b/libavfilter/vf_scale.c
> > index da84efc..9ff93bd 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);
> 
> sws_getCachedContext() could maybe be used
> but your patch is ok too

Applied this variant.
-- 
FFmpeg = Foolish and Fostering Most Practical Ecletic Generator


More information about the ffmpeg-devel mailing list