[gst-devel] Problems on a gstreamer element with 2 src and 2 sink pads

Metathronius Galabant m.galabant at googlemail.com
Fri Apr 24 09:00:18 CEST 2009


Dear all,

I've got a gstreamer element with 2 sink pads (of type GstCollectPads
with a callback) and 1 src pad (the output).
The callback processes both inputs, and then outputs the processed
data via gst_pad_push() to the src pad.

Due to performance reasons we need to extend this element to have an
additional src pad (another output); all this src pad needs to do is
to ADDITIONALLY push out the exact same data one of the sink pads
already gets (I can't use a tee-element).

Crude ASCII drawing:

-o[sink0]\
          { Processing of sink0,sink1 }-->---[src0]o-
-o[sink1]/--------->--------------------->---[src1]o-


1) Is this case possible with the gstreamer framework at all?

2) How are the events to be handled?
In case with 1 src pad and 2 sink pads it's easy - just copy the src
pad's event to BOTH sink pads over and it works.
How to proceed with 2 src pads? Must each event on a src pad copied to
all sink pads, AND to the other src pad?

3) The pipeline (gstreamer bin) goes into "async" mode and never runs
- is due to event being mishandled in the 2 sink <-> 2 src case?

Thanks and cheers,
M. Galabant




More information about the gstreamer-devel mailing list