GstEvent * event, gpointer user_data)
{
GstAviMux *avimux;
- gboolean ret = FALSE;
+ gboolean ret = TRUE;
avimux = GST_AVI_MUX (user_data);
ret = gst_avi_mux_audsink_set_caps (data->pad, caps);
}
gst_event_unref (event);
+ event = NULL;
break;
}
case GST_EVENT_TAG:{
gst_event_parse_tag (event, &list);
gst_tag_setter_merge_tags (setter, list, mode);
gst_event_unref (event);
- ret = TRUE;
+ event = NULL;
break;
}
- case GST_EVENT_EOS:
- case GST_EVENT_SEGMENT:
- gst_event_unref (event);
- ret = TRUE;
- break;
default:
- ret = gst_pad_event_default (data->pad, GST_OBJECT (avimux), event);
break;
}
+ if (event != NULL)
+ return gst_collect_pads2_event_default (pads, data, event, FALSE);
+
return ret;
}
GstEvent * event, gpointer user_data)
{
GstFlvMux *mux = GST_FLV_MUX (user_data);
- gboolean ret = FALSE;
+ gboolean ret = TRUE;
switch (GST_EVENT_TYPE (event)) {
case GST_EVENT_CAPS:
}
/* and eat */
gst_event_unref (event);
+ event = NULL;
break;
}
case GST_EVENT_TAG:{
mux->new_tags = TRUE;
ret = TRUE;
gst_event_unref (event);
+ event = NULL;
break;
}
- case GST_EVENT_EOS:
- case GST_EVENT_SEGMENT:
- gst_event_unref (event);
- ret = TRUE;
- break;
default:
- ret = gst_pad_event_default (data->pad, GST_OBJECT (mux), event);
break;
}
+ if (event != NULL)
+ return gst_collect_pads2_event_default (pads, data, event, FALSE);
+
return ret;
}
GstEvent * event, gpointer user_data)
{
GstInterleave *self = GST_INTERLEAVE (user_data);
- gboolean ret = FALSE;
+ gboolean ret = TRUE;
GST_DEBUG ("Got %s event on pad %s:%s", GST_EVENT_TYPE_NAME (event),
GST_DEBUG_PAD_NAME (data->pad));
gst_event_parse_caps (event, &caps);
ret = gst_interleave_sink_setcaps (self, data->pad, caps);
gst_event_unref (event);
+ event = NULL;
break;
}
default:
- ret = gst_pad_event_default (data->pad, GST_OBJECT (self), event);
break;
}
/* now GstCollectPads2 can take care of the rest, e.g. EOS */
+ if (event != NULL)
+ return gst_collect_pads2_event_default (pads, data, event, FALSE);
+
return ret;
}
GstQTMux *qtmux;
guint32 avg_bitrate = 0, max_bitrate = 0;
GstPad *pad = data->pad;
- gboolean ret = FALSE;
+ gboolean ret = TRUE;
qtmux = GST_QT_MUX_CAST (user_data);
switch (GST_EVENT_TYPE (event)) {
ret = collect_pad->set_caps (pad, caps);
gst_event_unref (event);
+ event = NULL;
break;
}
case GST_EVENT_TAG:{
}
gst_event_unref (event);
+ event = NULL;
ret = TRUE;
break;
}
default:
- ret = gst_pad_event_default (data->pad, GST_OBJECT (qtmux), event);
- break;
- case GST_EVENT_EOS:
- case GST_EVENT_SEGMENT:
- gst_event_unref (event);
- ret = TRUE;
break;
}
+ if (event != NULL)
+ return gst_collect_pads2_event_default (pads, data, event, FALSE);
+
return ret;
}
GstMatroskaMux *mux;
GstPad *pad;
GstTagList *list;
- gboolean ret = FALSE;
+ gboolean ret = TRUE;
mux = GST_MATROSKA_MUX (user_data);
collect_pad = (GstMatroskaPad *) data;
ret = TRUE;
break;
}
- case GST_EVENT_SEGMENT:{
- const GstSegment *segment;
-
- gst_event_parse_segment (event, &segment);
- if (segment->format != GST_FORMAT_TIME) {
- ret = FALSE;
- }
- gst_event_unref (event);
- event = NULL;
- ret = TRUE;
- break;
- }
case GST_EVENT_TOC:{
GstToc *toc;
}
/* fall through */
default:
- ret = gst_pad_event_default (data->pad, GST_OBJECT (mux), event);
- break;
- case GST_EVENT_EOS:
- gst_event_unref (event);
- ret = TRUE;
break;
}
+ if (event != NULL)
+ return gst_collect_pads2_event_default (pads, data, event, FALSE);
+
return ret;
}
break;
}
default:
- ret = gst_pad_event_default (pad,
- GST_OBJECT_CAST (GST_PAD_PARENT (pad)), event);
+ break;
}
+ if (event != NULL)
+ return gst_collect_pads2_event_default (pads, data, event, FALSE);
+
return ret;
}
GST_DEBUG_OBJECT (pad, "Got %s event on pad %s:%s",
GST_EVENT_TYPE_NAME (event), GST_DEBUG_PAD_NAME (pad));
- /* return FALSE => event will be forwarded */
switch (GST_EVENT_TYPE (event)) {
case GST_EVENT_CAPS:
{
gst_videomixer2_pad_sink_setcaps (GST_PAD (pad), GST_OBJECT (mix),
caps);
gst_event_unref (event);
+ event = NULL;
break;
}
case GST_EVENT_SEGMENT:{
gst_event_copy_segment (event, &seg);
g_assert (seg.format == GST_FORMAT_TIME);
- /* eat SEGMENT events */
- ret = TRUE;
- gst_event_unref (event);
break;
}
case GST_EVENT_FLUSH_STOP:
mix->segment.position = -1;
mix->ts_offset = 0;
mix->nframes = 0;
-
- ret = gst_pad_event_default (cdata->pad, GST_OBJECT (mix), event);
- break;
- case GST_EVENT_EOS:
- gst_event_unref (event);
- ret = TRUE;
break;
default:
- ret = gst_pad_event_default (cdata->pad, GST_OBJECT (mix), event);
break;
}
+ if (event != NULL)
+ return gst_collect_pads2_event_default (pads, cdata, event, FALSE);
+
return ret;
}