From 71c3b511e3df7619c92a045f6781034191b2004a Mon Sep 17 00:00:00 2001 From: Christian Pointner Date: Wed, 24 Sep 2014 00:13:53 +0200 Subject: binding to address/port --- src/sydra.c | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) (limited to 'src/sydra.c') diff --git a/src/sydra.c b/src/sydra.c index 69d3026..e1c67db 100644 --- a/src/sydra.c +++ b/src/sydra.c @@ -321,10 +321,22 @@ static gboolean create_udp_elements(options_t* opt, GstElement* pipeline, GstEle log_printf(DEBUG, "udp elements created successfully!"); int rtp_port = opt->rtp_port_base_; - g_object_set(G_OBJECT(udp->rtp_video_), "host", opt->rtp_host_, "port", rtp_port++, NULL); - g_object_set(G_OBJECT(udp->rtcp_video_), "host", opt->rtp_host_, "port", rtp_port++, "sync", FALSE, "async", FALSE, NULL); - g_object_set(G_OBJECT(udp->rtp_audio_), "host", opt->rtp_host_, "port", rtp_port++, NULL); - g_object_set(G_OBJECT(udp->rtcp_audio_), "host", opt->rtp_host_, "port", rtp_port++, "sync", FALSE, "async", FALSE, NULL); + int rtp_port_local = opt->rtp_port_base_local_; + g_object_set(G_OBJECT(udp->rtp_video_), "host", opt->rtp_host_, "port", rtp_port++, + "bind-port", rtp_port_local++, NULL); + g_object_set(G_OBJECT(udp->rtcp_video_), "host", opt->rtp_host_, "port", rtp_port++, + "bind-port", rtp_port_local++, "sync", FALSE, "async", FALSE, NULL); + g_object_set(G_OBJECT(udp->rtp_audio_), "host", opt->rtp_host_, "port", rtp_port++, + "bind-port", rtp_port_local++, NULL); + g_object_set(G_OBJECT(udp->rtcp_audio_), "host", opt->rtp_host_, "port", rtp_port++, + "bind-port", rtp_port_local++, "sync", FALSE, "async", FALSE, NULL); + + if(opt->rtp_addr_local_) { + g_object_set(G_OBJECT(udp->rtp_video_), "bind-address", opt->rtp_addr_local_, NULL); + g_object_set(G_OBJECT(udp->rtcp_video_), "bind-address", opt->rtp_addr_local_, NULL); + g_object_set(G_OBJECT(udp->rtp_audio_), "bind-address", opt->rtp_addr_local_, NULL); + g_object_set(G_OBJECT(udp->rtcp_audio_), "bind-address", opt->rtp_addr_local_, NULL); + } gst_bin_add_many(GST_BIN (pipeline), udp->rtp_video_, udp->rtcp_video_, udp->rtp_audio_, udp->rtcp_audio_, NULL); -- cgit v1.2.3