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
2022-03-24 18:25:32 +0900
Browse Files
Options
Browse Files
Download
Email Patches
Plain Diff
Committed by
GitHub
2022-03-24 18:25:32 +0900
Commit
7b38cd4abbd87bb02f853fee51ab2a89a3ef3307
7b38cd4a
1 parent
0ffff8bb
Fix simulcast factory not sending back EncoderInfo (#67)
隐藏空白字符变更
内嵌
并排对比
正在显示
1 个修改的文件
包含
31 行增加
和
3 行删除
livekit-android-sdk/src/main/java/io/livekit/android/webrtc/SimulcastVideoEncoderFactoryWrapper.kt
livekit-android-sdk/src/main/java/io/livekit/android/webrtc/SimulcastVideoEncoderFactoryWrapper.kt
查看文件 @
7b38cd4
...
...
@@ -2,7 +2,9 @@ package io.livekit.android.webrtc
import io.livekit.android.util.LKLog
import org.webrtc.*
import java.util.concurrent.*
import java.util.concurrent.Callable
import java.util.concurrent.ExecutorService
import java.util.concurrent.Executors
/*
Copyright 2017, Lyo Kato <lyo.kato at gmail.com> (Original Author)
...
...
@@ -49,7 +51,7 @@ internal class SimulcastVideoEncoderFactoryWrapper(
* This results in HardwareVideoEncoderFactory being both the primary and fallback,
* but there aren't any specific problems in doing so.
*/
private class Fallback(private val hardwareVideoEncoderFactory: VideoEncoderFactory) :
private class Fallback
Factory
(private val hardwareVideoEncoderFactory: VideoEncoderFactory) :
VideoEncoderFactory {
private val softwareVideoEncoderFactory: VideoEncoderFactory = SoftwareVideoEncoderFactory()
...
...
@@ -93,6 +95,7 @@ internal class SimulcastVideoEncoderFactoryWrapper(
val future = executor.submit(Callable {
LKLog.i {
"""initEncode() thread=${Thread.currentThread().name} [${Thread.currentThread().id}]
| encoder=${encoder.implementationName}
| streamSettings:
| numberOfCores=${settings.numberOfCores}
| width=${settings.width}
...
...
@@ -165,6 +168,31 @@ internal class SimulcastVideoEncoderFactoryWrapper(
val future = executor.submit(Callable { return@Callable encoder.implementationName })
return future.get()
}
override fun createNativeVideoEncoder(): Long {
val future = executor.submit(Callable { return@Callable encoder.createNativeVideoEncoder() })
return future.get()
}
override fun isHardwareEncoder(): Boolean {
val future = executor.submit(Callable { return@Callable encoder.isHardwareEncoder })
return future.get()
}
override fun setRates(rcParameters: VideoEncoder.RateControlParameters?): VideoCodecStatus {
val future = executor.submit(Callable { return@Callable encoder.setRates(rcParameters) })
return future.get()
}
override fun getResolutionBitrateLimits(): Array<VideoEncoder.ResolutionBitrateLimits> {
val future = executor.submit(Callable { return@Callable encoder.resolutionBitrateLimits })
return future.get()
}
override fun getEncoderInfo(): VideoEncoder.EncoderInfo {
val future = executor.submit(Callable { return@Callable encoder.encoderInfo })
return future.get()
}
}
private class StreamEncoderWrapperFactory(private val factory: VideoEncoderFactory) :
...
...
@@ -195,7 +223,7 @@ internal class SimulcastVideoEncoderFactoryWrapper(
sharedContext, enableIntelVp8Encoder, enableH264HighProfile
)
primary = StreamEncoderWrapperFactory(hardwareVideoEncoderFactory)
fallback = StreamEncoderWrapperFactory(Fallback(primary))
fallback = StreamEncoderWrapperFactory(Fallback
Factory
(primary))
native = SimulcastVideoEncoderFactory(primary, fallback)
}
...
...
请
注册
或
登录
后发表评论