[gst-devel] sink element with multiple sink pads

Gregory McGarry g.mcgarry at ieee.org
Tue Dec 9 07:23:03 CET 2008

I'm working on a plugin which wraps a library.  The library requires roughly synchronised audio and/or video frames.

Since GstBaseSink only has one sink pad, I need to develop my own sink class.

What is the best way to handle this problem?  Here are the approaches I have tried:

1) custom sink element with a collection of request sink pads
- seems to deadlock (thread waits for other pads to receive data?)

- add queues to the pipeline - is the pipeline now in pull mode?

- must support push and pull mode, although there is no time sensitivity in application?

2) custom sink element that provides explicit _chain() handlers on the pads
- lots of locking problems

- still have problem blocking streams until all stream info is available to initialise the library

3) element derived from GstBin which contains audio and video sink elements
- how to create internal elements without registering with factory?

- difficulty aggregating streams info to initialise library

- overly complicated

Does a sink element exist which has multiple sink pads?  I couldn't find one.

Thanks for any advice.

      Start your day with Yahoo!7 and win a Sony Bravia TV. Enter now http://au.docs.yahoo.com/homepageset/?p1=other&p2=au&p3=tagline

More information about the gstreamer-devel mailing list