Toggle navigation
Toggle navigation
此项目
正在载入...
Sign in
xuning
/
livekitAndroidXuningTest
转到一个项目
Toggle navigation
项目
群组
代码片段
帮助
Toggle navigation pinning
Project
Activity
Repository
Pipelines
Graphs
Issues
0
Merge Requests
0
Wiki
Network
Create a new issue
Builds
Commits
Authored by
davidliu
2023-11-07 12:31:42 +0900
Browse Files
Options
Browse Files
Download
Email Patches
Plain Diff
Committed by
GitHub
2023-11-07 12:31:42 +0900
Commit
dbbf0e73c6ae6841feeeacefbc9512d584ff005d
dbbf0e73
1 parent
1b6d7e6a
Add EglBase to LiveKitOverrides (#310)
隐藏空白字符变更
内嵌
并排对比
正在显示
4 个修改的文件
包含
32 行增加
和
4 行删除
livekit-android-sdk/src/main/java/io/livekit/android/LiveKitOverrides.kt
livekit-android-sdk/src/main/java/io/livekit/android/dagger/InjectionNames.kt
livekit-android-sdk/src/main/java/io/livekit/android/dagger/OverridesModule.kt
livekit-android-sdk/src/main/java/io/livekit/android/dagger/RTCModule.kt
livekit-android-sdk/src/main/java/io/livekit/android/LiveKitOverrides.kt
查看文件 @
dbbf0e7
...
...
@@ -22,7 +22,9 @@ import io.livekit.android.audio.AudioFocusHandler
import io.livekit.android.audio.AudioHandler
import io.livekit.android.audio.AudioSwitchHandler
import io.livekit.android.audio.NoAudioHandler
import io.livekit.android.room.Room
import okhttp3.OkHttpClient
import org.webrtc.EglBase
import org.webrtc.VideoDecoderFactory
import org.webrtc.VideoEncoderFactory
import org.webrtc.audio.AudioDeviceModule
...
...
@@ -47,7 +49,20 @@ data class LiveKitOverrides(
*/
val videoDecoderFactory: VideoDecoderFactory? = null,
/**
* Override various audio options used by the library.
*/
val audioOptions: AudioOptions? = null,
/**
* Override the [EglBase] used by the library.
*
* If a non-null value is passed, the library does not
* take ownership of the object and will not release it upon [Room.release].
* It is the responsibility of the owner to call [EglBase.release] when finished
* with it to prevent memory leaks.
*/
val eglBase: EglBase? = null,
)
class AudioOptions(
...
...
@@ -72,6 +87,11 @@ class AudioOptions(
/**
* Override the default [AudioDeviceModule].
*
* If a non-null value is passed, the library does not
* take ownership of the object and will not release it upon [Room.release].
* It is the responsibility of the owner to call [AudioDeviceModule.release] when finished
* with it to prevent memory leaks.
*/
val audioDeviceModule: AudioDeviceModule? = null,
...
...
livekit-android-sdk/src/main/java/io/livekit/android/dagger/InjectionNames.kt
查看文件 @
dbbf0e7
...
...
@@ -55,4 +55,5 @@ object InjectionNames {
internal const val OVERRIDE_VIDEO_DECODER_FACTORY = "override_video_decoder_factory"
internal const val OVERRIDE_AUDIO_HANDLER = "override_audio_handler"
internal const val OVERRIDE_AUDIO_OUTPUT_TYPE = "override_audio_output_type"
internal const val OVERRIDE_EGL_BASE = "override_egl_base"
}
...
...
livekit-android-sdk/src/main/java/io/livekit/android/dagger/OverridesModule.kt
查看文件 @
dbbf0e7
...
...
@@ -63,4 +63,9 @@ class OverridesModule(private val overrides: LiveKitOverrides) {
@Provides
@Named(InjectionNames.OVERRIDE_AUDIO_OUTPUT_TYPE)
fun audioOutputType() = overrides.audioOptions?.audioOutputType
@Provides
@Named(InjectionNames.OVERRIDE_EGL_BASE)
@Nullable
fun eglBase() = overrides.eglBase
}
...
...
livekit-android-sdk/src/main/java/io/livekit/android/dagger/RTCModule.kt
查看文件 @
dbbf0e7
...
...
@@ -175,12 +175,14 @@ object RTCModule {
@Provides
@Singleton
fun eglBase(
@Named(InjectionNames.OVERRIDE_EGL_BASE)
@Nullable
eglBaseOverride: EglBase?,
memoryManager: CloseableManager,
): EglBase {
val eglBase = EglBase.create()
memoryManager.registerResource(eglBase) { eglBase.release() }
return eglBase
return eglBaseOverride ?: EglBase
.create()
.apply { memoryManager.registerClosable { release() } }
}
@Provides
...
...
请
注册
或
登录
后发表评论