typefindelement: Only send caps when pad is being activated

Fixes https://bugzilla.gnome.org/show_bug.cgi?id=677819
This commit is contained in:
Matej Knopp 2012-06-10 12:48:00 -04:00 committed by Wim Taymans
parent a362b844f8
commit b3cee7155a

View file

@ -460,7 +460,7 @@ gst_type_find_element_seek (GstTypeFindElement * typefind, GstEvent * event)
gst_segment_do_seek (&seeksegment, rate, format, flags, gst_segment_do_seek (&seeksegment, rate, format, flags,
cur_type, cur, stop_type, stop, NULL); cur_type, cur, stop_type, stop, NULL);
flush = ! !(flags & GST_SEEK_FLAG_FLUSH); flush = !!(flags & GST_SEEK_FLAG_FLUSH);
GST_DEBUG_OBJECT (typefind, "New segment %" GST_SEGMENT_FORMAT, &seeksegment); GST_DEBUG_OBJECT (typefind, "New segment %" GST_SEGMENT_FORMAT, &seeksegment);
@ -979,7 +979,7 @@ gst_type_find_element_activate_src_mode (GstPad * pad, GstObject * parent,
* activation might happen from the streaming thread. */ * activation might happen from the streaming thread. */
gst_pad_pause_task (typefind->sink); gst_pad_pause_task (typefind->sink);
res = gst_pad_activate_mode (typefind->sink, mode, active); res = gst_pad_activate_mode (typefind->sink, mode, active);
if (res && typefind->caps) { if (active && res && typefind->caps) {
GstCaps *caps; GstCaps *caps;
GST_OBJECT_LOCK (typefind); GST_OBJECT_LOCK (typefind);
caps = gst_caps_ref (typefind->caps); caps = gst_caps_ref (typefind->caps);