webrtcbin test: Wait for set-local-desc & set-remote-desc to continue

To avoid racing betwen the SDPs being set and the next step of the
test, let's wait for setting the SDP both locally and remotely to succeed.
of the test

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2104>
This commit is contained in:
Olivier Crête 2021-04-12 15:35:41 -04:00
parent 12ab469ad3
commit 474c4bf08f

View file

@ -159,12 +159,13 @@ _on_answer_set (GstPromise * promise, gpointer user_data)
GstElement *answerer = TEST_GET_ANSWERER (t); GstElement *answerer = TEST_GET_ANSWERER (t);
g_mutex_lock (&t->lock); g_mutex_lock (&t->lock);
if (++t->answer_set_count >= 2 && t->on_answer_set) { if (++t->answer_set_count >= 2) {
t->on_answer_set (t, answerer, promise, t->answer_set_data); if (t->on_answer_set)
t->on_answer_set (t, answerer, promise, t->answer_set_data);
if (t->state == STATE_ANSWER_CREATED)
t->state = STATE_ANSWER_SET;
g_cond_broadcast (&t->cond);
} }
if (t->state == STATE_ANSWER_CREATED)
t->state = STATE_ANSWER_SET;
g_cond_broadcast (&t->cond);
gst_promise_unref (promise); gst_promise_unref (promise);
g_mutex_unlock (&t->lock); g_mutex_unlock (&t->lock);
} }
@ -232,12 +233,13 @@ _on_offer_set (GstPromise * promise, gpointer user_data)
GstElement *offeror = TEST_GET_OFFEROR (t); GstElement *offeror = TEST_GET_OFFEROR (t);
g_mutex_lock (&t->lock); g_mutex_lock (&t->lock);
if (++t->offer_set_count >= 2 && t->on_offer_set) { if (++t->offer_set_count >= 2) {
t->on_offer_set (t, offeror, promise, t->offer_set_data); if (t->on_offer_set)
t->on_offer_set (t, offeror, promise, t->offer_set_data);
if (t->state == STATE_OFFER_CREATED)
t->state = STATE_OFFER_SET;
g_cond_broadcast (&t->cond);
} }
if (t->state == STATE_OFFER_CREATED)
t->state = STATE_OFFER_SET;
g_cond_broadcast (&t->cond);
gst_promise_unref (promise); gst_promise_unref (promise);
g_mutex_unlock (&t->lock); g_mutex_unlock (&t->lock);
} }