pad: rework sticky events
Rewrite sticky events, trying to make it a bit more simple. When sticky events are pushed on a srcpad, store them in the sticky event array and mark the event with received = FALSE. When the sticky event is successfully sent to the peer pad, make received = TRUE. Keep a PENDING_EVENTS pad flag that is set when one of the events is in the received = FALSE state for some reason. when activating a sinkpad, mark all events received = FALSE on the peer srcpad. When pushing a buffer, check the PENDING_EVENTS flag and if it is set, push all events to the peer pad first.
Showing with 334 additions and 407 deletions