+
+#endif /* CONFIG_COLORKEY_FILTER */
+#if CONFIG_COLORHOLD_FILTER
+
+static const AVOption colorhold_options[] = {
+ { "color", "set the colorhold key color", OFFSET(colorkey_rgba), AV_OPT_TYPE_COLOR, { .str = "black" }, 0, 0, FLAGS },
+ { "similarity", "set the colorhold similarity value", OFFSET(similarity), AV_OPT_TYPE_FLOAT, { .dbl = 0.01 }, 0.01, 1.0, FLAGS },
+ { "blend", "set the colorhold blend value", OFFSET(blend), AV_OPT_TYPE_FLOAT, { .dbl = 0.0 }, 0.0, 1.0, FLAGS },
+ { NULL }
+};
+
+AVFILTER_DEFINE_CLASS(colorhold);
+
+const AVFilter ff_vf_colorhold = {
+ .name = "colorhold",
+ .description = NULL_IF_CONFIG_SMALL("Turns a certain color range into gray. Operates on RGB colors."),
+ .priv_size = sizeof(ColorkeyContext),
+ .priv_class = &colorhold_class,
+ .query_formats = query_formats,
+ .init = init_filter,
+ .inputs = colorkey_inputs,
+ .outputs = colorkey_outputs,
+ .flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | AVFILTER_FLAG_SLICE_THREADS,
+ .process_command = ff_filter_process_command,
+};
+
+#endif /* CONFIG_COLORHOLD_FILTER */