Skip to content

Commit

Permalink
Merge pull request #263 from trilene/voip
Browse files Browse the repository at this point in the history
Under GStreamer >= 1.17 gather all candidates before sending offer/answer
  • Loading branch information
deepbluev7 authored Aug 23, 2020
2 parents 706ba84 + 473293b commit 898297a
Showing 1 changed file with 5 additions and 3 deletions.
8 changes: 5 additions & 3 deletions src/WebRTCSession.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -223,18 +223,19 @@ addLocalICECandidate(GstElement *webrtc G_GNUC_UNUSED,
{
nhlog::ui()->debug("WebRTC: local candidate: (m-line:{}):{}", mlineIndex, candidate);

#if GST_CHECK_VERSION(1, 17, 0)
localcandidates_.push_back({"audio", (uint16_t)mlineIndex, candidate});
return;
#else
if (WebRTCSession::instance().state() >= WebRTCSession::State::OFFERSENT) {
emit WebRTCSession::instance().newICECandidate(
{"audio", (uint16_t)mlineIndex, candidate});
return;
}

localcandidates_.push_back({"audio", (uint16_t)mlineIndex, candidate});

// GStreamer v1.16: webrtcbin's notify::ice-gathering-state triggers
// GST_WEBRTC_ICE_GATHERING_STATE_COMPLETE too early. Fixed in v1.17.
// Use a 100ms timeout in the meantime
#if !GST_CHECK_VERSION(1, 17, 0)
static guint timerid = 0;
if (timerid)
g_source_remove(timerid);
Expand Down Expand Up @@ -447,6 +448,7 @@ WebRTCSession::startPipeline(int opusPayloadType)
g_object_set(webrtc_, "stun-server", stunServer_.c_str(), nullptr);
}


for (const auto &uri : turnServers_) {
nhlog::ui()->info("WebRTC: setting TURN server: {}", uri);
gboolean udata;
Expand Down

0 comments on commit 898297a

Please sign in to comment.