mirror of https://git.ffmpeg.org/ffmpeg.git
vf_frei0r: make config_props work properly when called multiple times.
Do not leak the initialized filter instance.
This commit is contained in:
parent
87c31cfd7a
commit
d371c3c2e2
|
@ -317,6 +317,8 @@ static int config_input_props(AVFilterLink *inlink)
|
||||||
AVFilterContext *ctx = inlink->dst;
|
AVFilterContext *ctx = inlink->dst;
|
||||||
Frei0rContext *s = ctx->priv;
|
Frei0rContext *s = ctx->priv;
|
||||||
|
|
||||||
|
if (s->destruct && s->instance)
|
||||||
|
s->destruct(s->instance);
|
||||||
if (!(s->instance = s->construct(inlink->w, inlink->h))) {
|
if (!(s->instance = s->construct(inlink->w, inlink->h))) {
|
||||||
av_log(ctx, AV_LOG_ERROR, "Impossible to load frei0r instance");
|
av_log(ctx, AV_LOG_ERROR, "Impossible to load frei0r instance");
|
||||||
return AVERROR(EINVAL);
|
return AVERROR(EINVAL);
|
||||||
|
@ -451,6 +453,8 @@ static int source_config_props(AVFilterLink *outlink)
|
||||||
outlink->h = s->h;
|
outlink->h = s->h;
|
||||||
outlink->time_base = s->time_base;
|
outlink->time_base = s->time_base;
|
||||||
|
|
||||||
|
if (s->destruct && s->instance)
|
||||||
|
s->destruct(s->instance);
|
||||||
if (!(s->instance = s->construct(outlink->w, outlink->h))) {
|
if (!(s->instance = s->construct(outlink->w, outlink->h))) {
|
||||||
av_log(ctx, AV_LOG_ERROR, "Impossible to load frei0r instance");
|
av_log(ctx, AV_LOG_ERROR, "Impossible to load frei0r instance");
|
||||||
return AVERROR(EINVAL);
|
return AVERROR(EINVAL);
|
||||||
|
|
Loading…
Reference in New Issue