GList *answerICECandidates = NULL;
callback_data cb_data;
callback_data cb_data2;
+ callback_data cb_data3;
INIT_CALLBACK_DATA(cb_data);
INIT_CALLBACK_DATA(cb_data2);
+ INIT_CALLBACK_DATA(cb_data3);
nRet = webrtc_create(&webrtcOfferer);
PRINT_RESULT(WEBRTC_ERROR_NONE, nRet, "webrtc_create", WebRtcGetError(nRet));
nRet = webrtc_set_ice_gathering_state_change_cb(webrtcAnswerer, webrtcIceGatheringStateChangeCB, &cb_data2);
PRINT_RESULT(WEBRTC_ERROR_NONE, nRet, "webrtc_set_ice_gathering_state_change_cb", WebRtcGetError(nRet));
- nRet = webrtc_set_track_added_cb(webrtcAnswerer, webrtcTrackAddedCB, &cb_data2);
+ nRet = webrtc_set_track_added_cb(webrtcAnswerer, webrtcTrackAddedCB, &cb_data3);
PRINT_RESULT(WEBRTC_ERROR_NONE, nRet, "webrtc_set_track_added_cb", WebRtcGetError(nRet));
g_mutex_lock(&cb_data2.mutex);
FPRINTF("[Line : %d][%s] Callback webrtcIceGatheringStateChangeCB not invoked\\n", __LINE__, API_NAMESPACE);
return 1;
}
+ cb_data2.is_invoked = false;
g_list_foreach(offerICECandidates, __foreach_ice_candidate, webrtcAnswerer);
g_list_foreach(answerICECandidates, __foreach_ice_candidate, webrtcOfferer);
- g_mutex_lock(&cb_data2.mutex);
+ g_mutex_lock(&cb_data3.mutex);
nRet = webrtc_set_remote_description(webrtcOfferer, answerSDP);
PRINT_RESULT(WEBRTC_ERROR_NONE, nRet, "webrtc_set_remote_description", WebRtcGetError(nRet));
FREE_MEMORY(answerSDP);
/* wait for track added callback of answerer */
- RUN_POLLING_LOOP(cb_data2);
- if (!cb_data2.is_invoked) {
+ RUN_POLLING_LOOP(cb_data3);
+ if (!cb_data3.is_invoked) {
FPRINTF("[Line : %d][%s] Callback webrtcTrackAddedCB not invoked\\n", __LINE__, API_NAMESPACE);
return 1;
}
+ cb_data3.is_invoked = false;
nRet = webrtc_stop(webrtcOfferer);
PRINT_RESULT(WEBRTC_ERROR_NONE, nRet, "webrtc_stop", WebRtcGetError(nRet));