g_mutex_init(&_webrtc->state_mutex);
g_cond_init(&_webrtc->state_cond);
g_mutex_init(&_webrtc->event_src_mutex);
+ g_mutex_init(&_webrtc->signaling_state_mutex);
+ g_cond_init(&_webrtc->signaling_state_cond);
g_mutex_init(&_webrtc->desc_mutex);
g_cond_init(&_webrtc->desc_cond);
g_mutex_init(&_webrtc->stats_mutex);
g_mutex_clear(&_webrtc->state_mutex);
g_cond_clear(&_webrtc->state_cond);
g_mutex_clear(&_webrtc->event_src_mutex);
+ g_mutex_clear(&_webrtc->signaling_state_mutex);
+ g_cond_clear(&_webrtc->signaling_state_cond);
g_mutex_clear(&_webrtc->desc_mutex);
g_cond_clear(&_webrtc->desc_cond);
g_mutex_clear(&_webrtc->stats_mutex);
g_mutex_clear(&_webrtc->stats_mutex);
g_cond_clear(&_webrtc->desc_cond);
g_mutex_clear(&_webrtc->desc_mutex);
+ g_cond_clear(&_webrtc->signaling_state_cond);
+ g_mutex_clear(&_webrtc->signaling_state_mutex);
g_mutex_clear(&_webrtc->event_src_mutex);
LOG_INFO("webrtc[%p] is destroyed", webrtc);
locker = g_mutex_locker_new(&webrtc->destroy_mutex);
- g_mutex_lock(&webrtc->desc_mutex);
- g_cond_signal(&webrtc->desc_cond);
- g_mutex_unlock(&webrtc->desc_mutex);
+ g_mutex_lock(&webrtc->signaling_state_mutex);
+ g_cond_signal(&webrtc->signaling_state_cond);
+ g_mutex_unlock(&webrtc->signaling_state_mutex);
__post_signaling_state_change_cb_in_idle(webrtc, __signaling_state_info[state].state);
}
sdp_type = g_str_equal(type, "answer") ? GST_WEBRTC_SDP_TYPE_ANSWER : GST_WEBRTC_SDP_TYPE_OFFER;
desc = gst_webrtc_session_description_new(sdp_type, gst_sdp);
- g_mutex_lock(&webrtc->desc_mutex);
+ g_mutex_lock(&webrtc->signaling_state_mutex);
promise = gst_promise_new();
g_signal_emit_by_name(webrtc->gst.webrtcbin, is_remote ? "set-remote-description" : "set-local-description", desc, promise);
LOG_DEBUG("wait for invoking __webrtcbin_signaling_state_cb()");
end_time = g_get_monotonic_time() + 3 * G_TIME_SPAN_SECOND;
- if (!g_cond_wait_until(&webrtc->desc_cond, &webrtc->desc_mutex, end_time))
+ if (!g_cond_wait_until(&webrtc->signaling_state_cond, &webrtc->signaling_state_mutex, end_time))
LOG_WARNING("timeout of g_cond_wait_until()");
- g_mutex_unlock(&webrtc->desc_mutex);
+ g_mutex_unlock(&webrtc->signaling_state_mutex);
return WEBRTC_ERROR_NONE;
}