diff options
author | Michael Niedermayer <michaelni@gmx.at> | 2013-05-17 10:51:59 +0200 |
---|---|---|
committer | Michael Niedermayer <michaelni@gmx.at> | 2013-05-17 10:51:59 +0200 |
commit | d5e5e73c52d3e2e1d853b2d485223d3c7b01da4f (patch) | |
tree | e45e9c33d49036e03e84c6bd352ae3c05c5e823a | |
parent | 5bc892cb17225c8bfd54c12abf45012f393f03e3 (diff) | |
parent | d371c3c2e2830d9783465ecfe1ab7d93351083b7 (diff) | |
download | ffmpeg-d5e5e73c52d3e2e1d853b2d485223d3c7b01da4f.tar.gz |
Merge commit 'd371c3c2e2830d9783465ecfe1ab7d93351083b7'
* commit 'd371c3c2e2830d9783465ecfe1ab7d93351083b7':
vf_frei0r: make config_props work properly when called multiple times.
vf_gradfun: make config_props work properly when called multiple times.
vf_lut: make config_props work properly when called multiple times.
Conflicts:
libavfilter/vf_lut.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
-rw-r--r-- | libavfilter/vf_frei0r.c | 4 | ||||
-rw-r--r-- | libavfilter/vf_gradfun.c | 1 | ||||
-rw-r--r-- | libavfilter/vf_lut.c | 2 |
3 files changed, 7 insertions, 0 deletions
diff --git a/libavfilter/vf_frei0r.c b/libavfilter/vf_frei0r.c index 8602d3fc81..5ace481238 100644 --- a/libavfilter/vf_frei0r.c +++ b/libavfilter/vf_frei0r.c @@ -353,6 +353,8 @@ static int config_input_props(AVFilterLink *inlink) AVFilterContext *ctx = inlink->dst; Frei0rContext *s = ctx->priv; + if (s->destruct && s->instance) + s->destruct(s->instance); if (!(s->instance = s->construct(inlink->w, inlink->h))) { av_log(ctx, AV_LOG_ERROR, "Impossible to load frei0r instance\n"); return AVERROR(EINVAL); @@ -487,6 +489,8 @@ static int source_config_props(AVFilterLink *outlink) outlink->time_base = s->time_base; outlink->sample_aspect_ratio = (AVRational){1,1}; + if (s->destruct && s->instance) + s->destruct(s->instance); if (!(s->instance = s->construct(outlink->w, outlink->h))) { av_log(ctx, AV_LOG_ERROR, "Impossible to load frei0r instance\n"); return AVERROR(EINVAL); diff --git a/libavfilter/vf_gradfun.c b/libavfilter/vf_gradfun.c index 6e92e3eed2..3abbd79e4f 100644 --- a/libavfilter/vf_gradfun.c +++ b/libavfilter/vf_gradfun.c @@ -168,6 +168,7 @@ static int config_input(AVFilterLink *inlink) int hsub = desc->log2_chroma_w; int vsub = desc->log2_chroma_h; + av_freep(&s->buf); s->buf = av_mallocz((FFALIGN(inlink->w, 16) * (s->radius + 1) / 2 + 32) * sizeof(uint16_t)); if (!s->buf) return AVERROR(ENOMEM); diff --git a/libavfilter/vf_lut.c b/libavfilter/vf_lut.c index 7a6da5ec11..68320d0b41 100644 --- a/libavfilter/vf_lut.c +++ b/libavfilter/vf_lut.c @@ -221,6 +221,8 @@ static int config_props(AVFilterLink *inlink) int comp = s->is_rgb ? rgba_map[color] : color; /* create the parsed expression */ + av_expr_free(s->comp_expr[color]); + s->comp_expr[color] = NULL; ret = av_expr_parse(&s->comp_expr[color], s->comp_expr_str[color], var_names, funcs1_names, funcs1, NULL, NULL, 0, ctx); if (ret < 0) { |