diff options
author | Dudemanguy <random342@airmail.cc> | 2024-01-21 21:37:49 -0600 |
---|---|---|
committer | Dudemanguy <random342@airmail.cc> | 2024-02-07 14:50:09 +0000 |
commit | 003fb15cbb21d86186ab3fb5448ff8c908e1e0dd (patch) | |
tree | 4922ee5f0b838ffc3d75293fc3712b7098827afa /filters | |
parent | 8dbbc2ad82d6ebfa986db4726e2e5006b7cb0a9d (diff) | |
download | mpv-003fb15cbb21d86186ab3fb5448ff8c908e1e0dd.tar.bz2 mpv-003fb15cbb21d86186ab3fb5448ff8c908e1e0dd.tar.xz |
player/command: add deinterlace-active property
Diffstat (limited to 'filters')
-rw-r--r-- | filters/f_auto_filters.c | 6 | ||||
-rw-r--r-- | filters/f_auto_filters.h | 2 | ||||
-rw-r--r-- | filters/f_output_chain.c | 11 | ||||
-rw-r--r-- | filters/f_output_chain.h | 3 |
4 files changed, 22 insertions, 0 deletions
diff --git a/filters/f_auto_filters.c b/filters/f_auto_filters.c index fca8894b1a..f6d068ada6 100644 --- a/filters/f_auto_filters.c +++ b/filters/f_auto_filters.c @@ -168,6 +168,12 @@ static const struct mp_filter_info deint_filter = { .destroy = deint_destroy, }; +bool mp_deint_active(struct mp_filter *f) +{ + struct deint_priv *p = f->priv; + return p->deinterlace_active; +} + struct mp_filter *mp_deint_create(struct mp_filter *parent) { struct mp_filter *f = mp_filter_create(parent, &deint_filter); diff --git a/filters/f_auto_filters.h b/filters/f_auto_filters.h index f315084158..f926f6e449 100644 --- a/filters/f_auto_filters.h +++ b/filters/f_auto_filters.h @@ -11,3 +11,5 @@ struct mp_filter *mp_autorotate_create(struct mp_filter *parent); // Insert a filter that inserts scaletempo2 depending on speed settings. struct mp_filter *mp_autoaspeed_create(struct mp_filter *parent); + +bool mp_deint_active(struct mp_filter *parent); diff --git a/filters/f_output_chain.c b/filters/f_output_chain.c index 2d4dcba417..ccb4d53af9 100644 --- a/filters/f_output_chain.c +++ b/filters/f_output_chain.c @@ -518,6 +518,17 @@ double mp_output_get_measured_total_delay(struct mp_output_chain *c) return delay; } +bool mp_output_chain_deinterlace_active(struct mp_output_chain *c) +{ + struct chain *p = c->f->priv; + for (int n = 0; n < p->num_all_filters; n++) { + struct mp_user_filter *u = p->all_filters[n]; + if (strcmp(u->name, "userdeint") == 0) + return mp_deint_active(u->f); + } + return false; +} + bool mp_output_chain_update_filters(struct mp_output_chain *c, struct m_obj_settings *list) { diff --git a/filters/f_output_chain.h b/filters/f_output_chain.h index f06769cdd9..f313f9a65f 100644 --- a/filters/f_output_chain.h +++ b/filters/f_output_chain.h @@ -85,3 +85,6 @@ void mp_output_chain_set_audio_speed(struct mp_output_chain *p, // due to the change. // Makes sense for audio only. double mp_output_get_measured_total_delay(struct mp_output_chain *p); + +// Check if deinterlace user filter is inserted +bool mp_output_chain_deinterlace_active(struct mp_output_chain *p); |