diff options
author | Stefano Sabatini <stefano.sabatini-lala@poste.it> | 2011-05-28 22:00:26 +0200 |
---|---|---|
committer | Stefano Sabatini <stefano.sabatini-lala@poste.it> | 2011-06-19 19:06:55 +0200 |
commit | 15f03725ced37e3b99e76f63f52cb92e10f134e2 (patch) | |
tree | c3615129590315c08798b160cff04e6fe19bfddd /libavfilter/vf_lut.c | |
parent | dd2793c880ea72c9aacda8245596694d9b4f378c (diff) |
lavfi: add negate filter
This filter is a simple wrapper around the LUT filter.
Diffstat (limited to 'libavfilter/vf_lut.c')
-rw-r--r-- | libavfilter/vf_lut.c | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/libavfilter/vf_lut.c b/libavfilter/vf_lut.c index 895293d12d..792e274c33 100644 --- a/libavfilter/vf_lut.c +++ b/libavfilter/vf_lut.c @@ -67,6 +67,7 @@ typedef struct { int is_rgb, is_yuv; int rgba_map[4]; int step; + int negate_alpha; /* only used by negate */ } LutContext; #define Y 0 @@ -366,3 +367,25 @@ static void draw_slice(AVFilterLink *inlink, int y, int h, int slice_dir) DEFINE_LUT_FILTER(lut, "Compute and apply a lookup table to the RGB/YUV input video.", init); DEFINE_LUT_FILTER(lutyuv, "Compute and apply a lookup table to the YUV input video.", init); DEFINE_LUT_FILTER(lutrgb, "Compute and apply a lookup table to the RGB input video.", init); + +#if CONFIG_NEGATE_FILTER + +static int negate_init(AVFilterContext *ctx, const char *args, void *opaque) +{ + LutContext *lut = ctx->priv; + char lut_params[1024]; + + if (args) + sscanf(args, "%d", &lut->negate_alpha); + + av_log(ctx, AV_LOG_INFO, "negate_alpha:%d\n", lut->negate_alpha); + + snprintf(lut_params, sizeof(lut_params), "c0=negval:c1=negval:c2=negval:a=%s", + lut->negate_alpha ? "negval" : "val"); + + return init(ctx, lut_params, opaque); +} + +DEFINE_LUT_FILTER(negate, "Negate input video.", negate_init); + +#endif |