0.95.6: surround sound undecoded by default again (the box's DTS decoder is silent)
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -9,8 +9,8 @@ android {
|
||||
applicationId = "tv.orbit.classic"
|
||||
minSdk = 26
|
||||
targetSdk = 36
|
||||
versionCode = 124
|
||||
versionName = "0.95.5-plain-sound"
|
||||
versionCode = 125
|
||||
versionName = "0.95.6-sound-passthrough"
|
||||
}
|
||||
buildFeatures { compose = true }
|
||||
compileOptions { sourceCompatibility = JavaVersion.VERSION_17; targetCompatibility = JavaVersion.VERSION_17 }
|
||||
|
||||
@@ -66,7 +66,7 @@ internal class HttpsEmbyTransport(internal val deviceId: String = UUID.randomUUI
|
||||
connection.connectTimeout = 10_000
|
||||
connection.readTimeout = request.readTimeoutMs ?: if (request.path == "/Sessions/Logout") 5_000 else 15_000
|
||||
connection.setRequestProperty("Accept", "application/json")
|
||||
connection.setRequestProperty("X-Emby-Authorization", "Emby Client=\"Orbit TV\", Device=\"Orbit TV\", DeviceId=\"$deviceId\", Version=\"0.95.5\"")
|
||||
connection.setRequestProperty("X-Emby-Authorization", "Emby Client=\"Orbit TV\", Device=\"Orbit TV\", DeviceId=\"$deviceId\", Version=\"0.95.6\"")
|
||||
request.token?.let { connection.setRequestProperty("X-Emby-Token", it) }
|
||||
if (request.method == "POST") {
|
||||
val bytes = request.body.orEmpty().toByteArray(Charsets.UTF_8)
|
||||
|
||||
@@ -33,7 +33,7 @@ internal class SecureMediaDataSource(private val session: EmbySampleSession) : B
|
||||
next.instanceFollowRedirects = false
|
||||
next.connectTimeout = 10_000
|
||||
next.readTimeout = 20_000
|
||||
next.setRequestProperty("User-Agent", "OrbitTV/0.95.5")
|
||||
next.setRequestProperty("User-Agent", "OrbitTV/0.95.6")
|
||||
next.setRequestProperty("Accept-Encoding", "identity")
|
||||
session.mediaHeaders(address).forEach { (key, value) -> next.setRequestProperty(key, value) }
|
||||
if (dataSpec.position != 0L || dataSpec.length != C.LENGTH_UNSET.toLong()) {
|
||||
|
||||
@@ -59,10 +59,11 @@ internal class OrbitSettings(context: Context) {
|
||||
var driveInIntro: Boolean
|
||||
get() = saved.getBoolean("drive_in_intro", true)
|
||||
set(value) { saved.edit().putBoolean("drive_in_intro", value).apply() }
|
||||
/** Off: Orbit decodes Dolby and DTS on the box and sends plain sound, which any TV plays. On: sends them undecoded, for an amplifier. */
|
||||
/** On (the default): Dolby and DTS go out undecoded, as before 0.95.4. Off: decoded on the box, which plays nothing for DTS on
|
||||
* this Xiaomi box (its decoder runs but is silent, checked 3 November 2026), so off is only for a box whose decoders work. */
|
||||
var surroundToAmplifier: Boolean
|
||||
get() = saved.getBoolean("surround_to_amplifier", false)
|
||||
set(value) { saved.edit().putBoolean("surround_to_amplifier", value).apply() }
|
||||
get() = saved.getBoolean("surround_to_amplifier_v2", true)
|
||||
set(value) { saved.edit().putBoolean("surround_to_amplifier_v2", value).apply() }
|
||||
/** Turns off moving presentation such as the Drive-In's curtains. More screens will follow it as they gain motion. */
|
||||
var reduceMotion: Boolean
|
||||
get() = saved.getBoolean("reduce_motion", false)
|
||||
@@ -170,7 +171,7 @@ private fun ViewingDetail(totsOn: Boolean, windingDown: Boolean, onWindDown: (Bo
|
||||
SettingLine("Drive-In curtains", "Play the curtain intro, with its fanfare, as you go into a screening. Back skips it.") {
|
||||
OrbitButton(if (driveInIntro) "On" else "Off", Modifier.width(64.dp), selected = driveInIntro, onClick = { driveInIntro = !driveInIntro; settings.driveInIntro = driveInIntro })
|
||||
}
|
||||
SettingLine("Surround sound to an amplifier", "Send Dolby and DTS sound undecoded, for an amplifier or soundbar that decodes it. Leave off when the TV's own speakers play the sound. Takes effect from the next programme.") {
|
||||
SettingLine("Surround sound undecoded", "Send Dolby and DTS sound as it is, for the TV or an amplifier to decode. Off decodes it on the box instead, which on some boxes leaves DTS silent. Takes effect from the next programme.") {
|
||||
OrbitButton(if (surroundToAmplifier) "On" else "Off", Modifier.width(64.dp), selected = surroundToAmplifier, onClick = { surroundToAmplifier = !surroundToAmplifier; settings.surroundToAmplifier = surroundToAmplifier })
|
||||
}
|
||||
SettingLine("Reduce motion", "Leave out moving presentation, such as the Drive-In's curtains.") {
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
# Orbit TV 0.95.6: surround sound undecoded again by default
|
||||
|
||||
0.95.5 decoded DTS on the box and was silent on Paul's Xiaomi box (22:25, 3 November 2026): the Amlogic C2 DTS decoder runs and a PCM stream flows, but nothing is heard. 0.95.6 restores the pre-0.95.4 behaviour as the default: Dolby and DTS go out undecoded, which played fine on Terra at 22:21. The setting is renamed "Surround sound undecoded" (on by default, stored under a new key so the earlier off value doesn't carry over); off decodes on the box, for boxes whose decoders work. The earlier Terra dropouts, seen right after an install with several players opening, are unexplained; if they return, check the log while they happen.
|
||||
|
||||
365 unit tests pass; lint has no errors.
|
||||
Reference in New Issue
Block a user