diff --git a/configure b/configure index d6b8dd3497..f146f7e82c 100755 --- a/configure +++ b/configure @@ -2118,7 +2118,6 @@ blackframe_filter_deps="gpl" boxblur_filter_deps="gpl" colormatrix_filter_deps="gpl" cropdetect_filter_deps="gpl" -decimate_filter_deps="gpl avcodec" delogo_filter_deps="gpl" deshake_filter_deps="avcodec" deshake_filter_select="dsputil" @@ -2137,6 +2136,7 @@ interlace_filter_deps="gpl" kerndeint_filter_deps="gpl" movie_filter_deps="avcodec avformat" mp_filter_deps="gpl avcodec swscale inline_asm" +mpdecimate_filter_deps="gpl avcodec" mptestsrc_filter_deps="gpl" negate_filter_deps="lut_filter" noise_filter_deps="gpl" diff --git a/doc/filters.texi b/doc/filters.texi index 391faff1b6..cd1ba7ee23 100644 --- a/doc/filters.texi +++ b/doc/filters.texi @@ -2383,7 +2383,7 @@ curves=vintage @end example @end itemize -@section decimate +@section mpdecimate Drop frames that do not differ greatly from the previous frame in order to reduce frame rate. diff --git a/libavfilter/Makefile b/libavfilter/Makefile index dd6e8af94d..783ff00c2a 100644 --- a/libavfilter/Makefile +++ b/libavfilter/Makefile @@ -109,7 +109,6 @@ OBJS-$(CONFIG_COPY_FILTER) += vf_copy.o OBJS-$(CONFIG_CROP_FILTER) += vf_crop.o OBJS-$(CONFIG_CROPDETECT_FILTER) += vf_cropdetect.o OBJS-$(CONFIG_CURVES_FILTER) += vf_curves.o -OBJS-$(CONFIG_DECIMATE_FILTER) += vf_decimate.o OBJS-$(CONFIG_DELOGO_FILTER) += vf_delogo.o OBJS-$(CONFIG_DESHAKE_FILTER) += vf_deshake.o OBJS-$(CONFIG_DRAWBOX_FILTER) += vf_drawbox.o @@ -137,6 +136,7 @@ OBJS-$(CONFIG_LUT_FILTER) += vf_lut.o OBJS-$(CONFIG_LUTRGB_FILTER) += vf_lut.o OBJS-$(CONFIG_LUTYUV_FILTER) += vf_lut.o OBJS-$(CONFIG_MP_FILTER) += vf_mp.o +OBJS-$(CONFIG_MPDECIMATE_FILTER) += vf_mpdecimate.o OBJS-$(CONFIG_NEGATE_FILTER) += vf_lut.o OBJS-$(CONFIG_NOFORMAT_FILTER) += vf_format.o OBJS-$(CONFIG_NOISE_FILTER) += vf_noise.o diff --git a/libavfilter/allfilters.c b/libavfilter/allfilters.c index 19cf1c8d83..bba036c268 100644 --- a/libavfilter/allfilters.c +++ b/libavfilter/allfilters.c @@ -107,7 +107,6 @@ void avfilter_register_all(void) REGISTER_FILTER(CROP, crop, vf); REGISTER_FILTER(CROPDETECT, cropdetect, vf); REGISTER_FILTER(CURVES, curves, vf); - REGISTER_FILTER(DECIMATE, decimate, vf); REGISTER_FILTER(DELOGO, delogo, vf); REGISTER_FILTER(DESHAKE, deshake, vf); REGISTER_FILTER(DRAWBOX, drawbox, vf); @@ -135,6 +134,7 @@ void avfilter_register_all(void) REGISTER_FILTER(LUTRGB, lutrgb, vf); REGISTER_FILTER(LUTYUV, lutyuv, vf); REGISTER_FILTER(MP, mp, vf); + REGISTER_FILTER(MPDECIMATE, mpdecimate, vf); REGISTER_FILTER(NEGATE, negate, vf); REGISTER_FILTER(NOFORMAT, noformat, vf); REGISTER_FILTER(NOISE, noise, vf); diff --git a/libavfilter/version.h b/libavfilter/version.h index 2e71970c93..5185b19636 100644 --- a/libavfilter/version.h +++ b/libavfilter/version.h @@ -29,7 +29,7 @@ #include "libavutil/avutil.h" #define LIBAVFILTER_VERSION_MAJOR 3 -#define LIBAVFILTER_VERSION_MINOR 54 +#define LIBAVFILTER_VERSION_MINOR 55 #define LIBAVFILTER_VERSION_MICRO 100 #define LIBAVFILTER_VERSION_INT AV_VERSION_INT(LIBAVFILTER_VERSION_MAJOR, \ diff --git a/libavfilter/vf_decimate.c b/libavfilter/vf_mpdecimate.c similarity index 94% rename from libavfilter/vf_decimate.c rename to libavfilter/vf_mpdecimate.c index 963f1d5865..55f0f27ae0 100644 --- a/libavfilter/vf_decimate.c +++ b/libavfilter/vf_mpdecimate.c @@ -20,7 +20,7 @@ */ /** - * @file decimate filter, ported from libmpcodecs/vf_decimate.c by + * @file mpdecimate filter, ported from libmpcodecs/vf_decimate.c by * Rich Felker. */ @@ -55,7 +55,7 @@ typedef struct { #define OFFSET(x) offsetof(DecimateContext, x) #define FLAGS AV_OPT_FLAG_VIDEO_PARAM|AV_OPT_FLAG_FILTERING_PARAM -static const AVOption decimate_options[] = { +static const AVOption mpdecimate_options[] = { { "max", "set the maximum number of consecutive dropped frames (positive), or the minimum interval between dropped frames (negative)", OFFSET(max_drop_count), AV_OPT_TYPE_INT, {.i64=0}, INT_MIN, INT_MAX, FLAGS }, { "hi", "set high dropping threshold", OFFSET(hi), AV_OPT_TYPE_INT, {.i64=64*12}, INT_MIN, INT_MAX, FLAGS }, @@ -64,7 +64,7 @@ static const AVOption decimate_options[] = { { NULL } }; -AVFILTER_DEFINE_CLASS(decimate); +AVFILTER_DEFINE_CLASS(mpdecimate); /** * Return 1 if the two planes are different, 0 otherwise. @@ -224,7 +224,7 @@ static int request_frame(AVFilterLink *outlink) return ret; } -static const AVFilterPad decimate_inputs[] = { +static const AVFilterPad mpdecimate_inputs[] = { { .name = "default", .type = AVMEDIA_TYPE_VIDEO, @@ -235,7 +235,7 @@ static const AVFilterPad decimate_inputs[] = { { NULL } }; -static const AVFilterPad decimate_outputs[] = { +static const AVFilterPad mpdecimate_outputs[] = { { .name = "default", .type = AVMEDIA_TYPE_VIDEO, @@ -244,15 +244,15 @@ static const AVFilterPad decimate_outputs[] = { { NULL } }; -AVFilter avfilter_vf_decimate = { - .name = "decimate", +AVFilter avfilter_vf_mpdecimate = { + .name = "mpdecimate", .description = NULL_IF_CONFIG_SMALL("Remove near-duplicate frames."), .init = init, .uninit = uninit, .priv_size = sizeof(DecimateContext), .query_formats = query_formats, - .inputs = decimate_inputs, - .outputs = decimate_outputs, - .priv_class = &decimate_class, + .inputs = mpdecimate_inputs, + .outputs = mpdecimate_outputs, + .priv_class = &mpdecimate_class, };