You've already forked FFmpeg
mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2025-08-15 14:13:16 +02:00
lavfi: add negate filter
This filter is a simple wrapper around the LUT filter.
This commit is contained in:
1
configure
vendored
1
configure
vendored
@@ -1500,6 +1500,7 @@ frei0r_src_filter_deps="frei0r dlopen strtok_r"
|
|||||||
hqdn3d_filter_deps="gpl"
|
hqdn3d_filter_deps="gpl"
|
||||||
movie_filter_deps="avcodec avformat"
|
movie_filter_deps="avcodec avformat"
|
||||||
mp_filter_deps="gpl avcodec"
|
mp_filter_deps="gpl avcodec"
|
||||||
|
negate_filter_deps="lut_filter"
|
||||||
ocv_filter_deps="libopencv"
|
ocv_filter_deps="libopencv"
|
||||||
scale_filter_deps="swscale"
|
scale_filter_deps="swscale"
|
||||||
yadif_filter_deps="gpl"
|
yadif_filter_deps="gpl"
|
||||||
|
@@ -911,6 +911,13 @@ mp=hue=100:-10
|
|||||||
|
|
||||||
See also mplayer(1), @url{http://www.mplayerhq.hu/}.
|
See also mplayer(1), @url{http://www.mplayerhq.hu/}.
|
||||||
|
|
||||||
|
@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.
|
||||||
|
|
||||||
@section noformat
|
@section noformat
|
||||||
|
|
||||||
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
|
||||||
|
@@ -42,6 +42,7 @@ 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_MP_FILTER) += vf_mp.o
|
OBJS-$(CONFIG_MP_FILTER) += vf_mp.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
|
||||||
|
@@ -58,6 +58,7 @@ void avfilter_register_all(void)
|
|||||||
REGISTER_FILTER (LUTRGB, lutrgb, vf);
|
REGISTER_FILTER (LUTRGB, lutrgb, vf);
|
||||||
REGISTER_FILTER (LUTYUV, lutyuv, vf);
|
REGISTER_FILTER (LUTYUV, lutyuv, vf);
|
||||||
REGISTER_FILTER (MP, mp, vf);
|
REGISTER_FILTER (MP, mp, 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);
|
||||||
|
@@ -26,7 +26,7 @@
|
|||||||
#include "libavutil/samplefmt.h"
|
#include "libavutil/samplefmt.h"
|
||||||
|
|
||||||
#define LIBAVFILTER_VERSION_MAJOR 2
|
#define LIBAVFILTER_VERSION_MAJOR 2
|
||||||
#define LIBAVFILTER_VERSION_MINOR 19
|
#define LIBAVFILTER_VERSION_MINOR 20
|
||||||
#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, \
|
||||||
|
@@ -67,6 +67,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
|
||||||
@@ -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(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(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);
|
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
|
||||||
|
Reference in New Issue
Block a user