|
|
@ -2,10 +2,12 @@ |
|
|
|
#include <QQuickItem> |
|
|
|
#include <QQuickItem> |
|
|
|
#include <algorithm> |
|
|
|
#include <algorithm> |
|
|
|
#include <cctype> |
|
|
|
#include <cctype> |
|
|
|
|
|
|
|
#include <chrono> |
|
|
|
#include <cstdlib> |
|
|
|
#include <cstdlib> |
|
|
|
#include <cstring> |
|
|
|
#include <cstring> |
|
|
|
#include <optional> |
|
|
|
#include <optional> |
|
|
|
#include <string_view> |
|
|
|
#include <string_view> |
|
|
|
|
|
|
|
#include <thread> |
|
|
|
#include <utility> |
|
|
|
#include <utility> |
|
|
|
|
|
|
|
|
|
|
|
#include "ChatPage.h" |
|
|
|
#include "ChatPage.h" |
|
|
@ -855,6 +857,9 @@ WebRTCSession::acceptOffer(const std::string &sdp) |
|
|
|
return false; |
|
|
|
return false; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// avoid a race that sometimes leaves the generated answer without media tracks (a=ssrc lines)
|
|
|
|
|
|
|
|
std::this_thread::sleep_for(std::chrono::milliseconds(200)); |
|
|
|
|
|
|
|
|
|
|
|
// set-remote-description first, then create-answer
|
|
|
|
// set-remote-description first, then create-answer
|
|
|
|
GstPromise *promise = gst_promise_new_with_change_func(createAnswer, webrtc_, nullptr); |
|
|
|
GstPromise *promise = gst_promise_new_with_change_func(createAnswer, webrtc_, nullptr); |
|
|
|
g_signal_emit_by_name(webrtc_, "set-remote-description", offer, promise); |
|
|
|
g_signal_emit_by_name(webrtc_, "set-remote-description", offer, promise); |
|
|
|