diff --git a/ext/ogg/gstogmparse.c b/ext/ogg/gstogmparse.c index a4b553e17e..fc00538275 100644 --- a/ext/ogg/gstogmparse.c +++ b/ext/ogg/gstogmparse.c @@ -615,6 +615,9 @@ gst_ogm_parse_stream_header (GstOgmParse * ogm, const guint8 * data, guint size) if (caps == NULL) goto cannot_decode; + if (!gst_caps_is_fixed (caps)) + goto non_fixed_caps; + if (ogm->srcpad) { GstCaps *current_caps = gst_pad_get_current_caps (ogm->srcpad); @@ -679,6 +682,12 @@ cannot_decode: GST_ELEMENT_ERROR (ogm, STREAM, DECODE, (NULL), ("unknown ogm format")); return GST_FLOW_ERROR; } +non_fixed_caps: + { + gst_caps_unref (caps); + GST_ELEMENT_ERROR (ogm, STREAM, DECODE, (NULL), ("broken ogm format")); + return GST_FLOW_ERROR; + } } static GstFlowReturn