Instead of just ignoring failure of pushing sticky events and
returning TRUE as if everything is fine.
gboolean
gst_pad_push_event (GstPad * pad, GstEvent * event)
{
- gboolean res;
+ gboolean res = TRUE;
GstPadProbeType type;
gboolean sticky, serialized;
* sticky events */
res = (check_sticky (pad) == GST_FLOW_OK);
}
- if (!sticky) {
- /* other events are pushed right away */
+
+ /* If pushing sticky events did not fail and this is no sticky event
+ * push it right away */
+ if (res && !sticky) {
res = (gst_pad_push_event_unchecked (pad, event, type) == GST_FLOW_OK);
} else {
gst_event_unref (event);
- res = TRUE;
}
GST_OBJECT_UNLOCK (pad);