mirror of
https://github.com/mollyim/webrtc.git
synced 2025-05-12 21:30:45 +01:00
signal: update ringrtc ffi to accept list of IceServers
This commit is contained in:
parent
5b1a8a189a
commit
cb5b545862
2 changed files with 18 additions and 10 deletions
|
@ -67,6 +67,11 @@ typedef struct {
|
|||
size_t urls_size;
|
||||
} RffiIceServer;
|
||||
|
||||
typedef struct {
|
||||
const RffiIceServer* servers;
|
||||
size_t servers_size;
|
||||
} RffiIceServers;
|
||||
|
||||
enum class RffiPeerConnectionKind: uint8_t {
|
||||
kDirect,
|
||||
kRelayed,
|
||||
|
@ -111,7 +116,7 @@ RUSTEXPORT webrtc::PeerConnectionInterface* Rust_createPeerConnection(
|
|||
int audio_jitter_buffer_max_packets,
|
||||
int audio_jitter_buffer_max_target_delay_ms,
|
||||
int audio_rtcp_report_interval_ms,
|
||||
RffiIceServer ice_server,
|
||||
RffiIceServers ice_servers,
|
||||
webrtc::AudioTrackInterface* outgoing_audio_track_borrowed_rc,
|
||||
webrtc::VideoTrackInterface* outgoing_video_track_borrowed_rc);
|
||||
|
||||
|
|
|
@ -364,7 +364,7 @@ RUSTEXPORT PeerConnectionInterface* Rust_createPeerConnection(
|
|||
int audio_jitter_buffer_max_packets,
|
||||
int audio_jitter_buffer_max_target_delay_ms,
|
||||
int audio_rtcp_report_interval_ms,
|
||||
RffiIceServer ice_server,
|
||||
RffiIceServers ice_servers,
|
||||
webrtc::AudioTrackInterface* outgoing_audio_track_borrowed_rc,
|
||||
webrtc::VideoTrackInterface* outgoing_video_track_borrowed_rc) {
|
||||
auto factory = factory_owner_borrowed_rc->peer_connection_factory();
|
||||
|
@ -382,15 +382,18 @@ RUSTEXPORT PeerConnectionInterface* Rust_createPeerConnection(
|
|||
config.set_audio_jitter_buffer_max_target_delay_ms(audio_jitter_buffer_max_target_delay_ms);
|
||||
config.set_audio_rtcp_report_interval_ms(audio_rtcp_report_interval_ms);
|
||||
config.sdp_semantics = SdpSemantics::kUnifiedPlan;
|
||||
if (ice_server.urls_size > 0) {
|
||||
webrtc::PeerConnectionInterface::IceServer rtc_ice_server;
|
||||
rtc_ice_server.username = std::string(ice_server.username_borrowed);
|
||||
rtc_ice_server.password = std::string(ice_server.password_borrowed);
|
||||
rtc_ice_server.hostname = std::string(ice_server.hostname_borrowed);
|
||||
for (size_t i = 0; i < ice_server.urls_size; i++) {
|
||||
rtc_ice_server.urls.push_back(std::string(ice_server.urls_borrowed[i]));
|
||||
for (size_t i = 0; i < ice_servers.servers_size; i++) {
|
||||
RffiIceServer ice_server = ice_servers.servers[i];
|
||||
if (ice_server.urls_size > 0) {
|
||||
webrtc::PeerConnectionInterface::IceServer rtc_ice_server;
|
||||
rtc_ice_server.username = std::string(ice_server.username_borrowed);
|
||||
rtc_ice_server.password = std::string(ice_server.password_borrowed);
|
||||
rtc_ice_server.hostname = std::string(ice_server.hostname_borrowed);
|
||||
for (size_t i = 0; i < ice_server.urls_size; i++) {
|
||||
rtc_ice_server.urls.push_back(std::string(ice_server.urls_borrowed[i]));
|
||||
}
|
||||
config.servers.push_back(rtc_ice_server);
|
||||
}
|
||||
config.servers.push_back(rtc_ice_server);
|
||||
}
|
||||
|
||||
config.crypto_options = webrtc::CryptoOptions{};
|
||||
|
|
Loading…
Reference in a new issue