k.borowczyk at samsung.com
Mon Feb 17 07:59:28 PST 2014
I'm trying to create a pipeline that gets video from a source, splits the
stream into parallel branches, do some (different) processing on each branch
and mix them side by side into single sink.
The most basic version in gst-launch syntax looks like this:
gst-launch-1.0 filesrc location="big_buck_bunny_480p_surround-fix.avi" !
decodebin ! \
tee name=t ! queue ! mix.sink_0 \
t. ! queue ! mix.sink_1 \
videomixer name=mix sink_1::xpos=1500 ! autovideosink
It works from the command line.
In the code I add the branch dynamically after some seconds of playback. The
pipeline worked OK when the branch was playing to filesink (so I got the tee
element right). When I replaced filesink with videomixer the playback hangs.
I narrowed the freeze cause to the request_pad call:
GstPad* mixPad = gst_element_request_pad(mixerElement, mixerTemplate, NULL,
If I comment this line out the playback does not stop (of course it does not
work as expected, the branch is not linked to the pipeline).
The branch is set to state PAUSED before adding it to the pipeline, when all
the linking is finished I call:
on the branch bin.
Can you point me to the possible causes of this freeze? What might I forget?
More information about the gstreamer-devel