summaryrefslogtreecommitdiffstats
path: root/video/filter/vf_vavpp.c
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-05-04 01:13:15 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-05-04 01:13:15 +0000
commitbff6c10f6909412899de6ab7c902f96080905550 (patch)
tree616d06233c652837e0d36657306ed0c157821a9a /video/filter/vf_vavpp.c
parentReleasing progress-linux version 0.37.0-1~progress7.99u1. (diff)
downloadmpv-bff6c10f6909412899de6ab7c902f96080905550.tar.xz
mpv-bff6c10f6909412899de6ab7c902f96080905550.zip
Merging upstream version 0.38.0.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'video/filter/vf_vavpp.c')
-rw-r--r--video/filter/vf_vavpp.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/video/filter/vf_vavpp.c b/video/filter/vf_vavpp.c
index 52be148..960c745 100644
--- a/video/filter/vf_vavpp.c
+++ b/video/filter/vf_vavpp.c
@@ -51,6 +51,7 @@ struct pipeline {
struct opts {
int deint_type;
+ int field_parity;
bool interlaced_only;
bool reversal_bug;
};
@@ -143,11 +144,13 @@ static void update_pipeline(struct mp_filter *vf)
(p->do_deint ? MP_MODE_DEINT : 0) |
(p->opts->deint_type >= 2 ? MP_MODE_OUTPUT_FIELDS : 0) |
(p->opts->interlaced_only ? MP_MODE_INTERLACED_ONLY : 0));
+ mp_refqueue_set_parity(p->queue, p->opts->field_parity);
return;
nodeint:
mp_refqueue_set_refs(p->queue, 0, 0);
mp_refqueue_set_mode(p->queue, 0);
+ mp_refqueue_set_parity(p->queue, p->opts->field_parity);
}
static struct mp_image *alloc_out(struct mp_filter *vf)
@@ -208,7 +211,7 @@ static struct mp_image *render(struct mp_filter *vf)
mp_image_copy_attributes(img, in);
- unsigned int flags = va_get_colorspace_flag(p->params.color.space);
+ unsigned int flags = va_get_colorspace_flag(p->params.repr.sys);
if (!mp_refqueue_should_deint(p->queue)) {
flags |= VA_FRAME_PICTURE;
} else if (mp_refqueue_is_top_field(p->queue)) {
@@ -485,6 +488,10 @@ static const m_option_t vf_opts_fields[] = {
{"motion-compensated", 5})},
{"interlaced-only", OPT_BOOL(interlaced_only)},
{"reversal-bug", OPT_BOOL(reversal_bug)},
+ {"parity", OPT_CHOICE(field_parity,
+ {"tff", MP_FIELD_PARITY_TFF},
+ {"bff", MP_FIELD_PARITY_BFF},
+ {"auto", MP_FIELD_PARITY_AUTO})},
{0}
};
@@ -496,6 +503,7 @@ const struct mp_user_filter_entry vf_vavpp = {
.priv_defaults = &(const OPT_BASE_STRUCT){
.deint_type = -1,
.reversal_bug = true,
+ .field_parity = MP_FIELD_PARITY_AUTO,
},
.options = vf_opts_fields,
},