interlace: Don't set field-order field for progressive caps
authorSeungha Yang <seungha@centricular.com>
Tue, 25 May 2021 11:21:34 +0000 (20:21 +0900)
committerGStreamer Marge Bot <gitlab-merge-bot@gstreamer-foundation.org>
Thu, 27 May 2021 08:15:15 +0000 (08:15 +0000)
That would cause negotiation issue

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2282>

gst/interlace/gstinterlace.c

index 8858d97..fa17d42 100644 (file)
@@ -961,9 +961,13 @@ gst_interlace_getcaps (GstPad * pad, GstInterlace * interlace, GstCaps * filter)
      * Interlaced feature and set interlace-mode=progressive */
     for (i = 0; i < gst_caps_get_size (icaps); ++i) {
       GstCapsFeatures *features;
+      GstStructure *s = gst_caps_get_structure (icaps, i);
 
       features = gst_caps_get_features (icaps, i);
       gst_caps_features_remove (features, GST_CAPS_FEATURE_FORMAT_INTERLACED);
+
+      /* Drop field-order field for sinkpad */
+      gst_structure_remove_field (s, "field-order");
     }
 
     gst_caps_set_simple (icaps, "interlace-mode", G_TYPE_STRING, "progressive",