This filter is a simple wrapper around the LUT filter. Signed-off-by: Anton Khirnov <anton@khirnov.net>tags/n0.9
| @@ -813,7 +813,12 @@ format=rgba,lutrgb=a="maxval-minval/2" | |||||
| lutyuv=y=gammaval(0.5) | lutyuv=y=gammaval(0.5) | ||||
| @end example | @end example | ||||
| @section noformat | |||||
| @section negate | |||||
| Negate input video. | |||||
| This filter accepts an integer in input, if non-zero it negates the | |||||
| alpha component (if available). The default value in input is 0. | |||||
| Force libavfilter not to use any of the specified pixel formats for the | Force libavfilter not to use any of the specified pixel formats for the | ||||
| input to the next filter. | input to the next filter. | ||||
| @@ -36,6 +36,7 @@ OBJS-$(CONFIG_HQDN3D_FILTER) += vf_hqdn3d.o | |||||
| OBJS-$(CONFIG_LUT_FILTER) += vf_lut.o | OBJS-$(CONFIG_LUT_FILTER) += vf_lut.o | ||||
| OBJS-$(CONFIG_LUTRGB_FILTER) += vf_lut.o | OBJS-$(CONFIG_LUTRGB_FILTER) += vf_lut.o | ||||
| OBJS-$(CONFIG_LUTYUV_FILTER) += vf_lut.o | OBJS-$(CONFIG_LUTYUV_FILTER) += vf_lut.o | ||||
| OBJS-$(CONFIG_NEGATE_FILTER) += vf_lut.o | |||||
| OBJS-$(CONFIG_NOFORMAT_FILTER) += vf_format.o | OBJS-$(CONFIG_NOFORMAT_FILTER) += vf_format.o | ||||
| OBJS-$(CONFIG_NULL_FILTER) += vf_null.o | OBJS-$(CONFIG_NULL_FILTER) += vf_null.o | ||||
| OBJS-$(CONFIG_OCV_FILTER) += vf_libopencv.o | OBJS-$(CONFIG_OCV_FILTER) += vf_libopencv.o | ||||
| @@ -57,6 +57,7 @@ void avfilter_register_all(void) | |||||
| REGISTER_FILTER (LUT, lut, vf); | REGISTER_FILTER (LUT, lut, vf); | ||||
| REGISTER_FILTER (LUTRGB, lutrgb, vf); | REGISTER_FILTER (LUTRGB, lutrgb, vf); | ||||
| REGISTER_FILTER (LUTYUV, lutyuv, vf); | REGISTER_FILTER (LUTYUV, lutyuv, vf); | ||||
| REGISTER_FILTER (NEGATE, negate, vf); | |||||
| REGISTER_FILTER (NOFORMAT, noformat, vf); | REGISTER_FILTER (NOFORMAT, noformat, vf); | ||||
| REGISTER_FILTER (NULL, null, vf); | REGISTER_FILTER (NULL, null, vf); | ||||
| REGISTER_FILTER (OCV, ocv, vf); | REGISTER_FILTER (OCV, ocv, vf); | ||||
| @@ -29,7 +29,7 @@ | |||||
| #include "libavutil/rational.h" | #include "libavutil/rational.h" | ||||
| #define LIBAVFILTER_VERSION_MAJOR 2 | #define LIBAVFILTER_VERSION_MAJOR 2 | ||||
| #define LIBAVFILTER_VERSION_MINOR 8 | |||||
| #define LIBAVFILTER_VERSION_MINOR 9 | |||||
| #define LIBAVFILTER_VERSION_MICRO 0 | #define LIBAVFILTER_VERSION_MICRO 0 | ||||
| #define LIBAVFILTER_VERSION_INT AV_VERSION_INT(LIBAVFILTER_VERSION_MAJOR, \ | #define LIBAVFILTER_VERSION_INT AV_VERSION_INT(LIBAVFILTER_VERSION_MAJOR, \ | ||||
| @@ -69,6 +69,7 @@ typedef struct { | |||||
| int is_rgb, is_yuv; | int is_rgb, is_yuv; | ||||
| int rgba_map[4]; | int rgba_map[4]; | ||||
| int step; | int step; | ||||
| int negate_alpha; /* only used by negate */ | |||||
| } LutContext; | } LutContext; | ||||
| #define Y 0 | #define Y 0 | ||||
| @@ -369,3 +370,25 @@ DEFINE_LUT_FILTER(lutyuv, "Compute and apply a lookup table to the YUV input vid | |||||
| #if CONFIG_LUTRGB_FILTER | #if CONFIG_LUTRGB_FILTER | ||||
| DEFINE_LUT_FILTER(lutrgb, "Compute and apply a lookup table to the RGB input video.", init); | DEFINE_LUT_FILTER(lutrgb, "Compute and apply a lookup table to the RGB input video.", init); | ||||
| #endif | #endif | ||||
| #if CONFIG_NEGATE_FILTER | |||||
| static int negate_init(AVFilterContext *ctx, const char *args, void *opaque) | |||||
| { | |||||
| LutContext *lut = ctx->priv; | |||||
| char lut_params[64]; | |||||
| if (args) | |||||
| sscanf(args, "%d", &lut->negate_alpha); | |||||
| av_log(ctx, AV_LOG_DEBUG, "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 | |||||