sticky events

Stefan Sauer ensonic at hora-obscura.de
Sun Mar 2 12:44:34 PST 2014


hi,

I tried to do the proper pad blocking thing in buzztrax again, now with
1.0. One issue I face right now when adding sources (or sources +
transforms) to adder/audiomixer is that the new elements are not
negotiated. While debugging I was wondering whether sticky events are
replayed on the new request (sink)-pad of adder. They are not. In tee
this is done. If I simply create the counterpart of the tee code in
adder (https://gist.github.com/ensonic/b73c16958d9304dfd2e0), I get
(lt-buzztrax-edit:6264): GStreamer-WARNING **: pad '':sink_2 pushing
stream-start event in wrong direction
(lt-buzztrax-edit:6264): GStreamer-WARNING **: pad '':sink_2 pushing
caps event in wrong direction
(lt-buzztrax-edit:6264): GStreamer-WARNING **: pad '':sink_2 pushing
segment event in wrong direction

Now I am a bit confused:
1.) how come we store these events on the sticky list of the src-pad?
How would one use gst_pad_push_event() to sent them there in the first
place?
2.) Why does work for tee and not for adder?
3.) How does it even make push events on newly created request pads as
they don't have peers yet.

If someone can shed some light here, I can apply this to the docs for 
gst_pad_sticky_events_foreach() which miss the obvious part that
explains "when you wnat to use this function" :/

Stefan


More information about the gstreamer-devel mailing list