Add internal API for getting webrtcbin from webrtc node
[platform/core/api/mediastreamer.git] / src / media_streamer_gst_webrtc.c
index 4c5da00..4e071d7 100644 (file)
@@ -175,7 +175,6 @@ static void __on_offer_created_cb(GstPromise *promise, gpointer user_data)
        GstWebRTCSessionDescription *offer = NULL;
        const GstStructure *reply;
        media_streamer_node_s *webrtc_node = (media_streamer_node_s *)user_data;
-       node_info_s *node_klass_type = NULL;
        GstElement *webrtcbin = NULL;
        gchar *sdp_msg;
 
@@ -185,11 +184,8 @@ static void __on_offer_created_cb(GstPromise *promise, gpointer user_data)
 
        ms_debug_fenter();
 
-       node_klass_type = ms_node_get_klass_by_its_type(MEDIA_STREAMER_NODE_TYPE_WEBRTC);
-       if (!(webrtcbin = ms_find_element_in_bin_by_type(webrtc_node->gst_element, node_klass_type))) {
-               ms_error("Could not find webrtcbin by type[%s, %s]", node_klass_type->klass_name, node_klass_type->default_name);
+       if (!(webrtcbin = ms_webrtc_node_get_webrtcbin(webrtc_node)))
                return;
-       }
 
        reply = gst_promise_get_reply(promise);
        gst_structure_get(reply, "offer",
@@ -213,7 +209,6 @@ static void __on_answer_created_cb(GstPromise * promise, gpointer user_data)
        GstWebRTCSessionDescription *answer = NULL;
        const GstStructure *reply;
        media_streamer_node_s *node = (media_streamer_node_s *)user_data;
-       node_info_s *node_klass_type = NULL;
        gchar *sdp_msg;
        GstElement *webrtcbin;
 
@@ -224,11 +219,8 @@ static void __on_answer_created_cb(GstPromise * promise, gpointer user_data)
 
        ms_debug_fenter();
 
-       node_klass_type = ms_node_get_klass_by_its_type(MEDIA_STREAMER_NODE_TYPE_WEBRTC);
-       if (!(webrtcbin = ms_find_element_in_bin_by_type(node->gst_element, node_klass_type))) {
-               ms_error("Could not find webrtcbin by type[%s, %s]", node_klass_type->klass_name, node_klass_type->default_name);
+       if (!(webrtcbin = ms_webrtc_node_get_webrtcbin(node)))
                return;
-       }
 
        reply = gst_promise_get_reply(promise);
        gst_structure_get(reply, "answer", GST_TYPE_WEBRTC_SESSION_DESCRIPTION, &answer, NULL);
@@ -252,7 +244,6 @@ int ms_webrtcbin_set_remote_session_description(media_streamer_node_s *webrtc_no
        gchar *sdp;
        gchar *type;
        GstWebRTCSessionDescription *answer, *offer;
-       node_info_s *node_klass_type;
        GstElement *webrtcbin;
        int ret = MEDIA_STREAMER_ERROR_NONE;
 
@@ -262,12 +253,8 @@ int ms_webrtcbin_set_remote_session_description(media_streamer_node_s *webrtc_no
 
        ms_debug_fenter();
 
-
-       node_klass_type = ms_node_get_klass_by_its_type(MEDIA_STREAMER_NODE_TYPE_WEBRTC);
-       if (!(webrtcbin = ms_find_element_in_bin_by_type(webrtc_node->gst_element, node_klass_type))) {
-               ms_error("Could not find webrtcbin by type[%s, %s]", node_klass_type->klass_name, node_klass_type->default_name);
+       if (!(webrtcbin = ms_webrtc_node_get_webrtcbin(webrtc_node)))
                return MEDIA_STREAMER_ERROR_INVALID_OPERATION;
-       }
 
        ret = ms_webrtc_get_sdp_from_message(sdp_msg, &sdp, &type);
        if (ret != MEDIA_STREAMER_ERROR_NONE)
@@ -316,7 +303,6 @@ int ms_webrtcbin_add_ice_candidate(media_streamer_node_s *webrtc_node, const cha
 {
        gchar *candidate;
        gint sdpmlineindex;
-       node_info_s *node_klass_type;
        GstElement *webrtcbin;
        int ret;
 
@@ -326,11 +312,8 @@ int ms_webrtcbin_add_ice_candidate(media_streamer_node_s *webrtc_node, const cha
 
        ms_debug_fenter();
 
-       node_klass_type = ms_node_get_klass_by_its_type(MEDIA_STREAMER_NODE_TYPE_WEBRTC);
-       if (!(webrtcbin = ms_find_element_in_bin_by_type(webrtc_node->gst_element, node_klass_type))) {
-               ms_error("Could not find webrtcbin by type[%s, %s]", node_klass_type->klass_name, node_klass_type->default_name);
+       if (!(webrtcbin = ms_webrtc_node_get_webrtcbin(webrtc_node)))
                return MEDIA_STREAMER_ERROR_INVALID_OPERATION;
-       }
 
        ret = ms_webrtc_get_ice_candidate_from_message(ice_msg, &candidate, &sdpmlineindex);
        if (ret != MEDIA_STREAMER_ERROR_NONE)
@@ -346,7 +329,6 @@ int ms_webrtcbin_add_ice_candidate(media_streamer_node_s *webrtc_node, const cha
 
 int ms_webrtcbin_set_stun_server(media_streamer_node_s *webrtc_node, const char *stun_server_url)
 {
-       node_info_s *node_klass_type;
        GstElement *webrtcbin;
        GValue *val;
        const gchar *stun_server = NULL;
@@ -355,11 +337,8 @@ int ms_webrtcbin_set_stun_server(media_streamer_node_s *webrtc_node, const char
        ms_retvm_if(webrtc_node->gst_element == NULL, MEDIA_STREAMER_ERROR_INVALID_PARAMETER, "webrtc_container is NULL");
        ms_retvm_if(stun_server_url == NULL, MEDIA_STREAMER_ERROR_INVALID_PARAMETER, "stun_server_url is NULL");
 
-       node_klass_type = ms_node_get_klass_by_its_type(MEDIA_STREAMER_NODE_TYPE_WEBRTC);
-       if (!(webrtcbin = ms_find_element_in_bin_by_type(webrtc_node->gst_element, node_klass_type))) {
-               ms_error("Could not find webrtcbin by type[%s, %s]", node_klass_type->klass_name, node_klass_type->default_name);
+       if (!(webrtcbin = ms_webrtc_node_get_webrtcbin(webrtc_node)))
                return MEDIA_STREAMER_ERROR_INVALID_OPERATION;
-       }
 
        val = (GValue *)g_object_get_data(G_OBJECT(webrtc_node->gst_element), MEDIA_STREAMER_PARAM_WEBRTC_STUN_SERVER);
        if (!val) {