davidliu
Committed by GitHub

Initialize RTC library only once (#508)

* Initialize RTC library only once

* spotless and changeset
---
"client-sdk-android": patch
---
Initialize WebRTC library only once
... ...
... ... @@ -64,6 +64,11 @@ typealias CapabilitiesGetter = @JvmSuppressWildcards (MediaStreamTrack.MediaType
internal object RTCModule {
/**
* To only be written to on the WebRTC thread.
*/
private var hasInitializedWebrtc = false
/**
* Certain classes require libwebrtc to be initialized prior to use.
*
* If your provision depends on libwebrtc initialization, just add it
... ... @@ -86,6 +91,10 @@ internal object RTCModule {
@Singleton
@Named(InjectionNames.LIB_WEBRTC_INITIALIZATION)
fun libWebrtcInitialization(appContext: Context): LibWebrtcInitialization {
if (!hasInitializedWebrtc) {
executeBlockingOnRTCThread {
if (!hasInitializedWebrtc) {
hasInitializedWebrtc = true
PeerConnectionFactory.initialize(
PeerConnectionFactory.InitializationOptions
.builder(appContext)
... ... @@ -112,6 +121,9 @@ internal object RTCModule {
)
.createInitializationOptions(),
)
}
}
}
return LibWebrtcInitialization
}
... ...