[gst-devel] Pipeline won't get into Play state

Sam sam72wong at gmail.com
Mon Jul 12 19:26:30 CEST 2010

I've coded up a C# application to mimic the following pipeline (broken into
separate lines for readability here):

gstrtpbin name=rtpbin
filesrc location="<a file path>" ! decodebin2 name=decoder
decoder.src0 ! queue ! ffmpegcolorspace ! x264enc threads=0 ! queue !
rtph264pay ! rtpbin.send_rtp_sink_0
rtpbin.send_rtp_src_0 ! udpsink host= port=8444
decoder.src1 ! queue ! audioconvert ! faac ! queue ! rtpmp4apay !
rtpbin.send_rtp_src_1 ! udpsink host= port=8002

gstrtpbin has a PadAdded handler to add the udpsink.
decodebin2 has an OnNewDecodedPad handler to add audio and video elements as

If I construct the above pipeline in gst-launch, it works and streams and
playable with VLC via a SDP file.

However, through the C# application where elements in the pipeline are
constructed and linked dynamically and with properties set like above, the
pipeline will not go into PLAY state.  It remains in PAUSED state and
returns ASYNC in the GetState call.   One scenario where I can get the
pipeline to reach PLAY state is to not link up any audio and set
decodebin2's async-handling to true.

I know gst-launch performs additional "magic" under the covers and I need a
hint as to what that magic might be.  Been going over the documents and
examples and can't find that missing link.

Using Winbuild v0.10.6

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/gstreamer-devel/attachments/20100712/860f2c87/attachment.htm>

More information about the gstreamer-devel mailing list