This is pipeline I wan't to write in C.
gst-launch-0.10 udpsrc port=1234 multicast-group=239.0.0.1 caps="application/x-rtp,media=(string)video,clock-rate=(int)90000,payload=(int)96" ! .recv_rtp_sink_0 gstrtpbin latency=400 ! rtpmp2tdepay ! flutsdemux ! ffdec_mpeg2video ! xvimagesink It is tested and working. This is part of code that is not working for me. I suppose that it is something trivial, but I can't find where mistake is. ----------------------------------------------------------- GstElement *src; GstElement *rtp; GstElement *depay; GstElement *demux; GstElement *decode; GstElement *deinter; GstElement *sink; GstPad *srcpad; GstPad *sinkpad; player->texture = g_object_new (CLUTTER_TYPE_TEXTURE, "disable-slicing", TRUE, NULL); player->pipeline = GST_PIPELINE(gst_pipeline_new ("player")); src = gst_element_factory_make("udpsrc", "src"); g_object_set(src, "port", 1234, NULL); g_object_set(src, "multicast-group", location, NULL); g_object_set(src, "caps", gst_caps_from_string (RTP_CAPS), NULL); rtp = gst_element_factory_make("gstrtpbin", "rtp"); g_object_set(rtp, "latency", latency, NULL); depay = gst_element_factory_make("rtpmp2tdepay", "depay"); demux = gst_element_factory_make("flutsdemux", "demux"); decode = gst_element_factory_make("ffdec_mpeg2video","decode"); deinter = gst_element_factory_make("ffdeinterlace", "deinter"); sink = clutter_gst_video_sink_new(CLUTTER_TEXTURE (player->texture)); if (!src || !rtp || !depay || !demux || !decode || !deinter || !sink){ g_error("failde to create all elements"); return EXIT_FAILURE; } gst_bin_add_many(GST_BIN(player->pipeline), src, rtp, depay, demux, decode, deinter, sink, NULL); srcpad = gst_element_get_static_pad (src, "src"); sinkpad = gst_element_get_request_pad (rtp, "recv_rtcp_sink_0"); if (!gst_pad_link (srcpad, sinkpad)) g_error("can't link"); gst_object_unref (srcpad); gst_object_unref (sinkpad); gst_element_link_many(decode, deinter, sink, NULL); gst_element_link(depay, demux); // THESE TWO SIGNALS NEVER EMIT g_signal_connect(rtp, "pad-added", G_CALLBACK(on_pad_added), depay); g_signal_connect(demux, "pad-added", G_CALLBACK(on_pad_added), decode); ----------------------------------------------------------- _______________________________________________ gstreamer-devel mailing list [hidden email] http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
Free forum by Nabble | Edit this page |