From: Sangchul Lee Date: Thu, 6 Jan 2022 05:25:06 +0000 (+0900) Subject: [ITC][webrtc][non-ACR] Use userdata of callback to remove global variable X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=ef78be2956a089352ace66e1bb328b37ab97dee0;p=test%2Ftct%2Fnative%2Fapi.git [ITC][webrtc][non-ACR] Use userdata of callback to remove global variable Change-Id: If789aa4d8ca7e765952baf9ff3e79468fd7b1745 Signed-off-by: Sangchul Lee --- diff --git a/src/itc/webrtc/ITs-webrtc-common.h b/src/itc/webrtc/ITs-webrtc-common.h index 76c04758b..63dfb45ac 100755 --- a/src/itc/webrtc/ITs-webrtc-common.h +++ b/src/itc/webrtc/ITs-webrtc-common.h @@ -66,10 +66,14 @@ do {\ return 1;\ }\ } + +typedef struct _callback_data { + GMainLoop *mainloop; + bool is_invoked; +} callback_data; + bool g_bWebRTCCreation; webrtc_h g_hWebRtcHandle; -static GMainLoop *g_pMainLoop = NULL; -bool g_bCallbackCalled; gboolean Timeout(gpointer data); char* WebRtcGetError(int nErrorType); /** @} */ diff --git a/src/itc/webrtc/ITs-webrtc.c b/src/itc/webrtc/ITs-webrtc.c index f7d614ddb..141d199ba 100755 --- a/src/itc/webrtc/ITs-webrtc.c +++ b/src/itc/webrtc/ITs-webrtc.c @@ -65,9 +65,14 @@ static void destroyWindow() */ static void webrtcSessionDescriptionCreatedCB(webrtc_h webrtc, const char *description, void *user_data) { - g_bCallbackCalled = true; + callback_data *cb_data = (callback_data *)user_data; + FPRINTF("[Line : %d][%s] Callback webrtcSessionDescriptionCreatedCB called\\n", __LINE__, API_NAMESPACE); - QUIT_LOOP(g_pMainLoop); + + if (!cb_data) + return; + cb_data->is_invoked = true; + QUIT_LOOP(cb_data->mainloop); } /** @@ -97,9 +102,14 @@ static void webrtcIceCandidateCB(webrtc_h webrtc, const char *candidate, void *u */ static void webrtcStateChangedCB(webrtc_h webrtc, webrtc_state_e previous, webrtc_state_e current, void *user_data) { - g_bCallbackCalled = true; + callback_data *cb_data = (callback_data *)user_data; + FPRINTF("[Line : %d][%s] Callback webrtcStateChangedCB called\\n", __LINE__, API_NAMESPACE); - QUIT_LOOP(g_pMainLoop); + + if (!cb_data) + return; + cb_data->is_invoked = true; + QUIT_LOOP(cb_data->mainloop); } /** @@ -109,9 +119,14 @@ static void webrtcStateChangedCB(webrtc_h webrtc, webrtc_state_e previous, webrt */ static void webrtcSignalingStateChangeCB(webrtc_h webrtc, webrtc_signaling_state_e state, void *user_data) { - g_bCallbackCalled = true; + callback_data *cb_data = (callback_data *)user_data; + FPRINTF("[Line : %d][%s] Callback webrtcSignalingStateChangeCB called\\n", __LINE__, API_NAMESPACE); - QUIT_LOOP(g_pMainLoop); + + if (!cb_data) + return; + cb_data->is_invoked = true; + QUIT_LOOP(cb_data->mainloop); } /** @@ -234,21 +249,20 @@ int ITc_webrtc_create_destroy_p(void) int ITc_webrtc_start_stop_p(void) { START_TEST; - - g_bCallbackCalled = false; + callback_data cb_data = { .mainloop = NULL, .is_invoked = false }; int nRet = webrtc_set_ice_candidate_cb(g_hWebRtcHandle, webrtcIceCandidateCB, NULL); PRINT_RESULT(WEBRTC_ERROR_NONE, nRet, "webrtc_set_ice_candidate_cb", WebRtcGetError(nRet)); - nRet = webrtc_set_state_changed_cb(g_hWebRtcHandle, webrtcStateChangedCB, NULL); + nRet = webrtc_set_state_changed_cb(g_hWebRtcHandle, webrtcStateChangedCB, &cb_data); PRINT_RESULT(WEBRTC_ERROR_NONE, nRet, "webrtc_set_state_changed_cb", WebRtcGetError(nRet)); nRet = webrtc_start(g_hWebRtcHandle); PRINT_RESULT(WEBRTC_ERROR_NONE, nRet, "webrtc_start", WebRtcGetError(nRet)); - RUN_POLLING_LOOP(g_pMainLoop, g_bCallbackCalled); - if (!g_bCallbackCalled) { - FPRINTF("[Line : %d][%s] Callback webrtcStateChangedCB not invoked for %s\\n", __LINE__, API_NAMESPACE, "webrtc_set_state_changed_cb"); + RUN_POLLING_LOOP(cb_data.mainloop, cb_data.is_invoked); + if (!cb_data.is_invoked) { + FPRINTF("[Line : %d][%s] Callback webrtcStateChangedCB not invoked\\n", __LINE__, API_NAMESPACE); return 1; } @@ -898,7 +912,7 @@ int ITc_media_webrtc_create_offer_answer_p(void) unsigned int nId; char *pszOffer, *pszAnswer; webrtc_h hLocalWebRtcHandle,hWebRtcHandle; - g_bCallbackCalled = false; + callback_data cb_data = { .mainloop = NULL, .is_invoked = false }; int nRet = webrtc_create(&hWebRtcHandle); PRINT_RESULT(WEBRTC_ERROR_NONE, nRet, "webrtc_create", WebRtcGetError(nRet)); @@ -910,18 +924,18 @@ int ITc_media_webrtc_create_offer_answer_p(void) nRet = webrtc_set_ice_candidate_cb(hWebRtcHandle, webrtcIceCandidateCB, NULL); PRINT_RESULT(WEBRTC_ERROR_NONE, nRet, "webrtc_set_ice_candidate_cb", WebRtcGetError(nRet)); - nRet = webrtc_set_state_changed_cb(hWebRtcHandle, webrtcStateChangedCB, NULL); + nRet = webrtc_set_state_changed_cb(hWebRtcHandle, webrtcStateChangedCB, &cb_data); PRINT_RESULT(WEBRTC_ERROR_NONE, nRet, "webrtc_set_state_changed_cb", WebRtcGetError(nRet)); nRet = webrtc_start(hWebRtcHandle); PRINT_RESULT(WEBRTC_ERROR_NONE, nRet, "webrtc_start", WebRtcGetError(nRet)); - RUN_POLLING_LOOP(g_pMainLoop, g_bCallbackCalled); - if (!g_bCallbackCalled) { + RUN_POLLING_LOOP(cb_data.mainloop, cb_data.is_invoked); + if (!cb_data.is_invoked) { FPRINTF("[Line : %d][%s] Callback webrtcStateChangedCB not invoked\\n", __LINE__, API_NAMESPACE); return 1; } - g_bCallbackCalled = false; + cb_data.is_invoked = false; nRet = webrtc_create_offer(hWebRtcHandle, NULL, &pszOffer); PRINT_RESULT(WEBRTC_ERROR_NONE, nRet, "webrtc_create_offer", WebRtcGetError(nRet)); @@ -933,27 +947,27 @@ int ITc_media_webrtc_create_offer_answer_p(void) nRet = webrtc_set_ice_candidate_cb(hLocalWebRtcHandle, webrtcIceCandidateCB, NULL); PRINT_RESULT(WEBRTC_ERROR_NONE, nRet, "webrtc_set_ice_candidate_cb", WebRtcGetError(nRet)); - nRet = webrtc_set_state_changed_cb(hLocalWebRtcHandle, webrtcStateChangedCB, NULL); + nRet = webrtc_set_state_changed_cb(hLocalWebRtcHandle, webrtcStateChangedCB, &cb_data); PRINT_RESULT(WEBRTC_ERROR_NONE, nRet, "webrtc_set_state_changed_cb", WebRtcGetError(nRet)); - nRet = webrtc_set_signaling_state_change_cb(hLocalWebRtcHandle, webrtcSignalingStateChangeCB, NULL); + nRet = webrtc_set_signaling_state_change_cb(hLocalWebRtcHandle, webrtcSignalingStateChangeCB, &cb_data); PRINT_RESULT(WEBRTC_ERROR_NONE, nRet, "webrtc_set_signaling_state_change_cb", WebRtcGetError(nRet)); nRet = webrtc_start(hLocalWebRtcHandle); PRINT_RESULT(WEBRTC_ERROR_NONE, nRet, "webrtc_start", WebRtcGetError(nRet)); - RUN_POLLING_LOOP(g_pMainLoop, g_bCallbackCalled); - if (!g_bCallbackCalled) { + RUN_POLLING_LOOP(cb_data.mainloop, cb_data.is_invoked); + if (!cb_data.is_invoked) { FPRINTF("[Line : %d][%s] Callback webrtcStateChangedCB not invoked\\n", __LINE__, API_NAMESPACE); return 1; } - g_bCallbackCalled = false; + cb_data.is_invoked = false; nRet = webrtc_set_remote_description(hLocalWebRtcHandle, pszOffer); PRINT_RESULT(WEBRTC_ERROR_NONE, nRet, "webrtc_set_remote_description", WebRtcGetError(nRet)); - RUN_POLLING_LOOP(g_pMainLoop, g_bCallbackCalled); - if (!g_bCallbackCalled) { + RUN_POLLING_LOOP(cb_data.mainloop, cb_data.is_invoked); + if (!cb_data.is_invoked) { FPRINTF("[Line : %d][%s] Callback webrtcSignalingStateChangeCB not invoked\\n", __LINE__, API_NAMESPACE); return 1; } @@ -1002,7 +1016,7 @@ int ITc_media_webrtc_set_local_description_p(void) START_TEST; unsigned int nId; char *pszOffer; - g_bCallbackCalled = false; + callback_data cb_data = { .mainloop = NULL, .is_invoked = false }; int nRet = webrtc_add_media_source(g_hWebRtcHandle, WEBRTC_MEDIA_SOURCE_TYPE_AUDIOTEST, &nId); PRINT_RESULT(WEBRTC_ERROR_NONE, nRet, "webrtc_add_media_source", WebRtcGetError(nRet)); @@ -1010,14 +1024,14 @@ int ITc_media_webrtc_set_local_description_p(void) nRet = webrtc_set_ice_candidate_cb(g_hWebRtcHandle, webrtcIceCandidateCB, NULL); PRINT_RESULT(WEBRTC_ERROR_NONE, nRet, "webrtc_set_ice_candidate_cb", WebRtcGetError(nRet)); - nRet = webrtc_set_state_changed_cb(g_hWebRtcHandle, webrtcStateChangedCB, NULL); + nRet = webrtc_set_state_changed_cb(g_hWebRtcHandle, webrtcStateChangedCB, &cb_data); PRINT_RESULT(WEBRTC_ERROR_NONE, nRet, "webrtc_set_state_changed_cb", WebRtcGetError(nRet)); nRet = webrtc_start(g_hWebRtcHandle); PRINT_RESULT(WEBRTC_ERROR_NONE, nRet, "webrtc_start", WebRtcGetError(nRet)); - RUN_POLLING_LOOP(g_pMainLoop, g_bCallbackCalled); - if (!g_bCallbackCalled) { + RUN_POLLING_LOOP(cb_data.mainloop, cb_data.is_invoked); + if (!cb_data.is_invoked) { FPRINTF("[Line : %d][%s] Callback webrtcStateChangedCB not invoked\\n", __LINE__, API_NAMESPACE); return 1; } @@ -1055,10 +1069,10 @@ int ITc_media_webrtc_set_local_description_p(void) int ITc_media_webrtc_set_remote_description_p(void) { START_TEST; - g_bCallbackCalled = false; webrtc_h hLocalWebRtcHandle; unsigned int nId; char *pszOffer; + callback_data cb_data = { .mainloop = NULL, .is_invoked = false }; int nRet = webrtc_add_media_source(g_hWebRtcHandle, WEBRTC_MEDIA_SOURCE_TYPE_AUDIOTEST, &nId); PRINT_RESULT(WEBRTC_ERROR_NONE, nRet, "webrtc_add_media_source", WebRtcGetError(nRet)); @@ -1066,36 +1080,36 @@ int ITc_media_webrtc_set_remote_description_p(void) nRet = webrtc_set_ice_candidate_cb(g_hWebRtcHandle, webrtcIceCandidateCB, NULL); PRINT_RESULT(WEBRTC_ERROR_NONE, nRet, "webrtc_set_ice_candidate_cb", WebRtcGetError(nRet)); - nRet = webrtc_set_state_changed_cb(g_hWebRtcHandle, webrtcStateChangedCB, NULL); + nRet = webrtc_set_state_changed_cb(g_hWebRtcHandle, webrtcStateChangedCB, &cb_data); PRINT_RESULT(WEBRTC_ERROR_NONE, nRet, "webrtc_set_state_changed_cb", WebRtcGetError(nRet)); nRet = webrtc_start(g_hWebRtcHandle); PRINT_RESULT(WEBRTC_ERROR_NONE, nRet, "webrtc_start", WebRtcGetError(nRet)); - RUN_POLLING_LOOP(g_pMainLoop, g_bCallbackCalled); - if (!g_bCallbackCalled) { + RUN_POLLING_LOOP(cb_data.mainloop, cb_data.is_invoked); + if (!cb_data.is_invoked) { FPRINTF("[Line : %d][%s] Callback webrtcStateChangedCB not invoked\\n", __LINE__, API_NAMESPACE); return 1; } + cb_data.is_invoked = false; nRet = webrtc_create_offer(g_hWebRtcHandle, NULL, &pszOffer); PRINT_RESULT(WEBRTC_ERROR_NONE, nRet, "webrtc_create_offer", WebRtcGetError(nRet)); - g_bCallbackCalled = false; nRet = webrtc_create(&hLocalWebRtcHandle); PRINT_RESULT(WEBRTC_ERROR_NONE, nRet, "webrtc_create", WebRtcGetError(nRet)); nRet = webrtc_set_ice_candidate_cb(hLocalWebRtcHandle, webrtcIceCandidateCB, NULL); PRINT_RESULT(WEBRTC_ERROR_NONE, nRet, "webrtc_set_ice_candidate_cb", WebRtcGetError(nRet)); - nRet = webrtc_set_state_changed_cb(hLocalWebRtcHandle, webrtcStateChangedCB, NULL); + nRet = webrtc_set_state_changed_cb(hLocalWebRtcHandle, webrtcStateChangedCB, &cb_data); PRINT_RESULT(WEBRTC_ERROR_NONE, nRet, "webrtc_set_state_changed_cb", WebRtcGetError(nRet)); nRet = webrtc_start(hLocalWebRtcHandle); PRINT_RESULT(WEBRTC_ERROR_NONE, nRet, "webrtc_start", WebRtcGetError(nRet)); - RUN_POLLING_LOOP(g_pMainLoop, g_bCallbackCalled); - if (!g_bCallbackCalled) { + RUN_POLLING_LOOP(cb_data.mainloop, cb_data.is_invoked); + if (!cb_data.is_invoked) { FPRINTF("[Line : %d][%s] Callback webrtcStateChangedCB not invoked\\n", __LINE__, API_NAMESPACE); return 1; } @@ -1136,19 +1150,19 @@ int ITc_media_webrtc_set_remote_description_p(void) int ITc_media_webrtc_add_ice_candidate_p(void) { START_TEST; - g_bCallbackCalled = false; + callback_data cb_data = { .mainloop = NULL, .is_invoked = false }; int nRet = webrtc_set_ice_candidate_cb(g_hWebRtcHandle, webrtcIceCandidateCB, NULL); PRINT_RESULT(WEBRTC_ERROR_NONE, nRet, "webrtc_set_ice_candidate_cb", WebRtcGetError(nRet)); - nRet = webrtc_set_state_changed_cb(g_hWebRtcHandle, webrtcStateChangedCB, NULL); + nRet = webrtc_set_state_changed_cb(g_hWebRtcHandle, webrtcStateChangedCB, &cb_data); PRINT_RESULT(WEBRTC_ERROR_NONE, nRet, "webrtc_set_state_changed_cb", WebRtcGetError(nRet)); nRet = webrtc_start(g_hWebRtcHandle); PRINT_RESULT(WEBRTC_ERROR_NONE, nRet, "webrtc_start", WebRtcGetError(nRet)); - RUN_POLLING_LOOP(g_pMainLoop, g_bCallbackCalled); - if (!g_bCallbackCalled) { + RUN_POLLING_LOOP(cb_data.mainloop, cb_data.is_invoked); + if (!cb_data.is_invoked) { FPRINTF("[Line : %d][%s] Callback webrtcStateChangedCB not invoked\\n", __LINE__, API_NAMESPACE); return 1; } @@ -1355,7 +1369,7 @@ int ITc_media_webrtc_create_offer_async_p(void) { START_TEST; unsigned int nId; - g_bCallbackCalled = false; + callback_data cb_data = { .mainloop = NULL, .is_invoked = false }; int nRet = webrtc_add_media_source(g_hWebRtcHandle, WEBRTC_MEDIA_SOURCE_TYPE_CAMERA, &nId); if (nRet == WEBRTC_ERROR_NOT_SUPPORTED) { @@ -1367,23 +1381,24 @@ int ITc_media_webrtc_create_offer_async_p(void) nRet = webrtc_set_ice_candidate_cb(g_hWebRtcHandle, webrtcIceCandidateCB, NULL); PRINT_RESULT(WEBRTC_ERROR_NONE, nRet, "webrtc_set_ice_candidate_cb", WebRtcGetError(nRet)); - nRet = webrtc_set_state_changed_cb(g_hWebRtcHandle, webrtcStateChangedCB, NULL); + nRet = webrtc_set_state_changed_cb(g_hWebRtcHandle, webrtcStateChangedCB, &cb_data); PRINT_RESULT(WEBRTC_ERROR_NONE, nRet, "webrtc_set_state_changed_cb", WebRtcGetError(nRet)); nRet = webrtc_start(g_hWebRtcHandle); PRINT_RESULT(WEBRTC_ERROR_NONE, nRet, "webrtc_start", WebRtcGetError(nRet)); - RUN_POLLING_LOOP(g_pMainLoop, g_bCallbackCalled); - if (!g_bCallbackCalled) { + RUN_POLLING_LOOP(cb_data.mainloop, cb_data.is_invoked); + if (!cb_data.is_invoked) { FPRINTF("[Line : %d][%s] Callback webrtcStateChangedCB not invoked\\n", __LINE__, API_NAMESPACE); return 1; } + cb_data.is_invoked = false; - nRet = webrtc_create_offer_async(g_hWebRtcHandle, NULL, webrtcSessionDescriptionCreatedCB, NULL); + nRet = webrtc_create_offer_async(g_hWebRtcHandle, NULL, webrtcSessionDescriptionCreatedCB, &cb_data); PRINT_RESULT(WEBRTC_ERROR_NONE, nRet, "webrtc_create_offer_async", WebRtcGetError(nRet)); - RUN_POLLING_LOOP(g_pMainLoop, g_bCallbackCalled); - if (!g_bCallbackCalled) { + RUN_POLLING_LOOP(cb_data.mainloop, cb_data.is_invoked); + if (!cb_data.is_invoked) { FPRINTF("[Line : %d][%s] Callback webrtcSessionDescriptionCreatedCB not invoked\\n", __LINE__, API_NAMESPACE); return 1; } @@ -1416,7 +1431,7 @@ int ITc_media_webrtc_create_answer_async_p(void) unsigned int nId; char *pszOffer; webrtc_h hLocalWebRtcHandle; - g_bCallbackCalled = false; + callback_data cb_data = { .mainloop = NULL, .is_invoked = false }; int nRet = webrtc_add_media_source(g_hWebRtcHandle, WEBRTC_MEDIA_SOURCE_TYPE_AUDIOTEST, &nId); PRINT_RESULT(WEBRTC_ERROR_NONE, nRet, "webrtc_add_media_source", WebRtcGetError(nRet)); @@ -1424,18 +1439,18 @@ int ITc_media_webrtc_create_answer_async_p(void) nRet = webrtc_set_ice_candidate_cb(g_hWebRtcHandle, webrtcIceCandidateCB, NULL); PRINT_RESULT(WEBRTC_ERROR_NONE, nRet, "webrtc_set_ice_candidate_cb", WebRtcGetError(nRet)); - nRet = webrtc_set_state_changed_cb(g_hWebRtcHandle, webrtcStateChangedCB, NULL); + nRet = webrtc_set_state_changed_cb(g_hWebRtcHandle, webrtcStateChangedCB, &cb_data); PRINT_RESULT(WEBRTC_ERROR_NONE, nRet, "webrtc_set_state_changed_cb", WebRtcGetError(nRet)); nRet = webrtc_start(g_hWebRtcHandle); PRINT_RESULT(WEBRTC_ERROR_NONE, nRet, "webrtc_start", WebRtcGetError(nRet)); - RUN_POLLING_LOOP(g_pMainLoop, g_bCallbackCalled); - if (!g_bCallbackCalled) { + RUN_POLLING_LOOP(cb_data.mainloop, cb_data.is_invoked); + if (!cb_data.is_invoked) { FPRINTF("[Line : %d][%s] Callback webrtcStateChangedCB not invoked\\n", __LINE__, API_NAMESPACE); return 1; } - g_bCallbackCalled = false; + cb_data.is_invoked = false; nRet = webrtc_create_offer(g_hWebRtcHandle, NULL, &pszOffer); PRINT_RESULT(WEBRTC_ERROR_NONE, nRet, "webrtc_create_offer", WebRtcGetError(nRet)); @@ -1446,40 +1461,41 @@ int ITc_media_webrtc_create_answer_async_p(void) nRet = webrtc_set_ice_candidate_cb(hLocalWebRtcHandle, webrtcIceCandidateCB, NULL); PRINT_RESULT(WEBRTC_ERROR_NONE, nRet, "webrtc_set_ice_candidate_cb", WebRtcGetError(nRet)); - nRet = webrtc_set_state_changed_cb(hLocalWebRtcHandle, webrtcStateChangedCB, NULL); + nRet = webrtc_set_state_changed_cb(hLocalWebRtcHandle, webrtcStateChangedCB, &cb_data); PRINT_RESULT(WEBRTC_ERROR_NONE, nRet, "webrtc_set_state_changed_cb", WebRtcGetError(nRet)); - nRet = webrtc_set_signaling_state_change_cb(hLocalWebRtcHandle, webrtcSignalingStateChangeCB, NULL); + nRet = webrtc_set_signaling_state_change_cb(hLocalWebRtcHandle, webrtcSignalingStateChangeCB, &cb_data); PRINT_RESULT(WEBRTC_ERROR_NONE, nRet, "webrtc_set_signaling_state_change_cb", WebRtcGetError(nRet)); nRet = webrtc_start(hLocalWebRtcHandle); PRINT_RESULT(WEBRTC_ERROR_NONE, nRet, "webrtc_start", WebRtcGetError(nRet)); - RUN_POLLING_LOOP(g_pMainLoop, g_bCallbackCalled); - if (!g_bCallbackCalled) { + RUN_POLLING_LOOP(cb_data.mainloop, cb_data.is_invoked); + if (!cb_data.is_invoked) { FPRINTF("[Line : %d][%s] Callback webrtcStateChangedCB not invoked\\n", __LINE__, API_NAMESPACE); return 1; } - g_bCallbackCalled = false; + cb_data.is_invoked = false; nRet = webrtc_set_remote_description(hLocalWebRtcHandle, pszOffer); PRINT_RESULT(WEBRTC_ERROR_NONE, nRet, "webrtc_set_remote_description", WebRtcGetError(nRet)); - RUN_POLLING_LOOP(g_pMainLoop, g_bCallbackCalled); - if (!g_bCallbackCalled) { + RUN_POLLING_LOOP(cb_data.mainloop, cb_data.is_invoked); + if (!cb_data.is_invoked) { FPRINTF("[Line : %d][%s] Callback webrtcSignalingStateChangeCB not invoked\\n", __LINE__, API_NAMESPACE); return 1; } - g_bCallbackCalled = false; + cb_data.is_invoked = false; - nRet = webrtc_create_answer_async(hLocalWebRtcHandle, NULL, webrtcSessionDescriptionCreatedCB, NULL); + nRet = webrtc_create_answer_async(hLocalWebRtcHandle, NULL, webrtcSessionDescriptionCreatedCB, &cb_data); PRINT_RESULT(WEBRTC_ERROR_NONE, nRet, "webrtc_create_answer_async", WebRtcGetError(nRet)); - RUN_POLLING_LOOP(g_pMainLoop, g_bCallbackCalled); - if (!g_bCallbackCalled) { + RUN_POLLING_LOOP(cb_data.mainloop, cb_data.is_invoked); + if (!cb_data.is_invoked) { FPRINTF("[Line : %d][%s] Callback webrtcSessionDescriptionCreatedCB not invoked\\n", __LINE__, API_NAMESPACE); return 1; } + cb_data.is_invoked = false; FREE_MEMORY(pszOffer); @@ -1516,7 +1532,7 @@ int ITc_media_webrtc_media_source_set_audio_loopback_p(void) START_TEST; unsigned int nId; sound_stream_info_h hStreamInfo; - g_bCallbackCalled = false; + callback_data cb_data = { .mainloop = NULL, .is_invoked = false }; createWindow(); int nRet = webrtc_add_media_source(g_hWebRtcHandle, WEBRTC_MEDIA_SOURCE_TYPE_AUDIOTEST, &nId); @@ -1525,7 +1541,7 @@ int ITc_media_webrtc_media_source_set_audio_loopback_p(void) nRet = webrtc_set_ice_candidate_cb(g_hWebRtcHandle, webrtcIceCandidateCB, NULL); PRINT_RESULT(WEBRTC_ERROR_NONE, nRet, "webrtc_set_ice_candidate_cb", WebRtcGetError(nRet)); - nRet = webrtc_set_state_changed_cb(g_hWebRtcHandle, webrtcStateChangedCB, NULL); + nRet = webrtc_set_state_changed_cb(g_hWebRtcHandle, webrtcStateChangedCB, &cb_data); PRINT_RESULT(WEBRTC_ERROR_NONE, nRet, "webrtc_set_state_changed_cb", WebRtcGetError(nRet)); nRet = sound_manager_create_stream_information(SOUND_STREAM_TYPE_MEDIA, NULL, NULL, &hStreamInfo); @@ -1537,8 +1553,8 @@ int ITc_media_webrtc_media_source_set_audio_loopback_p(void) nRet = webrtc_start(g_hWebRtcHandle); PRINT_RESULT(WEBRTC_ERROR_NONE, nRet, "webrtc_start", WebRtcGetError(nRet)); - RUN_POLLING_LOOP(g_pMainLoop, g_bCallbackCalled); - if (!g_bCallbackCalled) { + RUN_POLLING_LOOP(cb_data.mainloop, cb_data.is_invoked); + if (!cb_data.is_invoked) { FPRINTF("[Line : %d][%s] Callback webrtcStateChangedCB not invoked\\n", __LINE__, API_NAMESPACE); return 1; } @@ -1573,7 +1589,7 @@ int ITc_media_webrtc_media_source_set_video_loopback_p(void) { START_TEST; unsigned int nId; - g_bCallbackCalled = false; + callback_data cb_data = { .mainloop = NULL, .is_invoked = false }; createWindow(); int nRet = webrtc_add_media_source(g_hWebRtcHandle, WEBRTC_MEDIA_SOURCE_TYPE_VIDEOTEST, &nId); @@ -1582,7 +1598,7 @@ int ITc_media_webrtc_media_source_set_video_loopback_p(void) nRet = webrtc_set_ice_candidate_cb(g_hWebRtcHandle, webrtcIceCandidateCB, NULL); PRINT_RESULT(WEBRTC_ERROR_NONE, nRet, "webrtc_set_ice_candidate_cb", WebRtcGetError(nRet)); - nRet = webrtc_set_state_changed_cb(g_hWebRtcHandle, webrtcStateChangedCB, NULL); + nRet = webrtc_set_state_changed_cb(g_hWebRtcHandle, webrtcStateChangedCB, &cb_data); PRINT_RESULT(WEBRTC_ERROR_NONE, nRet, "webrtc_set_state_changed_cb", WebRtcGetError(nRet)); nRet = webrtc_media_source_set_video_loopback(g_hWebRtcHandle, nId, WEBRTC_DISPLAY_TYPE_OVERLAY, g_win, NULL); @@ -1591,8 +1607,8 @@ int ITc_media_webrtc_media_source_set_video_loopback_p(void) nRet = webrtc_start(g_hWebRtcHandle); PRINT_RESULT(WEBRTC_ERROR_NONE, nRet, "webrtc_start", WebRtcGetError(nRet)); - RUN_POLLING_LOOP(g_pMainLoop, g_bCallbackCalled); - if (!g_bCallbackCalled) { + RUN_POLLING_LOOP(cb_data.mainloop, cb_data.is_invoked); + if (!cb_data.is_invoked) { FPRINTF("[Line : %d][%s] Callback webrtcStateChangedCB not invoked\\n", __LINE__, API_NAMESPACE); return 1; } @@ -1624,8 +1640,8 @@ int ITc_media_webrtc_set_get_display_mode_p(void) { START_TEST; unsigned int nId,nTrackId; - g_bCallbackCalled = false; webrtc_display_mode_e eMode; + callback_data cb_data = { .mainloop = NULL, .is_invoked = false }; createWindow(); int nRet = webrtc_add_media_source(g_hWebRtcHandle, WEBRTC_MEDIA_SOURCE_TYPE_VIDEOTEST, &nId); @@ -1634,7 +1650,7 @@ int ITc_media_webrtc_set_get_display_mode_p(void) nRet = webrtc_set_ice_candidate_cb(g_hWebRtcHandle, webrtcIceCandidateCB, NULL); PRINT_RESULT(WEBRTC_ERROR_NONE, nRet, "webrtc_set_ice_candidate_cb", WebRtcGetError(nRet)); - nRet = webrtc_set_state_changed_cb(g_hWebRtcHandle, webrtcStateChangedCB, NULL); + nRet = webrtc_set_state_changed_cb(g_hWebRtcHandle, webrtcStateChangedCB, &cb_data); PRINT_RESULT(WEBRTC_ERROR_NONE, nRet, "webrtc_set_state_changed_cb", WebRtcGetError(nRet)); nRet = webrtc_media_source_set_video_loopback(g_hWebRtcHandle, nId, WEBRTC_DISPLAY_TYPE_OVERLAY, g_win, &nTrackId); @@ -1643,8 +1659,8 @@ int ITc_media_webrtc_set_get_display_mode_p(void) nRet = webrtc_start(g_hWebRtcHandle); PRINT_RESULT(WEBRTC_ERROR_NONE, nRet, "webrtc_start", WebRtcGetError(nRet)); - RUN_POLLING_LOOP(g_pMainLoop, g_bCallbackCalled); - if (!g_bCallbackCalled) { + RUN_POLLING_LOOP(cb_data.mainloop, cb_data.is_invoked); + if (!cb_data.is_invoked) { FPRINTF("[Line : %d][%s] Callback webrtcStateChangedCB not invoked\\n", __LINE__, API_NAMESPACE); return 1; } @@ -1682,8 +1698,8 @@ int ITc_media_webrtc_set_get_display_visible_p(void) { START_TEST; unsigned int nId,nTrackId; - g_bCallbackCalled = false; bool bGetVisible, bSetVisible = false; + callback_data cb_data = { .mainloop = NULL, .is_invoked = false }; int nRet = webrtc_add_media_source(g_hWebRtcHandle, WEBRTC_MEDIA_SOURCE_TYPE_CAMERA, &nId); if (nRet == WEBRTC_ERROR_NOT_SUPPORTED) { @@ -1695,7 +1711,7 @@ int ITc_media_webrtc_set_get_display_visible_p(void) nRet = webrtc_set_ice_candidate_cb(g_hWebRtcHandle, webrtcIceCandidateCB, NULL); PRINT_RESULT(WEBRTC_ERROR_NONE, nRet, "webrtc_set_ice_candidate_cb", WebRtcGetError(nRet)); - nRet = webrtc_set_state_changed_cb(g_hWebRtcHandle, webrtcStateChangedCB, NULL); + nRet = webrtc_set_state_changed_cb(g_hWebRtcHandle, webrtcStateChangedCB, &cb_data); PRINT_RESULT(WEBRTC_ERROR_NONE, nRet, "webrtc_set_state_changed_cb", WebRtcGetError(nRet)); createWindow(); @@ -1706,8 +1722,8 @@ int ITc_media_webrtc_set_get_display_visible_p(void) nRet = webrtc_start(g_hWebRtcHandle); PRINT_RESULT(WEBRTC_ERROR_NONE, nRet, "webrtc_start", WebRtcGetError(nRet)); - RUN_POLLING_LOOP(g_pMainLoop, g_bCallbackCalled); - if (!g_bCallbackCalled) { + RUN_POLLING_LOOP(cb_data.mainloop, cb_data.is_invoked); + if (!cb_data.is_invoked) { FPRINTF("[Line : %d][%s] Callback webrtcStateChangedCB not invoked\\n", __LINE__, API_NAMESPACE); return 1; }