}
//LCOV_EXCL_START
-gboolean ms_rtp_node_prepare(media_streamer_node_s *node)
+int ms_rtp_node_prepare(media_streamer_node_s *node)
{
GstElement *rtpbin = NULL;
- gboolean ret = TRUE;
GstElement *rtp_el = NULL;
GstElement *rtcp_el = NULL;
GValue *val = NULL;
ms_debug_fenter();
- ms_retvm_if(!node, MEDIA_STREAMER_ERROR_INVALID_OPERATION, "node is NULL");
+ ms_retvm_if(!node, MEDIA_STREAMER_ERROR_INVALID_PARAMETER, "node is NULL");
rtpbin = ms_element_create("rtpbin", "rtpbin");
ms_retvm_if(!rtpbin, FALSE, "Error: creating elements for rtp container");
if (!ms_bin_add_element(node->gst_element, rtpbin, FALSE)) {
MS_SAFE_UNREF(rtpbin);
- return FALSE;
+ return MEDIA_STREAMER_ERROR_INVALID_OPERATION;
}
ms_signal_create(&node->sig_list, rtpbin, "pad-added", G_CALLBACK(ms_rtpbin_pad_added_cb), node);
rtcp_el = ms_element_create("udpsrc", MS_RTP_PAD_VIDEO_IN"_rctp");
ms_bin_add_element(node->gst_element, rtcp_el, FALSE);
- ret = ret && gst_element_link_pads(rtp_el, "src", rtpbin, "recv_rtp_sink_0");
- ret = ret && gst_element_link_pads(rtcp_el, "src", rtpbin, "recv_rtcp_sink_0");
+ if (!gst_element_link_pads(rtp_el, "src", rtpbin, "recv_rtp_sink_0") ||
+ !gst_element_link_pads(rtcp_el, "src", rtpbin, "recv_rtcp_sink_0")) {
+ ms_error("Failed to link pads for rtpbin sink pad 0");
+ return MEDIA_STREAMER_ERROR_INVALID_OPERATION;
+ }
g_object_set_property(G_OBJECT(rtp_el), MEDIA_STREAMER_PARAM_PORT, val);
g_object_set(G_OBJECT(rtcp_el), MEDIA_STREAMER_PARAM_PORT, (g_value_get_int(val) + 1), NULL);
rtcp_el = ms_element_create("udpsrc", MS_RTP_PAD_AUDIO_IN"_rctp");
ms_bin_add_element(node->gst_element, rtcp_el, FALSE);
- ret = ret && gst_element_link_pads(rtp_el, "src", rtpbin, "recv_rtp_sink_1");
- ret = ret && gst_element_link_pads(rtcp_el, "src", rtpbin, "recv_rtcp_sink_1");
+ if (!gst_element_link_pads(rtp_el, "src", rtpbin, "recv_rtp_sink_1") ||
+ !gst_element_link_pads(rtcp_el, "src", rtpbin, "recv_rtcp_sink_1")) {
+ ms_error("Failed to link pads for rtpbin sink pad 1");
+ return MEDIA_STREAMER_ERROR_INVALID_OPERATION;
+ }
g_object_set_property(G_OBJECT(rtp_el), MEDIA_STREAMER_PARAM_PORT, val);
g_object_set(G_OBJECT(rtcp_el), MEDIA_STREAMER_PARAM_PORT, (g_value_get_int(val) + 1), NULL);
ms_info(" Capsfilter for [%s] in RTP is set and linked", MS_RTP_PAD_VIDEO_IN);
}
- ret = ret && gst_element_link_pads(rtpbin, "send_rtp_src_0", rtp_el, "sink");
- ret = ret && gst_element_link_pads(rtpbin, "send_rtcp_src_0", rtcp_el, "sink");
+ if (!gst_element_link_pads(rtpbin, "send_rtp_src_0", rtp_el, "sink") ||
+ !gst_element_link_pads(rtpbin, "send_rtcp_src_0", rtcp_el, "sink")) {
+ ms_error("Failed to link pads for rtpbin src pad 0");
+ return MEDIA_STREAMER_ERROR_INVALID_OPERATION;
+ }
g_object_set_property(G_OBJECT(rtp_el), MEDIA_STREAMER_PARAM_PORT, val);
g_object_set(GST_OBJECT(rtp_el), MEDIA_STREAMER_PARAM_HOST, host, NULL);
ms_info(" Capsfilter for [%s] in RTP is set and linked", MS_RTP_PAD_AUDIO_IN);
}
- ret = ret && gst_element_link_pads(rtpbin, "send_rtp_src_1", rtp_el, "sink");
- ret = ret && gst_element_link_pads(rtpbin, "send_rtcp_src_1", rtcp_el, "sink");
+ if (!gst_element_link_pads(rtpbin, "send_rtp_src_1", rtp_el, "sink") ||
+ !gst_element_link_pads(rtpbin, "send_rtcp_src_1", rtcp_el, "sink")) {
+ ms_error("Failed to link pads for rtpbin src pad 1");
+ return MEDIA_STREAMER_ERROR_INVALID_OPERATION;
+ }
g_object_set_property(G_OBJECT(rtp_el), MEDIA_STREAMER_PARAM_PORT, val);
g_object_set(GST_OBJECT(rtp_el), MEDIA_STREAMER_PARAM_HOST, host, NULL);
ms_debug_fleave();
- return ret;
+ return MEDIA_STREAMER_ERROR_NONE;
}
//LCOV_EXCL_STOP