rtp_container = gst_bin_new("rtp_container");
ms_retvm_if(!rtp_container, (GstElement *) NULL, "Error: creating elements for rtp container");
- ms_add_no_target_ghostpad(rtp_container, MS_RTP_PAD_VIDEO_OUT, GST_PAD_SRC);
- ms_add_no_target_ghostpad(rtp_container, MS_RTP_PAD_AUDIO_OUT, GST_PAD_SRC);
- ms_add_no_target_ghostpad(rtp_container, MS_RTP_PAD_VIDEO_IN, GST_PAD_SINK);
- ms_add_no_target_ghostpad(rtp_container, MS_RTP_PAD_AUDIO_IN, GST_PAD_SINK);
+ ms_add_no_target_ghostpad(rtp_container, MS_PAD_VIDEO_OUT, GST_PAD_SRC);
+ ms_add_no_target_ghostpad(rtp_container, MS_PAD_AUDIO_OUT, GST_PAD_SRC);
+ ms_add_no_target_ghostpad(rtp_container, MS_PAD_VIDEO_IN, GST_PAD_SINK);
+ ms_add_no_target_ghostpad(rtp_container, MS_PAD_AUDIO_IN, GST_PAD_SINK);
- ms_add_no_target_ghostpad(rtp_container, MS_RTP_PAD_VIDEO_IN"_rtp", GST_PAD_SINK);
- ms_add_no_target_ghostpad(rtp_container, MS_RTP_PAD_AUDIO_IN"_rtp", GST_PAD_SINK);
+ ms_add_no_target_ghostpad(rtp_container, MS_PAD_VIDEO_IN"-rtp", GST_PAD_SINK);
+ ms_add_no_target_ghostpad(rtp_container, MS_PAD_AUDIO_IN"-rtp", GST_PAD_SINK);
/* Add RTP node parameters as GObject data with destroy function */
MS_SET_INT_PARAM(rtp_container, MEDIA_STREAMER_PARAM_VIDEO_IN_PORT, RTP_STREAM_DISABLED);
MS_SET_INT_PARAM(rtp_container, MEDIA_STREAMER_PARAM_VIDEO_OUT_PORT, RTP_STREAM_DISABLED);
MS_SET_INT_PARAM(rtp_container, MEDIA_STREAMER_PARAM_AUDIO_OUT_PORT, RTP_STREAM_DISABLED);
MS_SET_INT_STATIC_STRING_PARAM(rtp_container, MEDIA_STREAMER_PARAM_HOST, "localhost");
- MS_SET_INT_CAPS_PARAM(rtp_container, MEDIA_STREAMER_PARAM_VIDEO_IN_FORMAT, gst_caps_new_any());
- MS_SET_INT_CAPS_PARAM(rtp_container, MEDIA_STREAMER_PARAM_AUDIO_IN_FORMAT, gst_caps_new_any());
+ MS_SET_INT_CAPS_PARAM(rtp_container, MS_PARAM_VIDEO_IN_FORMAT, gst_caps_new_any());
+ MS_SET_INT_CAPS_PARAM(rtp_container, MS_PARAM_AUDIO_IN_FORMAT, gst_caps_new_any());
ms_debug_fleave();
g_value_unset(val);
g_value_init(val, G_TYPE_STRING);
g_value_set_string(val, param_value);
- } else if (!strcmp(param->param_name, MEDIA_STREAMER_PARAM_VIDEO_IN_FORMAT) ||
- !strcmp(param->param_name, MEDIA_STREAMER_PARAM_AUDIO_IN_FORMAT)) {
+ } else if (!strcmp(param->param_name, MS_PARAM_VIDEO_IN_FORMAT) ||
+ !strcmp(param->param_name, MS_PARAM_AUDIO_IN_FORMAT)) {
GstCaps *caps = gst_caps_from_string(param_value);
if (caps) {
g_value_unset(val);
val = (GValue *)g_object_get_data(G_OBJECT(node->gst_element), MEDIA_STREAMER_PARAM_VIDEO_IN_PORT);
if (g_value_get_int(val) > RTP_STREAM_DISABLED) {
- rtp_el = ms_element_create("udpsrc", MS_RTP_PAD_VIDEO_IN"_rtp");
+ rtp_el = ms_element_create("udpsrc", MS_PAD_VIDEO_IN"-rtp");
ms_bin_add_element(node->gst_element, rtp_el, FALSE);
- rtcp_el = ms_element_create("udpsrc", MS_RTP_PAD_VIDEO_IN"_rctp");
+ rtcp_el = ms_element_create("udpsrc", MS_PAD_VIDEO_IN"-rtcp");
ms_bin_add_element(node->gst_element, rtcp_el, FALSE);
if (!gst_element_link_pads(rtp_el, "src", rtpbin, "recv_rtp_sink_0") ||
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);
- val = (GValue *)g_object_get_data(G_OBJECT(node->gst_element), MEDIA_STREAMER_PARAM_VIDEO_IN_FORMAT);
+ val = (GValue *)g_object_get_data(G_OBJECT(node->gst_element), MS_PARAM_VIDEO_IN_FORMAT);
g_object_set_property(G_OBJECT(rtp_el), "caps", val);
}
val = (GValue *)g_object_get_data(G_OBJECT(node->gst_element), MEDIA_STREAMER_PARAM_AUDIO_IN_PORT);
if (g_value_get_int(val) > RTP_STREAM_DISABLED) {
- rtp_el = ms_element_create("udpsrc", MS_RTP_PAD_AUDIO_IN"_rtp");
+ rtp_el = ms_element_create("udpsrc", MS_PAD_AUDIO_IN"-rtp");
ms_bin_add_element(node->gst_element, rtp_el, FALSE);
- rtcp_el = ms_element_create("udpsrc", MS_RTP_PAD_AUDIO_IN"_rctp");
+ rtcp_el = ms_element_create("udpsrc", MS_PAD_AUDIO_IN"-rtcp");
ms_bin_add_element(node->gst_element, rtcp_el, FALSE);
if (!gst_element_link_pads(rtp_el, "src", rtpbin, "recv_rtp_sink_1") ||
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);
- val = (GValue *)g_object_get_data(G_OBJECT(node->gst_element), MEDIA_STREAMER_PARAM_AUDIO_IN_FORMAT);
+ val = (GValue *)g_object_get_data(G_OBJECT(node->gst_element), MS_PARAM_AUDIO_IN_FORMAT);
g_object_set_property(G_OBJECT(rtp_el), "caps", val);
}
val = (GValue *)g_object_get_data(G_OBJECT(node->gst_element), MEDIA_STREAMER_PARAM_VIDEO_OUT_PORT);
if (g_value_get_int(val) > RTP_STREAM_DISABLED) {
- rtp_el = ms_element_create("udpsink", MS_RTP_PAD_VIDEO_OUT"_rtp");
+ rtp_el = ms_element_create("udpsink", MS_PAD_VIDEO_OUT"-rtp");
ms_bin_add_element(node->gst_element, rtp_el, FALSE);
- rtcp_el = ms_element_create("udpsink", MS_RTP_PAD_VIDEO_OUT"_rctp");
+ rtcp_el = ms_element_create("udpsink", MS_PAD_VIDEO_OUT"-rtcp");
ms_bin_add_element(node->gst_element, rtcp_el, FALSE);
video_filter = ms_element_create("capsfilter", NULL);
gst_element_link_pads(video_filter, "src", rtpbin, "send_rtp_sink_0");
- ghost_pad = (GstGhostPad *)gst_element_get_static_pad(node->gst_element, MS_RTP_PAD_VIDEO_IN);
+ ghost_pad = (GstGhostPad *)gst_element_get_static_pad(node->gst_element, MS_PAD_VIDEO_IN);
if (ghost_pad) {
if (gst_ghost_pad_set_target(ghost_pad, gst_element_get_static_pad(video_filter, "sink")))
- ms_info(" Capsfilter for [%s] in RTP is set and linked", MS_RTP_PAD_VIDEO_IN);
+ ms_info(" Capsfilter for [%s] in RTP is set and linked", MS_PAD_VIDEO_IN);
}
if (!gst_element_link_pads(rtpbin, "send_rtp_src_0", rtp_el, "sink") ||
val = (GValue *)g_object_get_data(G_OBJECT(node->gst_element), MEDIA_STREAMER_PARAM_AUDIO_OUT_PORT);
if (g_value_get_int(val) > RTP_STREAM_DISABLED) {
- rtp_el = ms_element_create("udpsink", MS_RTP_PAD_AUDIO_OUT"_rtp");
+ rtp_el = ms_element_create("udpsink", MS_PAD_AUDIO_OUT"-rtp");
ms_bin_add_element(node->gst_element, rtp_el, FALSE);
- rtcp_el = ms_element_create("udpsink", MS_RTP_PAD_AUDIO_OUT"_rctp");
+ rtcp_el = ms_element_create("udpsink", MS_PAD_AUDIO_OUT"-rtcp");
ms_bin_add_element(node->gst_element, rtcp_el, FALSE);
audio_filter = ms_element_create("capsfilter", NULL);
gst_element_link_pads(audio_filter, "src", rtpbin, "send_rtp_sink_1");
- ghost_pad = (GstGhostPad *)gst_element_get_static_pad(node->gst_element, MS_RTP_PAD_AUDIO_IN);
+ ghost_pad = (GstGhostPad *)gst_element_get_static_pad(node->gst_element, MS_PAD_AUDIO_IN);
if (ghost_pad) {
if (gst_ghost_pad_set_target(ghost_pad, gst_element_get_static_pad(audio_filter, "sink")))
- ms_info(" Capsfilter for [%s] in RTP is set and linked", MS_RTP_PAD_AUDIO_IN);
+ ms_info(" Capsfilter for [%s] in RTP is set and linked", MS_PAD_AUDIO_IN);
}
if (!gst_element_link_pads(rtpbin, "send_rtp_src_1", rtp_el, "sink") ||
g_strcmp0(capsfilter_name, _WEBRTC_VIDEO_CAPSFILTER))
return MEDIA_STREAMER_ERROR_INVALID_PARAMETER;
- pad_name = !g_strcmp0(capsfilter_name, _WEBRTC_AUDIO_CAPSFILTER) ? MS_RTP_PAD_AUDIO_IN : MS_RTP_PAD_VIDEO_IN;
+ pad_name = !g_strcmp0(capsfilter_name, _WEBRTC_AUDIO_CAPSFILTER) ? MS_PAD_AUDIO_IN : MS_PAD_VIDEO_IN;
if (!(filter = ms_find_element_in_bin_by_name(webrtc_container, capsfilter_name))) {
ms_debug("No need to export the ghost sink pad for [%s]", pad_name);
ms_debug_fenter();
/* It is needed to set 'application/x-rtp' for audio and video udpsrc */
- if (g_strrstr(pad_name, MS_RTP_PAD_VIDEO_IN)) {
+ if (g_strrstr(pad_name, MS_PAD_VIDEO_IN)) {
ret = media_format_get_video_info(fmt, &mime, NULL, NULL, NULL, NULL);
if (MEDIA_FORMAT_ERROR_NONE == ret) {
rtp_caps_str = g_strdup_printf("application/x-rtp,media=(string)video,clock-rate=(int)90000,encoding-name=%s", ms_convert_mime_to_rtp_format(mime));
- param_s param = {MEDIA_STREAMER_PARAM_VIDEO_IN_FORMAT, MEDIA_STREAMER_PARAM_VIDEO_IN_FORMAT};
+ param_s param = {MS_PARAM_VIDEO_IN_FORMAT, MS_PARAM_VIDEO_IN_FORMAT};
ret = ms_node_set_param_value(node, ¶m, rtp_caps_str);
}
- } else if (g_strrstr(pad_name, MS_RTP_PAD_AUDIO_IN)) {
+ } else if (g_strrstr(pad_name, MS_PAD_AUDIO_IN)) {
int audio_channels, audio_samplerate;
ret = media_format_get_audio_info(fmt, &mime, &audio_channels, &audio_samplerate, NULL, NULL);
if (MEDIA_FORMAT_ERROR_NONE == ret) {
rtp_caps_str = g_strdup_printf("application/x-rtp,media=(string)audio,clock-rate=(int)8000,encoding-name=(string)AMR,encoding-params=(string)1,octet-align=(string)1");
- param_s param = {MEDIA_STREAMER_PARAM_AUDIO_IN_FORMAT, MEDIA_STREAMER_PARAM_AUDIO_IN_FORMAT};
+ param_s param = {MS_PARAM_AUDIO_IN_FORMAT, MS_PARAM_AUDIO_IN_FORMAT};
ret = ms_node_set_param_value(node, ¶m, rtp_caps_str);
}
} else {
ms_debug_fenter();
- if (!g_strrstr(pad_name, MS_RTP_PAD_VIDEO_IN) && !g_strrstr(pad_name, MS_RTP_PAD_AUDIO_IN)) {
+ if (!g_strrstr(pad_name, MS_PAD_VIDEO_IN) && !g_strrstr(pad_name, MS_PAD_AUDIO_IN)) {
ms_error("Not supported pad_name(%s)", pad_name);
return MEDIA_STREAMER_ERROR_INVALID_PARAMETER;
}
- if (g_strrstr(pad_name, MS_RTP_PAD_VIDEO_IN) &&
+ if (g_strrstr(pad_name, MS_PAD_VIDEO_IN) &&
!media_format_get_video_info(fmt, &mime, NULL, NULL, NULL, NULL)) {
media = "video";
payload = 96;
capsfilter_name = _WEBRTC_VIDEO_CAPSFILTER;
- } else if (g_strrstr(pad_name, MS_RTP_PAD_AUDIO_IN) &&
+ } else if (g_strrstr(pad_name, MS_PAD_AUDIO_IN) &&
!media_format_get_audio_info(fmt, &mime, NULL, NULL, NULL, NULL)) {
media = "audio";
payload = 97;
media_streamer_node_link(video_queue0, "src", video_enc, "sink");
media_streamer_node_link(video_enc, "src", video_pay, "sink");
media_streamer_node_link(video_pay, "src", video_queue1, "sink");
- media_streamer_node_link(video_queue1, "src",webrtc, "video_in");
+ media_streamer_node_link(video_queue1, "src", webrtc, MEDIA_STREAMER_NODE_PAD_VIDEO_SINK);
/* Audio link */
media_streamer_node_link(audio_src, "src", audio_queue0, "sink");
media_streamer_node_link(audio_queue0, "src", audio_enc, "sink");
media_streamer_node_link(audio_enc, "src", audio_pay, "sink");
media_streamer_node_link(audio_pay, "src", audio_queue1, "sink");
- media_streamer_node_link(audio_queue1, "src", webrtc, "audio_in");
-
+ media_streamer_node_link(audio_queue1, "src", webrtc, MEDIA_STREAMER_NODE_PAD_AUDIO_SINK);
/* Note that setting pad format to WebRTC node is necessary, WebRTC use this format as media information for SDP */
- media_streamer_node_set_pad_format(webrtc, "audio_in", afmt_opus);
- media_streamer_node_set_pad_format(webrtc, "video_in", vfmt_vp8);
+ media_streamer_node_set_pad_format(webrtc, MEDIA_STREAMER_NODE_PAD_AUDIO_SINK, afmt_opus);
+ media_streamer_node_set_pad_format(webrtc, MEDIA_STREAMER_NODE_PAD_VIDEO_SINK, vfmt_vp8);
g_webrtc = webrtc;
}
bundle_add_str(params, MEDIA_STREAMER_PARAM_HOST, ip);
media_streamer_node_set_params(rtp_node, params);
- media_streamer_node_set_pad_format(rtp_node, "video_in", vfmt_encoded);
- media_streamer_node_set_pad_format(rtp_node, "audio_in", afmt_encoded);
+ media_streamer_node_set_pad_format(rtp_node, MEDIA_STREAMER_NODE_PAD_VIDEO_SINK, vfmt_encoded);
+ media_streamer_node_set_pad_format(rtp_node, MEDIA_STREAMER_NODE_PAD_AUDIO_SINK, afmt_encoded);
bundle_free(params);
}
/*====================Linking Video Streamer=========================== */
media_streamer_node_link(video_src, "src", video_enc, "sink");
media_streamer_node_link(video_enc, "src", video_pay, "sink");
- media_streamer_node_link(video_pay, "src", rtp_bin, "video_in");
+ media_streamer_node_link(video_pay, "src", rtp_bin, MEDIA_STREAMER_NODE_PAD_VIDEO_SINK);
/*====================================================================== */
g_print("== success streamer video part \n");
/*====================Linking Audio Streamer========================== */
media_streamer_node_link(audio_src, "src", audio_enc, "sink");
media_streamer_node_link(audio_enc, "src", audio_pay, "sink");
- media_streamer_node_link(audio_pay, "src", rtp_bin, "audio_in");
+ media_streamer_node_link(audio_pay, "src", rtp_bin, MEDIA_STREAMER_NODE_PAD_AUDIO_SINK);
/*====================================================================== */
g_print("== success streamer audio part \n");