baseparse: send seek event upstream first
authorWim Taymans <wim.taymans@collabora.co.uk>
Fri, 13 Jul 2012 10:05:15 +0000 (12:05 +0200)
committerWim Taymans <wim.taymans@collabora.co.uk>
Fri, 13 Jul 2012 10:05:15 +0000 (12:05 +0200)
First try to let upstream handle the seek event, then fail if the event is
something we don't understand.

libs/gst/base/gstbaseparse.c

index c1302b1..b31a479 100644 (file)
@@ -3754,10 +3754,6 @@ gst_base_parse_handle_seek (GstBaseParse * parse, GstEvent * event)
   if (rate < 0.0 && parse->priv->pad_mode == GST_PAD_MODE_PUSH)
     goto negative_rate;
 
-  if (cur_type != GST_SEEK_TYPE_SET ||
-      (stop_type != GST_SEEK_TYPE_SET && stop_type != GST_SEEK_TYPE_NONE))
-    goto wrong_type;
-
   /* For any format other than TIME, see if upstream handles
    * it directly or fail. For TIME, try upstream, but do it ourselves if
    * it fails upstream */
@@ -3765,6 +3761,10 @@ gst_base_parse_handle_seek (GstBaseParse * parse, GstEvent * event)
   if (format != GST_FORMAT_TIME || res)
     goto done;
 
+  if (cur_type != GST_SEEK_TYPE_SET ||
+      (stop_type != GST_SEEK_TYPE_SET && stop_type != GST_SEEK_TYPE_NONE))
+    goto wrong_type;
+
   /* get flush flag */
   flush = flags & GST_SEEK_FLAG_FLUSH;