[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