[FFmpeg-devel] [PATCH 1/6] reitnerlace - tinterlace-like filter under LGPL

Thomas Mundt tmundt75 at gmail.com
Thu Apr 12 19:45:45 EEST 2018


Hi,

2018-04-10 22:34 GMT+02:00 Vasile Toncu <vasile.toncu at tremend.com>:

> Hello,
>
> This is the first part of the first patch. I added interlace options to
> tinterlace. On the next patch I will delete vf_interlace.
>
>
> Thank you,
>
> Vasile Toncu
>
>
> From b2be4e949e071f9017d8a9d6fbd1fbb56505ac50 Mon Sep 17 00:00:00 2001
> From: Vasile Toncu <vasile.toncu at tremend.com>
> Date: Tue, 10 Apr 2018 23:28:32 +0300
> Subject: [PATCH] Added interlace options to tinterlace
>
> ---
>  libavfilter/Makefile        | 2 +-
>  libavfilter/vf_tinterlace.c | 9 +++++++++
>  2 files changed, 10 insertions(+), 1 deletion(-)
>
> diff --git a/libavfilter/Makefile b/libavfilter/Makefile
> index a90ca30..586d9c7 100644
> --- a/libavfilter/Makefile
> +++ b/libavfilter/Makefile
> @@ -231,7 +231,7 @@ OBJS-$(CONFIG_HYSTERESIS_FILTER) += vf_hysteresis.o
> framesync.o
>  OBJS-$(CONFIG_IDET_FILTER)                   += vf_idet.o
>  OBJS-$(CONFIG_IL_FILTER)                     += vf_il.o
>  OBJS-$(CONFIG_INFLATE_FILTER)                += vf_neighbor.o
> -OBJS-$(CONFIG_INTERLACE_FILTER)              += vf_interlace.o
> +OBJS-$(CONFIG_INTERLACE_FILTER)              += vf_tinterlace.o
>  OBJS-$(CONFIG_INTERLEAVE_FILTER)             += f_interleave.o
>  OBJS-$(CONFIG_KERNDEINT_FILTER)              += vf_kerndeint.o
>  OBJS-$(CONFIG_LENSCORRECTION_FILTER)         += vf_lenscorrection.o
> diff --git a/libavfilter/vf_tinterlace.c b/libavfilter/vf_tinterlace.c
> index f13791d..5bf384d 100644
> --- a/libavfilter/vf_tinterlace.c
> +++ b/libavfilter/vf_tinterlace.c
> @@ -53,6 +53,15 @@ static const AVOption tinterlace_options[] = {
>      {"complex_filter",    "enable complex vertical low-pass filter",
> 0, AV_OPT_TYPE_CONST, {.i64 = TINTERLACE_FLAG_CVLPF},INT_MIN, INT_MAX,
> FLAGS, "flags" },
>      {"cvlpf",             "enable complex vertical low-pass filter",
> 0, AV_OPT_TYPE_CONST, {.i64 = TINTERLACE_FLAG_CVLPF},INT_MIN, INT_MAX,
> FLAGS, "flags" },
>      {"exact_tb",          "force a timebase which can represent
> timestamps exactly", 0, AV_OPT_TYPE_CONST, {.i64 =
> TINTERLACE_FLAG_EXACT_TB}, INT_MIN, INT_MAX, FLAGS, "flags" },
> +
> +    {"scan",              "scanning mode",
> 0, AV_OPT_TYPE_CONST, {.i64 = MODE_INTERLEAVE_TOP},    INT_MIN, INT_MAX,
> FLAGS, "mode"},
> +    {"tff",               "top field first",
> 0, AV_OPT_TYPE_CONST, {.i64 = MODE_INTERLEAVE_TOP},    INT_MIN, INT_MAX,
> FLAGS, "mode"},
> +    {"bff",               "bottom field first",
> 0, AV_OPT_TYPE_CONST, {.i64 = MODE_INTERLEAVE_BOTTOM}, INT_MIN, INT_MAX,
> FLAGS, "mode"},
> +
> +    {"lowpass",           "set vertical low-pass filter",
> 0, AV_OPT_TYPE_CONST, {.i64 = TINTERLACE_FLAG_VLPF}, INT_MIN, INT_MAX,
> FLAGS, "flags"},
> +    {"off",               "disable low-pass filter",
> 0, AV_OPT_TYPE_CONST, {.i64 = 0},                    INT_MIN, INT_MAX,
> FLAGS, "flags" },
> +    {"linear",            "linear vertical low-pass filter",
> 0, AV_OPT_TYPE_CONST, {.i64 = TINTERLACE_FLAG_VLPF}, INT_MIN, INT_MAX,
> FLAGS, "flags" },
> +    {"complex",           "complex vertical low-pass filter",
> 0, AV_OPT_TYPE_CONST, {.i64 = TINTERLACE_FLAG_CVLPF},INT_MIN, INT_MAX,
> FLAGS, "flags" },
>
>      {NULL}
>  };
> --
>
>
You need to write separate AVOption interlace_options and AVFilter
avfilter_vf_interlace in vf_tinterlace.c
Have a look at this patch:
https://git.ffmpeg.org/gitweb/ffmpeg.git/commitdiff/88e0e2054d911b38662f681bdc267e08312d313a

Regards,
Thomas


More information about the ffmpeg-devel mailing list