mirror of https://git.ffmpeg.org/ffmpeg.git
avfilter/vf_interlace: restore lowpass mode constants
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. Signed-off-by: Marton Balint <cus@passwd.hu>
This commit is contained in:
parent
8b5ef2dcff
commit
28b5dc6199
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue