mpegvideoparse: Pass through interlace-mode field from upstream if available
authorSebastian Dröge <sebastian@centricular.com>
Wed, 19 Jun 2019 11:13:02 +0000 (14:13 +0300)
committerSebastian Dröge <slomo@coaxion.net>
Wed, 19 Jun 2019 12:49:01 +0000 (12:49 +0000)
We generally always prefer the information from upstream for other
metadata (pixel-aspect-ration, etc.) and should also do so here.

Other parsers (h264parse) already do the same.

gst/videoparsers/gstmpegvideoparse.c

index eef79bc..59789fc 100644 (file)
@@ -978,9 +978,10 @@ gst_mpegv_parse_update_src_caps (GstMpegvParse * mpvparse)
     else
       GST_DEBUG_OBJECT (mpvparse, "Invalid level - %u", level_c);
 
-    gst_caps_set_simple (caps, "interlace-mode",
-        G_TYPE_STRING,
-        (mpvparse->sequenceext.progressive ? "progressive" : "mixed"), NULL);
+    if (!s || !gst_structure_has_field (s, "interlace-mode"))
+      gst_caps_set_simple (caps, "interlace-mode",
+          G_TYPE_STRING,
+          (mpvparse->sequenceext.progressive ? "progressive" : "mixed"), NULL);
   }
 
   gst_pad_set_caps (GST_BASE_PARSE_SRC_PAD (mpvparse), caps);