|
|
@ -71,9 +71,11 @@ static const AVOption deband_options[] = { |
|
|
|
|
|
|
|
|
|
|
|
AVFILTER_DEFINE_CLASS(deband); |
|
|
|
AVFILTER_DEFINE_CLASS(deband); |
|
|
|
|
|
|
|
|
|
|
|
static int query_formats(AVFilterContext *ctx) |
|
|
|
static int query_formats(const AVFilterContext *ctx, |
|
|
|
|
|
|
|
AVFilterFormatsConfig **cfg_in, |
|
|
|
|
|
|
|
AVFilterFormatsConfig **cfg_out) |
|
|
|
{ |
|
|
|
{ |
|
|
|
DebandContext *s = ctx->priv; |
|
|
|
const DebandContext *s = ctx->priv; |
|
|
|
|
|
|
|
|
|
|
|
static const enum AVPixelFormat pix_fmts[] = { |
|
|
|
static const enum AVPixelFormat pix_fmts[] = { |
|
|
|
AV_PIX_FMT_GRAY8, AV_PIX_FMT_GRAY9, AV_PIX_FMT_GRAY10, |
|
|
|
AV_PIX_FMT_GRAY8, AV_PIX_FMT_GRAY9, AV_PIX_FMT_GRAY10, |
|
|
@ -110,7 +112,8 @@ static int query_formats(AVFilterContext *ctx) |
|
|
|
AV_PIX_FMT_NONE |
|
|
|
AV_PIX_FMT_NONE |
|
|
|
}; |
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
return ff_set_common_formats_from_list(ctx, s->coupling ? cpix_fmts : pix_fmts); |
|
|
|
return ff_set_common_formats_from_list2(ctx, cfg_in, cfg_out, |
|
|
|
|
|
|
|
s->coupling ? cpix_fmts : pix_fmts); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
static float frand(int x, int y) |
|
|
|
static float frand(int x, int y) |
|
|
@ -468,7 +471,7 @@ const AVFilter ff_vf_deband = { |
|
|
|
.uninit = uninit, |
|
|
|
.uninit = uninit, |
|
|
|
FILTER_INPUTS(avfilter_vf_deband_inputs), |
|
|
|
FILTER_INPUTS(avfilter_vf_deband_inputs), |
|
|
|
FILTER_OUTPUTS(ff_video_default_filterpad), |
|
|
|
FILTER_OUTPUTS(ff_video_default_filterpad), |
|
|
|
FILTER_QUERY_FUNC(query_formats), |
|
|
|
FILTER_QUERY_FUNC2(query_formats), |
|
|
|
.flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | AVFILTER_FLAG_SLICE_THREADS, |
|
|
|
.flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | AVFILTER_FLAG_SLICE_THREADS, |
|
|
|
.process_command = process_command, |
|
|
|
.process_command = process_command, |
|
|
|
}; |
|
|
|
}; |
|
|
|