- if (!gst_pad_has_current_caps (trans->srcpad))
- if (!gst_pad_set_caps (trans->srcpad, out_caps))
+ if (!gst_pad_has_current_caps (trans->srcpad)) {
+ if (gst_pad_set_caps (trans->srcpad, out_caps)) {
+ if (pending_events) {
+ GList *l;
+
+ for (l = g_list_last (pending_events); l; l = l->prev) {
+ GST_LOG_OBJECT (trans, "Forwarding %s event",
+ GST_EVENT_TYPE_NAME (l->data));
+ GST_BASE_TRANSFORM_CLASS (parent_class)->sink_event (trans,
+ l->data);
+ }
+ g_list_free (pending_events);
+ pending_events = NULL;
+ }
+ } else {