return ret;
}
+GstElement * ms_webrtc_node_get_webrtcbin(media_streamer_node_s *webrtc_node)
+{
+ GstElement *webrtcbin = NULL;
+ node_info_s *node_klass_type = NULL;
+
+ ms_retvm_if(webrtc_node == NULL, NULL, "webrtc_node is NULL");
+ ms_retvm_if(webrtc_node->gst_element == NULL, NULL, "webrtc_container is NULL");
+
+ ms_debug_fenter();
+
+ node_klass_type = ms_node_get_klass_by_its_type(MEDIA_STREAMER_NODE_TYPE_WEBRTC);
+ webrtcbin = ms_find_element_in_bin_by_type(webrtc_node->gst_element, node_klass_type);
+ if (!webrtcbin)
+ ms_error("Could not find webrtcbin by type[%s, %s]", node_klass_type->klass_name, node_klass_type->default_name);
+
+ ms_debug_fleave();
+
+ return webrtcbin;
+}
+
int ms_webrtc_node_prepare(media_streamer_s *ms_streamer, media_streamer_node_s *node)
{
int ret = MEDIA_STREAMER_ERROR_NONE;
GstElement *webrtcbin = NULL;
- node_info_s *node_klass_type = NULL;
GObject *send_channel = NULL;
gboolean is_offerer = FALSE;
media_streamer_webrtc_callbacks_s *_callbacks = NULL;
ms_retvm_if(!node, MEDIA_STREAMER_ERROR_INVALID_PARAMETER, "node is NULL");
ms_retvm_if(node->type != MEDIA_STREAMER_NODE_TYPE_WEBRTC, MEDIA_STREAMER_ERROR_INVALID_PARAMETER, "node is not WebRTC");
- 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 MEDIA_STREAMER_ERROR_INVALID_OPERATION;
- }
_callbacks = (media_streamer_webrtc_callbacks_s *) node->callbacks_structure;
if (!_callbacks || !(_callbacks->message_cb.callback)) {