lavfi: add negate filter

This filter is a simple wrapper around the LUT filter.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
This commit is contained in:
Stefano Sabatini 2011-05-28 22:00:26 +02:00 committed by Anton Khirnov
parent 8fe0c527f3
commit 171868e25a
5 changed files with 32 additions and 2 deletions

View File

@ -813,7 +813,12 @@ format=rgba,lutrgb=a="maxval-minval/2"
lutyuv=y=gammaval(0.5)
@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
input to the next filter.

View File

@ -36,6 +36,7 @@ OBJS-$(CONFIG_HQDN3D_FILTER) += vf_hqdn3d.o
OBJS-$(CONFIG_LUT_FILTER) += vf_lut.o
OBJS-$(CONFIG_LUTRGB_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_NULL_FILTER) += vf_null.o
OBJS-$(CONFIG_OCV_FILTER) += vf_libopencv.o

View File

@ -57,6 +57,7 @@ void avfilter_register_all(void)
REGISTER_FILTER (LUT, lut, vf);
REGISTER_FILTER (LUTRGB, lutrgb, vf);
REGISTER_FILTER (LUTYUV, lutyuv, vf);
REGISTER_FILTER (NEGATE, negate, vf);
REGISTER_FILTER (NOFORMAT, noformat, vf);
REGISTER_FILTER (NULL, null, vf);
REGISTER_FILTER (OCV, ocv, vf);

View File

@ -29,7 +29,7 @@
#include "libavutil/rational.h"
#define LIBAVFILTER_VERSION_MAJOR 2
#define LIBAVFILTER_VERSION_MINOR 8
#define LIBAVFILTER_VERSION_MINOR 9
#define LIBAVFILTER_VERSION_MICRO 0
#define LIBAVFILTER_VERSION_INT AV_VERSION_INT(LIBAVFILTER_VERSION_MAJOR, \

View File

@ -69,6 +69,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
@ -369,3 +370,25 @@ DEFINE_LUT_FILTER(lutyuv, "Compute and apply a lookup table to the YUV input vid
#if CONFIG_LUTRGB_FILTER
DEFINE_LUT_FILTER(lutrgb, "Compute and apply a lookup table to the RGB input video.", init);
#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