mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2025-01-29 22:00:58 +02:00
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.
This commit is contained in:
parent
0f1ef8a316
commit
f97905e61d
@ -214,14 +214,18 @@ static int config_props(AVFilterLink *outlink)
|
|||||||
|
|
||||||
scale->input_is_pal = av_pix_fmt_descriptors[inlink->format].flags & PIX_FMT_PAL;
|
scale->input_is_pal = av_pix_fmt_descriptors[inlink->format].flags & PIX_FMT_PAL;
|
||||||
|
|
||||||
if(scale->sws)
|
if (scale->sws)
|
||||||
sws_freeContext(scale->sws);
|
sws_freeContext(scale->sws);
|
||||||
scale->sws = sws_getContext(inlink ->w, inlink ->h, inlink ->format,
|
scale->sws = sws_getContext(inlink ->w, inlink ->h, inlink ->format,
|
||||||
outlink->w, outlink->h, outlink->format,
|
outlink->w, outlink->h, outlink->format,
|
||||||
scale->flags, NULL, NULL, NULL);
|
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,
|
scale->isws[0] = sws_getContext(inlink ->w, inlink ->h/2, inlink ->format,
|
||||||
outlink->w, outlink->h/2, outlink->format,
|
outlink->w, outlink->h/2, outlink->format,
|
||||||
scale->flags, NULL, NULL, NULL);
|
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,
|
scale->isws[1] = sws_getContext(inlink ->w, inlink ->h/2, inlink ->format,
|
||||||
outlink->w, outlink->h/2, outlink->format,
|
outlink->w, outlink->h/2, outlink->format,
|
||||||
scale->flags, NULL, NULL, NULL);
|
scale->flags, NULL, NULL, NULL);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user