Small player release fix

This commit is contained in:
self-similarity 2023-09-13 18:56:27 +02:00
parent 09e04033e7
commit 30511906a8

View file

@ -46,6 +46,7 @@ import com.lagradost.cloudstream3.AcraApplication.Companion.getKey
import com.lagradost.cloudstream3.AcraApplication.Companion.setKey
import com.lagradost.cloudstream3.USER_AGENT
import com.lagradost.cloudstream3.app
import com.lagradost.cloudstream3.mvvm.debugAssert
import com.lagradost.cloudstream3.mvvm.logError
import com.lagradost.cloudstream3.mvvm.normalSafeApiCall
import com.lagradost.cloudstream3.ui.subtitles.SaveCaptionStyle
@ -78,6 +79,12 @@ const val toleranceAfterUs = 300_000L
class CS3IPlayer : IPlayer {
private var isPlaying = false
private var exoPlayer: ExoPlayer? = null
set(value) {
// If the old value is not null then the player has not been properly released.
debugAssert({ field != null && value != null }, { "Previous player instance should be released!" })
field = value
}
var cacheSize = 0L
var simpleCacheSize = 0L
var videoBufferMs = 0L
@ -710,13 +717,13 @@ class CS3IPlayer : IPlayer {
metadataRendererOutput
).map {
if (it is TextRenderer) {
currentTextRenderer = CustomTextRenderer(
val currentTextRenderer = CustomTextRenderer(
subtitleOffset,
textRendererOutput,
eventHandler.looper,
CustomSubtitleDecoderFactory()
)
currentTextRenderer!!
).also { this.currentTextRenderer = it }
currentTextRenderer
} else it
}.toTypedArray()
}
@ -1259,7 +1266,7 @@ class CS3IPlayer : IPlayer {
HttpsURLConnection.setDefaultSSLSocketFactory(sslContext.socketFactory)
}
val mime = when(link.type) {
val mime = when (link.type) {
ExtractorLinkType.M3U8 -> MimeTypes.APPLICATION_M3U8
ExtractorLinkType.DASH -> MimeTypes.APPLICATION_MPD
ExtractorLinkType.VIDEO -> MimeTypes.VIDEO_MP4
@ -1307,7 +1314,7 @@ class CS3IPlayer : IPlayer {
override fun reloadPlayer(context: Context) {
Log.i(TAG, "reloadPlayer")
exoPlayer?.release()
releasePlayer(false)
currentLink?.let {
loadOnlinePlayer(context, it)
} ?: currentDownloadedFile?.let {