0.2.75
This commit is contained in:
+21
-10
@@ -8,6 +8,10 @@ plugins {
|
||||
id("androidx.baselineprofile")
|
||||
}
|
||||
|
||||
// One Media3 version for every artifact in the build — see the dependency block for why
|
||||
// the Jellyfin FFmpeg extension pins which line that can be.
|
||||
val media3Version = "1.9.4"
|
||||
|
||||
// Set in gradle.properties (or ~/.gradle/gradle.properties, or -Pmemby.serverUrl=...).
|
||||
// Blank means "no hardwired server": the setup screen asks the user for an address.
|
||||
val embyServerUrl: String = (project.findProperty("memby.serverUrl") as String?).orEmpty().trim()
|
||||
@@ -46,7 +50,7 @@ val projectNoticeText =
|
||||
|
||||
// A release workflow can derive the app version from its Git tag without editing the
|
||||
// source tree. Local builds keep using the checked-in default.
|
||||
val defaultVersionName = "0.2.74"
|
||||
val defaultVersionName = "0.2.75"
|
||||
val membyVersionName: String =
|
||||
(project.findProperty("memby.versionName") as String?)
|
||||
?.trim()
|
||||
@@ -235,7 +239,7 @@ dependencies {
|
||||
implementation("androidx.compose.material:material-icons-extended")
|
||||
|
||||
// Compose for TV
|
||||
implementation("androidx.tv:tv-material:1.0.0")
|
||||
implementation("androidx.tv:tv-material:1.1.0")
|
||||
|
||||
// Image loading
|
||||
implementation("io.coil-kt:coil-compose:2.7.0")
|
||||
@@ -248,20 +252,27 @@ dependencies {
|
||||
implementation("com.jakewharton.retrofit:retrofit2-kotlinx-serialization-converter:1.0.0")
|
||||
|
||||
// DataStore (persisted settings)
|
||||
implementation("androidx.datastore:datastore-preferences:1.1.1")
|
||||
implementation("androidx.datastore:datastore-preferences:1.2.1")
|
||||
|
||||
// Media3 / ExoPlayer for in-app playback
|
||||
implementation("androidx.media3:media3-exoplayer:1.5.1")
|
||||
implementation("androidx.media3:media3-exoplayer-hls:1.5.1")
|
||||
implementation("androidx.media3:media3-ui:1.5.1")
|
||||
// One version for the whole Media3 line, including the Jellyfin FFmpeg extension below.
|
||||
// That extension is compiled against media3-exoplayer and reached reflectively through
|
||||
// EXTENSION_RENDERER_MODE_ON, so a core built from a different minor line fails at
|
||||
// renderer construction rather than at compile time — and PlayerEngine's LinkageError
|
||||
// fallback would swallow it, silently withdrawing surround software decode with nothing
|
||||
// in the log to say why. Jellyfin publishes up to the 1.9 line, so that is the line this
|
||||
// app is on; moving the core past it means finding a matching extension first.
|
||||
implementation("androidx.media3:media3-exoplayer:$media3Version")
|
||||
implementation("androidx.media3:media3-exoplayer-hls:$media3Version")
|
||||
implementation("androidx.media3:media3-ui:$media3Version")
|
||||
// Lets the player pull its bytes through the app's one OkHttp stack instead of
|
||||
// media3's own HttpURLConnection client — see ui/player/PlayerEngine.kt.
|
||||
implementation("androidx.media3:media3-datasource-okhttp:1.5.1")
|
||||
implementation("androidx.media3:media3-datasource-okhttp:$media3Version")
|
||||
|
||||
// Moonfin's Android TV backend keeps a software audio renderer behind Media3 so a
|
||||
// surround track that is not bitstreamed is decoded to PCM instead of making the
|
||||
// server re-encode the video beside it. This build targets Media3 1.5.x; Jellyfin's
|
||||
// 1.5.0 extension is the matching published binary for that line.
|
||||
// server re-encode the video beside it. This build targets Media3 1.9.x; Jellyfin's
|
||||
// 1.9.0 extension is the matching published binary for that line.
|
||||
//
|
||||
// This is the ONLY native dependency the app carries, and it is 1.5MB per ABI because
|
||||
// it links just the audio decoders it needs. It replaced a libmpv software-decoding
|
||||
@@ -270,7 +281,7 @@ dependencies {
|
||||
// the release APK from 3.1MB to 168MB and made every sideload a several-minute
|
||||
// affair. A last-resort video path is not worth fifty times the app. If one is wanted
|
||||
// again, it belongs behind a separately downloaded split, not in the base APK.
|
||||
implementation("org.jellyfin.media3:media3-ffmpeg-decoder:1.5.0+1")
|
||||
implementation("org.jellyfin.media3:media3-ffmpeg-decoder:1.9.0+1")
|
||||
|
||||
debugImplementation("androidx.compose.ui:ui-tooling")
|
||||
|
||||
|
||||
Reference in New Issue
Block a user