From: Seungha Yang Date: Tue, 25 May 2021 15:23:56 +0000 (+0900) Subject: deinterlace: Drop "field-order" field while transforming caps X-Git-Tag: 1.19.3~509^2~106 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=80567ca939c535ed6083770a1f37743d60ba11b3;p=platform%2Fupstream%2Fgstreamer.git deinterlace: Drop "field-order" field while transforming caps Like other basetransform subclasses are doing, drop field which can be converted by deinterlace. Part-of: --- diff --git a/gst/deinterlace/gstdeinterlace.c b/gst/deinterlace/gstdeinterlace.c index 750e68f..3fba2d2 100644 --- a/gst/deinterlace/gstdeinterlace.c +++ b/gst/deinterlace/gstdeinterlace.c @@ -2539,11 +2539,18 @@ gst_deinterlace_getcaps (GstDeinterlace * self, GstPad * pad, GstCaps * filter) for (len = gst_caps_get_size (tmp2); len > 0; len--) { GstStructure *s = gst_caps_get_structure (tmp2, len - 1); - if (pad == self->sinkpad) + /* Drop fields which can be converted by us. + * Specifically "field-order" here. + * "field-order" with "progressive" and/or + * unspecified "interlace-mode" would cause negotiation issue */ + gst_structure_remove_field (s, "field-order"); + + if (pad == self->sinkpad) { gst_structure_remove_field (s, "interlace-mode"); - else + } else { gst_structure_set (s, "interlace-mode", G_TYPE_STRING, "progressive", NULL); + } } if (self->user_set_fields == GST_DEINTERLACE_ALL) {