mirror of
https://github.com/signalapp/Signal-Android.git
synced 2026-08-14 01:03:28 +01:00
Allow media3 to fall back to a secondary video decoder when the preferred one fails to initialize.
This commit is contained in:
@@ -11,6 +11,7 @@ import androidx.annotation.OptIn
|
||||
import androidx.media3.common.MimeTypes
|
||||
import androidx.media3.common.util.UnstableApi
|
||||
import androidx.media3.datasource.DataSource
|
||||
import androidx.media3.exoplayer.DefaultRenderersFactory
|
||||
import androidx.media3.exoplayer.ExoPlayer
|
||||
import androidx.media3.exoplayer.mediacodec.MediaCodecUtil
|
||||
import androidx.media3.exoplayer.source.DefaultMediaSourceFactory
|
||||
@@ -31,6 +32,7 @@ class SimpleExoPlayerPool(context: Context) : ExoPlayerPool<ExoPlayer>(MAXIMUM_R
|
||||
private val okHttpClient = AppDependencies.okHttpClient.newBuilder().proxySelector(ContentProxySelector()).build()
|
||||
private val dataSourceFactory: DataSource.Factory = SignalDataSource.Factory(AppDependencies.application, okHttpClient, DataSourceTransferListener)
|
||||
private val mediaSourceFactory: MediaSource.Factory = DefaultMediaSourceFactory(dataSourceFactory)
|
||||
private val renderersFactory = DefaultRenderersFactory(this.context).setEnableDecoderFallback(true)
|
||||
|
||||
init {
|
||||
AppForegroundObserver.addListener(this)
|
||||
@@ -65,7 +67,7 @@ class SimpleExoPlayerPool(context: Context) : ExoPlayerPool<ExoPlayer>(MAXIMUM_R
|
||||
|
||||
@MainThread
|
||||
override fun createPlayer(): ExoPlayer {
|
||||
return ExoPlayer.Builder(context)
|
||||
return ExoPlayer.Builder(context, renderersFactory)
|
||||
.setMediaSourceFactory(mediaSourceFactory)
|
||||
.setSeekBackIncrementMs(SEEK_INTERVAL.inWholeMilliseconds)
|
||||
.setSeekForwardIncrementMs(SEEK_INTERVAL.inWholeMilliseconds)
|
||||
|
||||
Reference in New Issue
Block a user