summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Pointner <equinox@spreadspace.org>2014-10-15 00:01:59 +0200
committerChristian Pointner <equinox@spreadspace.org>2014-10-15 00:01:59 +0200
commit217048d4a15fb6f34918c71ea6f661c26d272b7e (patch)
tree450f4dd123f95c95aa419a37abd338124107d838
parentinclude payload for rtp caps (diff)
added a queue befor rtpbin on receiver side
-rw-r--r--src/pipelines-rtp.c24
1 files changed, 19 insertions, 5 deletions
diff --git a/src/pipelines-rtp.c b/src/pipelines-rtp.c
index 1a04c78..ee2222e 100644
--- a/src/pipelines-rtp.c
+++ b/src/pipelines-rtp.c
@@ -296,15 +296,19 @@ static gboolean create_udp_sources(options_t* opt, GstElement* pipeline, GstElem
sources->rtp_video_ = sydra_create_element("udpsrc", "udprtpv");
tees.rtpv_ = sydra_create_element("tee", "rtpvt");
+ GstElement* qrtpv = sydra_create_element("queue", NULL);
sources->rtcp_video_ = sydra_create_element("udpsrc", "udprtcpv");
tees.rtcpv_ = sydra_create_element("tee", "rtcpvt");
+ GstElement* qrtcpv = sydra_create_element("queue", NULL);
sources->rtp_audio_ = sydra_create_element("udpsrc", "udprtpa");
tees.rtpa_ = sydra_create_element("tee", "rtpat");
+ GstElement* qrtpa = sydra_create_element("queue", NULL);
sources->rtcp_audio_ = sydra_create_element("udpsrc", "udprtcpa");
tees.rtcpa_ = sydra_create_element("tee", "rtcpat");
+ GstElement* qrtcpa = sydra_create_element("queue", NULL);
if(!(sources->rtp_video_) || !(sources->rtcp_video_) || !(sources->rtp_audio_) || !(sources->rtcp_audio_) ||
- !(tees.rtpv_) || !(tees.rtcpv_) || !(tees.rtpa_) || !(tees.rtcpa_))
+ !(tees.rtpv_) || !(tees.rtcpv_) || !(tees.rtpa_) || !(tees.rtcpa_) || !qrtpv || !qrtcpv || !qrtpa || !qrtcpa)
return FALSE;
log_printf(INFO, "udp sources created successfully!");
@@ -330,20 +334,30 @@ static gboolean create_udp_sources(options_t* opt, GstElement* pipeline, GstElem
g_object_set(G_OBJECT(sources->rtcp_audio_), "address", opt->rtp_addr_local_, NULL);
}
+ g_object_set(G_OBJECT(qrtpv), "min-threshold-time", 100000000, NULL);
+ g_object_set(G_OBJECT(qrtcpv), "min-threshold-time", 100000000, NULL);
+ g_object_set(G_OBJECT(qrtpa), "min-threshold-time", 100000000, NULL);
+ g_object_set(G_OBJECT(qrtcpa), "min-threshold-time", 100000000, NULL);
+
log_printf(INFO, "udp sources configured successfully!");
gst_bin_add_many(GST_BIN(pipeline), sources->rtp_video_, sources->rtcp_video_, sources->rtp_audio_, sources->rtcp_audio_, NULL);
gst_bin_add_many(GST_BIN(pipeline), tees.rtpv_, tees.rtcpv_, tees.rtpa_, tees.rtcpa_, NULL);
+ gst_bin_add_many(GST_BIN(pipeline), qrtpv, qrtcpv, qrtpa, qrtcpa, NULL);
gst_element_link(sources->rtp_video_, tees.rtpv_);
gst_element_link(sources->rtcp_video_, tees.rtcpv_);
gst_element_link(sources->rtp_audio_, tees.rtpa_);
gst_element_link(sources->rtcp_audio_, tees.rtcpa_);
- if(!sydra_link_request_request(tees.rtpv_, "src_%u", rtp, "recv_rtp_sink_0") ||
- !sydra_link_request_request(tees.rtcpv_, "src_%u", rtp, "recv_rtcp_sink_0") ||
- !sydra_link_request_request(tees.rtpa_, "src_%u", rtp, "recv_rtp_sink_1") ||
- !sydra_link_request_request(tees.rtcpa_, "src_%u", rtp, "recv_rtcp_sink_1"))
+ if(!sydra_link_request_static(tees.rtpv_, "src_%u", qrtpv, "sink") ||
+ !sydra_link_static_request(qrtpv, "src", rtp, "recv_rtp_sink_0") ||
+ !sydra_link_request_static(tees.rtcpv_, "src_%u", qrtcpv, "sink") ||
+ !sydra_link_static_request(qrtcpv, "src", rtp, "recv_rtcp_sink_0") ||
+ !sydra_link_request_static(tees.rtpa_, "src_%u", qrtpa, "sink") ||
+ !sydra_link_static_request(qrtpa, "src", rtp, "recv_rtp_sink_1") ||
+ !sydra_link_request_static(tees.rtcpa_, "src_%u", qrtcpa, "sink") ||
+ !sydra_link_static_request(qrtcpa, "src", rtp, "recv_rtcp_sink_1"))
return FALSE;
log_printf(INFO, "udp sources linked successfully!");