pad: Only inforce STREAM_START, CAPS and SEGMENT ordering
authorNicolas Dufresne <nicolas.dufresne@collabora.co.uk>
Wed, 8 May 2013 22:19:48 +0000 (18:19 -0400)
committerSebastian Dröge <sebastian.droege@collabora.co.uk>
Thu, 9 May 2013 07:35:19 +0000 (09:35 +0200)
Previous patch was inforcing a complete ordering of the sticky events, while
in fact, only STREAM_START, CAPS and SEGMENT events need proper ordering.

See: https://bugzilla.gnome.org/show_bug.cgi?id=688188

gst/gstpad.c

index bef2c53..ef8763f 100644 (file)
@@ -4436,8 +4436,11 @@ store_sticky_event (GstPad * pad, GstEvent * event)
     }
 
     if (type < GST_EVENT_TYPE (ev->event)) {
-      g_warning (G_STRLOC ":%s:<%s:%s> Sticky event misordering detected",
-          G_STRFUNC, GST_DEBUG_PAD_NAME (pad));
+      /* STREAM_START, CAPS and SEGMENT must be delivered in this order. By
+       * storing the sticky ordered we can check that this is respected. */
+      if (G_UNLIKELY (GST_EVENT_TYPE (ev->event) <= GST_EVENT_SEGMENT))
+        g_warning (G_STRLOC ":%s:<%s:%s> Sticky event misordering detected",
+            G_STRFUNC, GST_DEBUG_PAD_NAME (pad));
       break;
     }
   }