summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--filters/f_auto_filters.c11
1 files changed, 8 insertions, 3 deletions
diff --git a/filters/f_auto_filters.c b/filters/f_auto_filters.c
index d0bab83d2c..944fe89eab 100644
--- a/filters/f_auto_filters.c
+++ b/filters/f_auto_filters.c
@@ -68,6 +68,7 @@ static void deint_process(struct mp_filter *f)
return;
}
+ bool has_filter = true;
if (img->imgfmt == IMGFMT_VDPAU) {
char *args[] = {"deint", "yes", NULL};
p->sub.filter =
@@ -80,6 +81,13 @@ static void deint_process(struct mp_filter *f)
p->sub.filter =
mp_create_user_filter(f, MP_OUTPUT_CHAIN_VIDEO, "yadif_cuda", args);
} else {
+ has_filter = false;
+ }
+
+ if (!p->sub.filter) {
+ if (has_filter)
+ MP_ERR(f, "creating deinterlacer failed\n");
+
struct mp_filter *subf = mp_bidir_dummy_filter_create(f);
struct mp_filter *filters[2] = {0};
@@ -106,9 +114,6 @@ static void deint_process(struct mp_filter *f)
p->sub.filter = subf;
}
- if (!p->sub.filter)
- MP_ERR(f, "creating deinterlacer failed\n");
-
mp_subfilter_continue(&p->sub);
}