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=127.0.0.1 port=8444
decoder.src1 ! queue ! audioconvert ! faac ! queue ! rtpmp4apay ! rtpbin.send_rtp_sink_1
rtpbin.send_rtp_src_1 ! udpsink host=127.0.0.1 port=8002
gstrtpbin has a PadAdded handler to add the udpsink.
decodebin2 has an OnNewDecodedPad handler to add audio and video elements as detected.
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
Thanks,
Sam
------------------------------------------------------------------------------
This SF.net email is sponsored by Sprint
What will you do first with EVO, the first 4G phone?
Visit sprint.com/first --
http://p.sf.net/sfu/sprint-com-first_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/gstreamer-devel