mirror of
https://github.com/jellyfin/jellyfin-androidtv.git
synced 2026-10-26 16:45:23 +00:00
Fix Live TV direct play stability (#5229)
(cherry picked from commit ac89159455)
This commit is contained in:
1 parent
f56faa2ad0
commit
9a3022a590
3 files changed
+11
-2
No files matched your search
@@ -27,6 +27,7 @@ import org.jellyfin.playback.media3.session.media3SessionPlugin
|
||||
import org.jellyfin.sdk.api.client.HttpClientOptions
|
||||
import org.jellyfin.sdk.api.okhttp.OkHttpFactory
|
||||
import org.koin.android.ext.koin.androidContext
|
||||
import kotlin.time.Duration
|
||||
import org.koin.core.scope.Scope
|
||||
import org.koin.dsl.module
|
||||
import kotlin.time.Duration.Companion.milliseconds
|
||||
@@ -39,10 +40,12 @@ val playbackModule = module {
|
||||
|
||||
single { PlaybackLauncher(get(), get(), get(), get()) }
|
||||
|
||||
// OkHttp data source using OkHttpFactory from SDK
|
||||
single<HttpDataSource.Factory> {
|
||||
val okHttpFactory = get<OkHttpFactory>()
|
||||
val httpClientOptions = get<HttpClientOptions>()
|
||||
val httpClientOptions = get<HttpClientOptions>().copy(
|
||||
// Disable request timeout for media playback as this causes issues with Live TV
|
||||
requestTimeout = Duration.ZERO
|
||||
)
|
||||
|
||||
OkHttpDataSource.Factory(okHttpFactory.createClient(httpClientOptions))
|
||||
}
|
||||
|
||||
@@ -40,9 +40,11 @@ private fun createStreamInfo(
|
||||
source.isRemote && source.path != null -> source.path
|
||||
else -> api.videosApi.getVideoStreamUrl(
|
||||
itemId = itemId,
|
||||
container = container,
|
||||
mediaSourceId = source.id,
|
||||
static = true,
|
||||
tag = source.eTag,
|
||||
liveStreamId = source.liveStreamId,
|
||||
)
|
||||
}
|
||||
} else if (options.enableDirectStream && source.supportsDirectStream) {
|
||||
|
||||
@@ -37,9 +37,11 @@ class JellyfinMediaStreamResolver(
|
||||
conversionMethod = MediaConversionMethod.None,
|
||||
url = api.videosApi.getVideoStreamUrl(
|
||||
itemId = baseItem.id,
|
||||
container = mediaInfo.mediaSource.container,
|
||||
mediaSourceId = mediaInfo.mediaSource.id,
|
||||
static = true,
|
||||
tag = mediaInfo.mediaSource.eTag,
|
||||
liveStreamId = mediaInfo.mediaSource.liveStreamId,
|
||||
)
|
||||
)
|
||||
|
||||
@@ -49,9 +51,11 @@ class JellyfinMediaStreamResolver(
|
||||
conversionMethod = MediaConversionMethod.None,
|
||||
url = api.audioApi.getAudioStreamUrl(
|
||||
itemId = baseItem.id,
|
||||
container = mediaInfo.mediaSource.container,
|
||||
mediaSourceId = mediaInfo.mediaSource.id,
|
||||
static = true,
|
||||
tag = mediaInfo.mediaSource.eTag,
|
||||
liveStreamId = mediaInfo.mediaSource.liveStreamId,
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
Reference in new issue
Block a user