g_signal_emit_by_name (webrtcbin, "get-transceivers", &transceivers);
if (transceivers != NULL && transceivers->len > 0) {
- trans = g_array_index (transceivers, GstWebRTCRTPTransceiver *, transceiver_idx);
- trans->direction = direction;
- g_array_unref (transceivers);
- ms_info("Set transceiver direction(%d) to transceiver_%d", trans->direction, transceiver_idx);
+ trans = g_array_index(transceivers, GstWebRTCRTPTransceiver *, transceiver_idx);
+ g_object_set(G_OBJECT(trans), "direction", direction, NULL);
+ g_array_unref(transceivers);
+ ms_info("Set transceiver direction(%d) to transceiver_%d", direction, transceiver_idx);
} else {
ms_error("Could not set transceiver direction(%d) in transceiver_%d", direction, transceiver_idx);
}
void ms_webrtc_set_rtp_transceiver_direction_with_caps(GstElement *webrtcbin, const gchar *caps_str, GstWebRTCRTPTransceiverDirection direction)
{
GstWebRTCRTPTransceiver *trans = NULL;
+ GstWebRTCRTPTransceiverDirection _direction;
GstCaps *caps = NULL;
ms_retm_if(webrtcbin == NULL, "webrtcbin is NULL");
- caps = gst_caps_from_string (caps_str);
- g_signal_emit_by_name (webrtcbin, "add-transceiver", direction, caps, &trans);
- gst_caps_unref (caps);
+ caps = gst_caps_from_string(caps_str);
+ g_signal_emit_by_name(webrtcbin, "add-transceiver", direction, caps, &trans);
+ gst_caps_unref(caps);
if (trans) {
- ms_info("Set transceiver direction(%d) with caps(%s)", trans->direction, caps_str);
- gst_object_unref (trans);
+ g_object_get(G_OBJECT(trans), "direction", &_direction, NULL);
+ ms_info("Set transceiver direction(%d) with caps(%s)", _direction, caps_str);
+ gst_object_unref(trans);
} else {
ms_error("Could not set transceivers direction(%d) with caps(%s)", direction, caps_str);
}
void ms_webrtcbin_on_new_transceiver_cb(GstElement *webrtcbin, GstWebRTCRTPTransceiver *transceiver, gpointer user_data)
{
+ gint mlineindex;
+ gchar *mid;
+ GstWebRTCRTPTransceiverDirection direction;
+
ms_retm_if(webrtcbin == NULL, "webrtcbin is NULL");
ms_retm_if(transceiver == NULL, "transceiver is NULL");
- ms_info("new transceiver[%p, mline:%u, mid:%s, direction:%d] user_data[%p]",
- transceiver, transceiver->mline, transceiver->mid, transceiver->direction, user_data);
+ g_object_get(G_OBJECT(transceiver),
+ "mlineindex", &mlineindex, "mid", &mid, "direction", &direction, NULL);
+
+ ms_info("new transceiver[%p, mlineindex:%u, mid:%s, direction:%d] user_data[%p]",
+ transceiver, mlineindex, mid, direction, user_data);
}
void ms_webrtcbin_notify_ice_connection_state_cb(GstElement *webrtcbin, GParamSpec * pspec, gpointer user_data)
pad = gst_element_get_static_pad(node->gst_element, pad_name);
if (!pad)
- pad = gst_element_get_request_pad(node->gst_element, pad_name);
+ pad = gst_element_request_pad_simple(node->gst_element, pad_name);
if (!pad) {
ms_warning("pad[%s] is NULL, in case of force unset, request pad can be already disposed after unlink and\n"
pad = gst_element_get_static_pad(ms_node->gst_element, pad_name);
if (!pad) {
- pad = gst_element_get_request_pad(ms_node->gst_element, pad_name);
+ pad = gst_element_request_pad_simple(ms_node->gst_element, pad_name);
if (!pad) {
ms_error ("Failed to get pad from pad_name[%s]", pad_name);
return MEDIA_STREAMER_ERROR_INVALID_OPERATION;