[FFmpeg-devel] [PATCH 1/4] avfilter/vf_interlace: restore lowpass mode constants

Marton Balint cus at passwd.hu
Fri Dec 13 13:35:31 EET 2019



On Fri, 6 Dec 2019, Marton Balint wrote:

> The documentation still mentions numerical constants in addition to textual
> ones. It is also wrong to use distinct modes as flags and it disallows us to
> actually use the flags field for real flags in the future.

Ping for the series. Will apply soon.

Thanks,
Marton

>
> Signed-off-by: Marton Balint <cus at passwd.hu>
> ---
> libavfilter/tinterlace.h    |  7 +++++++
> libavfilter/vf_tinterlace.c | 13 +++++++++----
> 2 files changed, 16 insertions(+), 4 deletions(-)
>
> diff --git a/libavfilter/tinterlace.h b/libavfilter/tinterlace.h
> index 5bcb9a583a..e204b61aa0 100644
> --- a/libavfilter/tinterlace.h
> +++ b/libavfilter/tinterlace.h
> @@ -37,6 +37,12 @@
> #define TINTERLACE_FLAG_CVLPF 2
> #define TINTERLACE_FLAG_EXACT_TB 4
> 
> +enum VLPFilter {
> +    VLPF_OFF = 0,
> +    VLPF_LIN = 1,
> +    VLPF_CMP = 2,
> +};
> +
> enum TInterlaceMode {
>     MODE_MERGE = 0,
>     MODE_DROP_EVEN,
> @@ -59,6 +65,7 @@ typedef struct TInterlaceContext {
>     int mode;                   ///< TInterlaceMode, interlace mode selected
>     AVRational preout_time_base;
>     int flags;                  ///< flags affecting interlacing algorithm
> +    int lowpass;                ///< legacy interlace filter lowpass mode
>     int frame;                  ///< number of the output frame
>     int vsub;                   ///< chroma vertical subsampling
>     AVFrame *cur;
> diff --git a/libavfilter/vf_tinterlace.c b/libavfilter/vf_tinterlace.c
> index fc5d11e053..32b2ff9f5a 100644
> --- a/libavfilter/vf_tinterlace.c
> +++ b/libavfilter/vf_tinterlace.c
> @@ -63,10 +63,10 @@ static const AVOption interlace_options[] = {
>    { "scan",              "scanning mode", OFFSET(mode), AV_OPT_TYPE_INT, {.i64 = MODE_TFF}, 0, 1, FLAGS, "mode"},
>    { "tff",               "top field first",                              0, AV_OPT_TYPE_CONST, {.i64 = MODE_TFF}, INT_MIN, INT_MAX, FLAGS, .unit = "mode"},
>    { "bff",               "bottom field first",                           0, AV_OPT_TYPE_CONST, {.i64 = MODE_BFF}, INT_MIN, INT_MAX, FLAGS, .unit = "mode"},
> -   { "lowpass",           "set vertical low-pass filter", OFFSET(flags), AV_OPT_TYPE_FLAGS,   {.i64 = TINTERLACE_FLAG_VLPF}, 0, 2, FLAGS, "flags" },
> -   { "off",               "disable vertical 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" },
> +   { "lowpass",           "set vertical low-pass filter", OFFSET(lowpass), AV_OPT_TYPE_INT,   {.i64 = VLPF_LIN}, 0, 2, FLAGS, "lowpass" },
> +   {     "off",           "disable vertical low-pass filter",             0, AV_OPT_TYPE_CONST, {.i64 = VLPF_OFF}, INT_MIN, INT_MAX, FLAGS, "lowpass" },
> +   {     "linear",        "linear vertical low-pass filter",              0, AV_OPT_TYPE_CONST, {.i64 = VLPF_LIN}, INT_MIN, INT_MAX, FLAGS, "lowpass" },
> +   {     "complex",       "complex vertical low-pass filter",             0, AV_OPT_TYPE_CONST, {.i64 = VLPF_CMP}, INT_MIN, INT_MAX, FLAGS, "lowpass" },
>
>    { NULL }
> };
> @@ -518,6 +518,11 @@ static int init_interlace(AVFilterContext *ctx)
>     if (tinterlace->mode <= MODE_BFF)
>         tinterlace->mode += MODE_INTERLEAVE_TOP;
> 
> +    if (tinterlace->lowpass == VLPF_LIN)
> +        tinterlace->flags |= TINTERLACE_FLAG_VLPF;
> +    if (tinterlace->lowpass == VLPF_CMP)
> +        tinterlace->flags |= TINTERLACE_FLAG_CVLPF;
> +
>     return 0;
> }
> 
> -- 
> 2.16.4
>
> _______________________________________________
> ffmpeg-devel mailing list
> ffmpeg-devel at ffmpeg.org
> https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
>
> To unsubscribe, visit link above, or email
> ffmpeg-devel-request at ffmpeg.org with subject "unsubscribe".


More information about the ffmpeg-devel mailing list