diff --git a/gst/videoparsers/gstmpegvideoparse.c b/gst/videoparsers/gstmpegvideoparse.c index eef79bc679..59789fc71d 100644 --- a/gst/videoparsers/gstmpegvideoparse.c +++ b/gst/videoparsers/gstmpegvideoparse.c @@ -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);