diff options
author | Clément Bœsch <u@pkh.me> | 2016-07-22 22:20:53 +0200 |
---|---|---|
committer | Clément Bœsch <u@pkh.me> | 2016-07-24 12:18:30 +0200 |
commit | 050f790594ee21cc1b9e36ffbbe23dde9617451f (patch) | |
tree | f4da294c83ac551cd79deef3381a5a0bbb6f3d0e /libavfilter/vf_curves.c | |
parent | 4eee06ae873095ad7413830753c9bd7d793d31ba (diff) | |
download | ffmpeg-050f790594ee21cc1b9e36ffbbe23dde9617451f.tar.gz |
lavfi/curves: dynamically allocate LUTs
This simplifies following commits.
Diffstat (limited to 'libavfilter/vf_curves.c')
-rw-r--r-- | libavfilter/vf_curves.c | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/libavfilter/vf_curves.c b/libavfilter/vf_curves.c index 5b569682f8..85bffb1f25 100644 --- a/libavfilter/vf_curves.c +++ b/libavfilter/vf_curves.c @@ -63,7 +63,7 @@ typedef struct { int preset; char *comp_points_str[NB_COMP + 1]; char *comp_points_str_all; - uint8_t graph[NB_COMP + 1][256]; + uint8_t *graph[NB_COMP + 1]; char *psfile; uint8_t rgba_map[4]; int step; @@ -379,7 +379,7 @@ end: return ret; } -static int dump_curves(const char *fname, uint8_t graph[NB_COMP + 1][256], +static int dump_curves(const char *fname, uint8_t *graph[NB_COMP + 1], struct keypoint *comp_points[NB_COMP + 1]) { int i; @@ -479,6 +479,9 @@ static av_cold int init(AVFilterContext *ctx) } for (i = 0; i < NB_COMP + 1; i++) { + curves->graph[i] = av_mallocz(256); + if (!curves->graph[i]) + return AVERROR(ENOMEM); ret = parse_points_str(ctx, comp_points + i, curves->comp_points_str[i]); if (ret < 0) return ret; @@ -606,6 +609,15 @@ static int filter_frame(AVFilterLink *inlink, AVFrame *in) return ff_filter_frame(outlink, out); } +static av_cold void uninit(AVFilterContext *ctx) +{ + int i; + CurvesContext *curves = ctx->priv; + + for (i = 0; i < NB_COMP + 1; i++) + av_freep(&curves->graph[i]); +} + static const AVFilterPad curves_inputs[] = { { .name = "default", @@ -629,6 +641,7 @@ AVFilter ff_vf_curves = { .description = NULL_IF_CONFIG_SMALL("Adjust components curves."), .priv_size = sizeof(CurvesContext), .init = init, + .uninit = uninit, .query_formats = query_formats, .inputs = curves_inputs, .outputs = curves_outputs, |