typefind: Reset segment when deactivating pull mode or not running in pull mode
authorSebastian Dröge <sebastian@centricular.com>
Thu, 12 Mar 2015 12:59:57 +0000 (12:59 +0000)
committerSebastian Dröge <sebastian@centricular.com>
Thu, 12 Mar 2015 12:59:57 +0000 (12:59 +0000)
We use the segment format to detect if we run the streaming thread or not.
Without resetting we might believe we do so, although we only did in the past
and are now running in e.g. push mode.

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

plugins/elements/gsttypefindelement.c

index 9af1e23..6ac9133 100644 (file)
@@ -1179,10 +1179,12 @@ gst_type_find_element_activate_sink_mode (GstPad * pad, GstObject * parent,
         typefind->offset = 0;
         res = TRUE;
       } else {
+        gst_segment_init (&typefind->segment, GST_FORMAT_UNDEFINED);
         res = gst_pad_stop_task (pad);
       }
       break;
     case GST_PAD_MODE_PUSH:
+      gst_segment_init (&typefind->segment, GST_FORMAT_UNDEFINED);
       if (active)
         start_typefinding (typefind);
       else