From 13da588f6564ad16d55e6d3165766f136d2f0998 Mon Sep 17 00:00:00 2001 From: Phisher98 Date: Wed, 4 Feb 2026 21:25:12 +0530 Subject: [PATCH 01/15] Minor Fix for case insensitive match --- .../cloudstream3/ui/player/GeneratorPlayer.kt | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/app/src/main/java/com/lagradost/cloudstream3/ui/player/GeneratorPlayer.kt b/app/src/main/java/com/lagradost/cloudstream3/ui/player/GeneratorPlayer.kt index 933d5de325..57732650ae 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/ui/player/GeneratorPlayer.kt +++ b/app/src/main/java/com/lagradost/cloudstream3/ui/player/GeneratorPlayer.kt @@ -1459,16 +1459,16 @@ class GeneratorPlayer : FullScreenPlayer() { ?: "Audio" val codec = track.sampleMimeType?.let { mimeType -> - when { - mimeType.contains("mp4a") || mimeType.contains("aac") -> "aac" - mimeType.contains("ac-3") || mimeType.contains("ac3") -> "ac3" - mimeType.contains("eac3-joc") -> "Dolby Atmos" - mimeType.contains("eac3") -> "eac3" - mimeType.contains("opus") -> "opus" - mimeType.contains("vorbis") -> "vorbis" - mimeType.contains("mp3") || mimeType.contains("mpeg") -> "mp3" - mimeType.contains("flac") -> "flac" - mimeType.contains("dts") -> "dts" + when { + mimeType.contains("mp4a", ignoreCase = true) || mimeType.contains("aac", ignoreCase = true) -> "aac" + mimeType.contains("ac-3", ignoreCase = true) || mimeType.contains("ac3", ignoreCase = true) -> "ac3" + mimeType.contains("eac3-joc", ignoreCase = true) -> "Dolby Atmos" + mimeType.contains("eac3", ignoreCase = true) -> "eac3" + mimeType.contains("opus", ignoreCase = true) -> "opus" + mimeType.contains("vorbis", ignoreCase = true) -> "vorbis" + mimeType.contains("mp3", ignoreCase = true) || mimeType.contains("mpeg", ignoreCase = true) -> "mp3" + mimeType.contains("flac", ignoreCase = true) -> "flac" + mimeType.contains("dts", ignoreCase = true) -> "dts" else -> mimeType.substringAfter("/") } } ?: "codec?" From a3a173ff6c531b9d9cc40bc7910c83b1f5d6a377 Mon Sep 17 00:00:00 2001 From: Phisher98 Date: Wed, 4 Feb 2026 21:31:16 +0530 Subject: [PATCH 02/15] Minor Fix for case insensitive match --- .../cloudstream3/ui/player/GeneratorPlayer.kt | 30 ++++++++++--------- 1 file changed, 16 insertions(+), 14 deletions(-) diff --git a/app/src/main/java/com/lagradost/cloudstream3/ui/player/GeneratorPlayer.kt b/app/src/main/java/com/lagradost/cloudstream3/ui/player/GeneratorPlayer.kt index 57732650ae..109b29e162 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/ui/player/GeneratorPlayer.kt +++ b/app/src/main/java/com/lagradost/cloudstream3/ui/player/GeneratorPlayer.kt @@ -1457,23 +1457,25 @@ class GeneratorPlayer : FullScreenPlayer() { val language = track.language?.let { fromTagToLanguageName(it) ?: it } ?: track.label ?: "Audio" - - val codec = track.sampleMimeType?.let { mimeType -> - when { - mimeType.contains("mp4a", ignoreCase = true) || mimeType.contains("aac", ignoreCase = true) -> "aac" - mimeType.contains("ac-3", ignoreCase = true) || mimeType.contains("ac3", ignoreCase = true) -> "ac3" - mimeType.contains("eac3-joc", ignoreCase = true) -> "Dolby Atmos" - mimeType.contains("eac3", ignoreCase = true) -> "eac3" - mimeType.contains("opus", ignoreCase = true) -> "opus" - mimeType.contains("vorbis", ignoreCase = true) -> "vorbis" - mimeType.contains("mp3", ignoreCase = true) || mimeType.contains("mpeg", ignoreCase = true) -> "mp3" - mimeType.contains("flac", ignoreCase = true) -> "flac" - mimeType.contains("dts", ignoreCase = true) -> "dts" - else -> mimeType.substringAfter("/") + + val codec = track.sampleMimeType + ?.lowercase() + ?.let { mime -> + when { + mime.contains("eac3-joc") -> "Dolby Atmos" + mime.contains("mp4a") || mime.contains("aac") -> "aac" + mime.contains("ac-3") || mime.contains("ac3") -> "ac3" + mime.contains("eac3") -> "eac3" + mime.contains("opus") -> "opus" + mime.contains("vorbis") -> "vorbis" + mime.contains("mp3") || mime.contains("mpeg") -> "mp3" + mime.contains("flac") -> "flac" + mime.contains("dts") -> "dts" + "/" in mime -> mime.substringAfter("/") + else -> mime } } ?: "codec?" - val channels: Int = track.channelCount ?: 0 val channelConfig = when (channels) { 1 -> "mono" From e251c4e3675178dc5541e976d001366b1f3684ed Mon Sep 17 00:00:00 2001 From: Phisher98 Date: Wed, 4 Feb 2026 21:47:56 +0530 Subject: [PATCH 03/15] Minor Fix for case insensitive match and Improvement on Video Codec --- .../cloudstream3/ui/player/GeneratorPlayer.kt | 36 +++++++++++++++++-- 1 file changed, 34 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/com/lagradost/cloudstream3/ui/player/GeneratorPlayer.kt b/app/src/main/java/com/lagradost/cloudstream3/ui/player/GeneratorPlayer.kt index 109b29e162..c03de090f0 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/ui/player/GeneratorPlayer.kt +++ b/app/src/main/java/com/lagradost/cloudstream3/ui/player/GeneratorPlayer.kt @@ -1851,6 +1851,38 @@ class GeneratorPlayer : FullScreenPlayer() { } } + + private fun videoCodecName(mime: String?): String? { + val m = mime?.lowercase() ?: return null + return when { + m.contains("avc") || m.contains("h264") -> "AVC" + m.contains("hevc") || m.contains("h265") -> "HEVC" + m.contains("av1") -> "AV1" + m.contains("vp9") -> "VP9" + m.contains("vp8") -> "VP8" + "/" in m -> m.substringAfter("/").uppercase() + else -> m.uppercase() + } + } + + private fun audioCodecName(mime: String?): String? { + val m = mime?.lowercase() ?: return null + return when { + m.contains("eac3-joc") -> "Dolby Atmos" + m.contains("mp4a") || m.contains("aac") -> "AAC" + m.contains("ac-3") || m.contains("ac3") -> "AC3" + m.contains("eac3") -> "E-AC3" + m.contains("opus") -> "Opus" + m.contains("vorbis") -> "Vorbis" + m.contains("mp3") -> "MP3" + m.contains("flac") -> "FLAC" + m.contains("dts") -> "DTS" + "/" in m -> m.substringAfter("/").uppercase() + else -> m.uppercase() + } + } + + private fun updatePlayerInfo() { val tracks = player.getVideoTracks() @@ -1861,8 +1893,8 @@ class GeneratorPlayer : FullScreenPlayer() { val prefs = PreferenceManager.getDefaultSharedPreferences(ctx) showMediaInfo = prefs.getBoolean(ctx.getString(R.string.show_media_info_key), false) - val videoCodec = videoTrack?.sampleMimeType?.substringAfterLast('/')?.uppercase() - val audioCodec = audioTrack?.sampleMimeType?.substringAfterLast('/')?.uppercase() + val videoCodec = videoCodecName(videoTrack?.sampleMimeType) + val audioCodec = audioCodecName(audioTrack?.sampleMimeType) val language = listOfNotNull( audioTrack?.label, fromTagToLanguageName(audioTrack?.language)?.let { "[$it]" } From e373ffcf36f24eaf4e40bae94605939cc9c2ccb3 Mon Sep 17 00:00:00 2001 From: Phisher98 Date: Wed, 4 Feb 2026 21:54:06 +0530 Subject: [PATCH 04/15] Minor Fix for case insensitive match and Improvement on Video Codec --- .../com/lagradost/cloudstream3/ui/player/GeneratorPlayer.kt | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/app/src/main/java/com/lagradost/cloudstream3/ui/player/GeneratorPlayer.kt b/app/src/main/java/com/lagradost/cloudstream3/ui/player/GeneratorPlayer.kt index c03de090f0..a556bdc48c 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/ui/player/GeneratorPlayer.kt +++ b/app/src/main/java/com/lagradost/cloudstream3/ui/player/GeneratorPlayer.kt @@ -1486,13 +1486,12 @@ class GeneratorPlayer : FullScreenPlayer() { } listOfNotNull( - "[$index]", language.replaceFirstChar { it.uppercaseChar() }, codec.uppercase(), channelConfig.replaceFirstChar { it.uppercaseChar() } ).joinToString(" • ") - "[$index] $language $codec $channelConfig" + "$language $codec $channelConfig" }) audioList.adapter = audioArrayAdapter From a3da693ec3610c70708c31f235491cac8b8af9ee Mon Sep 17 00:00:00 2001 From: Phisher98 Date: Wed, 4 Feb 2026 21:58:45 +0530 Subject: [PATCH 05/15] Minor Fix for case insensitive match and Improvement on Video Codec --- .../com/lagradost/cloudstream3/ui/player/GeneratorPlayer.kt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/com/lagradost/cloudstream3/ui/player/GeneratorPlayer.kt b/app/src/main/java/com/lagradost/cloudstream3/ui/player/GeneratorPlayer.kt index a556bdc48c..c03de090f0 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/ui/player/GeneratorPlayer.kt +++ b/app/src/main/java/com/lagradost/cloudstream3/ui/player/GeneratorPlayer.kt @@ -1486,12 +1486,13 @@ class GeneratorPlayer : FullScreenPlayer() { } listOfNotNull( + "[$index]", language.replaceFirstChar { it.uppercaseChar() }, codec.uppercase(), channelConfig.replaceFirstChar { it.uppercaseChar() } ).joinToString(" • ") - "$language $codec $channelConfig" + "[$index] $language $codec $channelConfig" }) audioList.adapter = audioArrayAdapter From a24dc242daaa68c62a7f4dc568f138c916a361bf Mon Sep 17 00:00:00 2001 From: Phisher98 Date: Wed, 4 Feb 2026 22:15:19 +0530 Subject: [PATCH 06/15] Minor Fix for case insensitive match and Improvement on Video Codec --- .../cloudstream3/ui/player/GeneratorPlayer.kt | 94 ++++++++++--------- 1 file changed, 51 insertions(+), 43 deletions(-) diff --git a/app/src/main/java/com/lagradost/cloudstream3/ui/player/GeneratorPlayer.kt b/app/src/main/java/com/lagradost/cloudstream3/ui/player/GeneratorPlayer.kt index c03de090f0..40bd72dd9b 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/ui/player/GeneratorPlayer.kt +++ b/app/src/main/java/com/lagradost/cloudstream3/ui/player/GeneratorPlayer.kt @@ -1453,47 +1453,49 @@ class GeneratorPlayer : FullScreenPlayer() { val audioArrayAdapter = ArrayAdapter(ctx, R.layout.sort_bottom_single_choice) - audioArrayAdapter.addAll(currentAudioTracks.mapIndexed { index, track -> - val language = track.language?.let { fromTagToLanguageName(it) ?: it } - ?: track.label - ?: "Audio" - - val codec = track.sampleMimeType - ?.lowercase() - ?.let { mime -> - when { - mime.contains("eac3-joc") -> "Dolby Atmos" - mime.contains("mp4a") || mime.contains("aac") -> "aac" - mime.contains("ac-3") || mime.contains("ac3") -> "ac3" - mime.contains("eac3") -> "eac3" - mime.contains("opus") -> "opus" - mime.contains("vorbis") -> "vorbis" - mime.contains("mp3") || mime.contains("mpeg") -> "mp3" - mime.contains("flac") -> "flac" - mime.contains("dts") -> "dts" - "/" in mime -> mime.substringAfter("/") - else -> mime + audioArrayAdapter.addAll( + currentAudioTracks.mapIndexed { index, track -> + + val language = ( + track.language?.let { fromTagToLanguageName(it) ?: it } + ?: track.label + ?: "Audio" + ).replaceFirstChar { it.uppercaseChar() } + + val codec = track.sampleMimeType + ?.lowercase() + ?.let { mime -> + when { + mime.contains("eac3-joc") -> "Dolby Atmos" + mime.contains("eac3") -> "E-AC3" + mime.contains("ac-3") || mime.contains("ac3") -> "AC3" + mime.contains("mp4a") || mime.contains("aac") -> "AAC" + mime.contains("opus") -> "Opus" + mime.contains("vorbis") -> "Vorbis" + mime.contains("mp3") -> "MP3" + mime.contains("flac") -> "FLAC" + mime.contains("dts") -> "DTS" + else -> "Unknown" + } + } ?: "Unknown" + + val channels = when (track.channelCount ?: 0) { + 1 -> "Mono" + 2 -> "Stereo" + 6 -> "5.1" + 8 -> "7.1" + else -> "${track.channelCount ?: "?"}ch" } - } ?: "codec?" - - val channels: Int = track.channelCount ?: 0 - val channelConfig = when (channels) { - 1 -> "mono" - 2 -> "stereo" - 6 -> "5.1" - 8 -> "7.1" - else -> "${channels}Ch" - } - listOfNotNull( - "[$index]", - language.replaceFirstChar { it.uppercaseChar() }, - codec.uppercase(), - channelConfig.replaceFirstChar { it.uppercaseChar() } - ).joinToString(" • ") - - "[$index] $language $codec $channelConfig" - }) + listOfNotNull( + "${index + 1}.", + language.takeIf { it.isNotBlank() }?.replaceFirstChar { it.uppercaseChar() }, + channels.takeIf { it.isNotBlank() }?.replaceFirstChar { it.uppercaseChar() }, + codec.takeIf { it.isNotBlank() }?.uppercase()?.let { "($it)" } + ).joinToString(" ") + + } + ) audioList.adapter = audioArrayAdapter audioList.choiceMode = AbsListView.CHOICE_MODE_SINGLE @@ -1895,10 +1897,16 @@ class GeneratorPlayer : FullScreenPlayer() { val videoCodec = videoCodecName(videoTrack?.sampleMimeType) val audioCodec = audioCodecName(audioTrack?.sampleMimeType) - val language = listOfNotNull( - audioTrack?.label, - fromTagToLanguageName(audioTrack?.language)?.let { "[$it]" } - ).joinToString(" ") + val languageName = fromTagToLanguageName(audioTrack?.language) + val label = audioTrack?.label + + val language = when { + languageName.isNullOrBlank() && label.isNullOrBlank() -> null + languageName.isNullOrBlank() -> label + label.isNullOrBlank() -> languageName + label.equals(languageName, ignoreCase = true) -> languageName + else -> "$languageName ($label)" + } val stats = arrayOf(videoCodec, audioCodec, language).filter { !it.isNullOrBlank() }.joinToString(" • ") From 7308aea869b3bc1923f181ac1a1940c06c39e601 Mon Sep 17 00:00:00 2001 From: Phisher98 Date: Thu, 5 Feb 2026 09:02:01 +0530 Subject: [PATCH 07/15] Removing Showing Index --- .../java/com/lagradost/cloudstream3/ui/player/GeneratorPlayer.kt | 1 - 1 file changed, 1 deletion(-) diff --git a/app/src/main/java/com/lagradost/cloudstream3/ui/player/GeneratorPlayer.kt b/app/src/main/java/com/lagradost/cloudstream3/ui/player/GeneratorPlayer.kt index 40bd72dd9b..7623fc89dd 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/ui/player/GeneratorPlayer.kt +++ b/app/src/main/java/com/lagradost/cloudstream3/ui/player/GeneratorPlayer.kt @@ -1488,7 +1488,6 @@ class GeneratorPlayer : FullScreenPlayer() { } listOfNotNull( - "${index + 1}.", language.takeIf { it.isNotBlank() }?.replaceFirstChar { it.uppercaseChar() }, channels.takeIf { it.isNotBlank() }?.replaceFirstChar { it.uppercaseChar() }, codec.takeIf { it.isNotBlank() }?.uppercase()?.let { "($it)" } From 9505d1ead4c421b77b505da23a26558aaabd9b20 Mon Sep 17 00:00:00 2001 From: Phisher98 Date: Thu, 5 Feb 2026 09:02:15 +0530 Subject: [PATCH 08/15] Removing Showing Index --- .../com/lagradost/cloudstream3/ui/player/GeneratorPlayer.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/java/com/lagradost/cloudstream3/ui/player/GeneratorPlayer.kt b/app/src/main/java/com/lagradost/cloudstream3/ui/player/GeneratorPlayer.kt index 7623fc89dd..8d02f71411 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/ui/player/GeneratorPlayer.kt +++ b/app/src/main/java/com/lagradost/cloudstream3/ui/player/GeneratorPlayer.kt @@ -1454,7 +1454,7 @@ class GeneratorPlayer : FullScreenPlayer() { val audioArrayAdapter = ArrayAdapter(ctx, R.layout.sort_bottom_single_choice) audioArrayAdapter.addAll( - currentAudioTracks.mapIndexed { index, track -> + currentAudioTracks.mapIndexed { _, track -> val language = ( track.language?.let { fromTagToLanguageName(it) ?: it } From 60a88184a721080225a55f34f0352bdc022f69f2 Mon Sep 17 00:00:00 2001 From: Phisher98 Date: Thu, 5 Feb 2026 09:12:26 +0530 Subject: [PATCH 09/15] Minor Changes --- .../cloudstream3/ui/player/GeneratorPlayer.kt | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/app/src/main/java/com/lagradost/cloudstream3/ui/player/GeneratorPlayer.kt b/app/src/main/java/com/lagradost/cloudstream3/ui/player/GeneratorPlayer.kt index 8d02f71411..742894086e 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/ui/player/GeneratorPlayer.kt +++ b/app/src/main/java/com/lagradost/cloudstream3/ui/player/GeneratorPlayer.kt @@ -1457,7 +1457,11 @@ class GeneratorPlayer : FullScreenPlayer() { currentAudioTracks.mapIndexed { _, track -> val language = ( - track.language?.let { fromTagToLanguageName(it) ?: it } + track.language?.trim()?.let { raw -> + fromTagToLanguageName(raw) + ?: fromTagToLanguageName(raw.replace('_','-').substringBefore('-').lowercase()) + ?: raw + } ?: track.label ?: "Audio" ).replaceFirstChar { it.uppercaseChar() } @@ -1899,13 +1903,11 @@ class GeneratorPlayer : FullScreenPlayer() { val languageName = fromTagToLanguageName(audioTrack?.language) val label = audioTrack?.label - val language = when { - languageName.isNullOrBlank() && label.isNullOrBlank() -> null - languageName.isNullOrBlank() -> label - label.isNullOrBlank() -> languageName - label.equals(languageName, ignoreCase = true) -> languageName - else -> "$languageName ($label)" - } + val language = languageName?.takeIf { it.isNotBlank() }?.let { lang -> + label?.takeIf { it.isNotBlank() && !it.equals(lang, true) } + ?.let { "$lang ($it)" } + ?: lang + } ?: label?.takeIf { it.isNotBlank() } val stats = arrayOf(videoCodec, audioCodec, language).filter { !it.isNullOrBlank() }.joinToString(" • ") From 31579d2516f5a405cdbbf2478bcfd347dc5ef95d Mon Sep 17 00:00:00 2001 From: Phisher98 Date: Wed, 18 Feb 2026 08:56:28 +0530 Subject: [PATCH 10/15] Minor Fix --- .../cloudstream3/ui/player/GeneratorPlayer.kt | 21 +++---------------- 1 file changed, 3 insertions(+), 18 deletions(-) diff --git a/app/src/main/java/com/lagradost/cloudstream3/ui/player/GeneratorPlayer.kt b/app/src/main/java/com/lagradost/cloudstream3/ui/player/GeneratorPlayer.kt index 742894086e..6c61ae1a69 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/ui/player/GeneratorPlayer.kt +++ b/app/src/main/java/com/lagradost/cloudstream3/ui/player/GeneratorPlayer.kt @@ -1466,22 +1466,7 @@ class GeneratorPlayer : FullScreenPlayer() { ?: "Audio" ).replaceFirstChar { it.uppercaseChar() } - val codec = track.sampleMimeType - ?.lowercase() - ?.let { mime -> - when { - mime.contains("eac3-joc") -> "Dolby Atmos" - mime.contains("eac3") -> "E-AC3" - mime.contains("ac-3") || mime.contains("ac3") -> "AC3" - mime.contains("mp4a") || mime.contains("aac") -> "AAC" - mime.contains("opus") -> "Opus" - mime.contains("vorbis") -> "Vorbis" - mime.contains("mp3") -> "MP3" - mime.contains("flac") -> "FLAC" - mime.contains("dts") -> "DTS" - else -> "Unknown" - } - } ?: "Unknown" + val codec = audioCodecName(track.sampleMimeType) val channels = when (track.channelCount ?: 0) { 1 -> "Mono" @@ -1870,8 +1855,8 @@ class GeneratorPlayer : FullScreenPlayer() { } } - private fun audioCodecName(mime: String?): String? { - val m = mime?.lowercase() ?: return null + private fun audioCodecName(mime: String?): String { + val m = mime?.lowercase() ?: return "Unknown" return when { m.contains("eac3-joc") -> "Dolby Atmos" m.contains("mp4a") || m.contains("aac") -> "AAC" From 4d6be9f47f00bb84eb26aff13466bb912723bc4b Mon Sep 17 00:00:00 2001 From: Phisher98 Date: Wed, 18 Feb 2026 09:18:52 +0530 Subject: [PATCH 11/15] Minor Fix --- .../cloudstream3/ui/player/GeneratorPlayer.kt | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/com/lagradost/cloudstream3/ui/player/GeneratorPlayer.kt b/app/src/main/java/com/lagradost/cloudstream3/ui/player/GeneratorPlayer.kt index 6c61ae1a69..b6517c510a 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/ui/player/GeneratorPlayer.kt +++ b/app/src/main/java/com/lagradost/cloudstream3/ui/player/GeneratorPlayer.kt @@ -1888,13 +1888,26 @@ class GeneratorPlayer : FullScreenPlayer() { val languageName = fromTagToLanguageName(audioTrack?.language) val label = audioTrack?.label + val channels = when (audioTrack?.channelCount ?: 0) { + 1 -> "Mono" + 2 -> "Stereo" + 6 -> "5.1" + 8 -> "7.1" + else -> audioTrack?.channelCount?.let { "${it}ch" } + } + val language = languageName?.takeIf { it.isNotBlank() }?.let { lang -> label?.takeIf { it.isNotBlank() && !it.equals(lang, true) } ?.let { "$lang ($it)" } ?: lang } ?: label?.takeIf { it.isNotBlank() } - val stats = arrayOf(videoCodec, audioCodec, language).filter { !it.isNullOrBlank() }.joinToString(" • ") + val stats = arrayOf( + videoCodec, + language, + channels, + audioCodec + ).filter { !it.isNullOrBlank() }.joinToString(" • ") playerBinding?.playerVideoInfo?.apply { text = stats From 551655f75213f59c5246034135bf8d8dfc438af0 Mon Sep 17 00:00:00 2001 From: Phisher98 Date: Wed, 18 Feb 2026 09:25:47 +0530 Subject: [PATCH 12/15] Minor Fix --- .../com/lagradost/cloudstream3/ui/player/GeneratorPlayer.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/java/com/lagradost/cloudstream3/ui/player/GeneratorPlayer.kt b/app/src/main/java/com/lagradost/cloudstream3/ui/player/GeneratorPlayer.kt index b6517c510a..37716c73de 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/ui/player/GeneratorPlayer.kt +++ b/app/src/main/java/com/lagradost/cloudstream3/ui/player/GeneratorPlayer.kt @@ -1856,7 +1856,7 @@ class GeneratorPlayer : FullScreenPlayer() { } private fun audioCodecName(mime: String?): String { - val m = mime?.lowercase() ?: return "Unknown" + val m = mime?.lowercase() ?: return "" return when { m.contains("eac3-joc") -> "Dolby Atmos" m.contains("mp4a") || m.contains("aac") -> "AAC" From afccfe3aad9407e36cea7968397dfbeee9b1a1e3 Mon Sep 17 00:00:00 2001 From: Phisher98 Date: Wed, 18 Feb 2026 09:26:36 +0530 Subject: [PATCH 13/15] Minor Fix --- .../cloudstream3/ui/player/GeneratorPlayer.kt | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/app/src/main/java/com/lagradost/cloudstream3/ui/player/GeneratorPlayer.kt b/app/src/main/java/com/lagradost/cloudstream3/ui/player/GeneratorPlayer.kt index 37716c73de..c57529621d 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/ui/player/GeneratorPlayer.kt +++ b/app/src/main/java/com/lagradost/cloudstream3/ui/player/GeneratorPlayer.kt @@ -1856,23 +1856,24 @@ class GeneratorPlayer : FullScreenPlayer() { } private fun audioCodecName(mime: String?): String { - val m = mime?.lowercase() ?: return "" + val m = mime?.lowercase()?.trim().orEmpty() + if (m.isBlank()) return "" return when { m.contains("eac3-joc") -> "Dolby Atmos" - m.contains("mp4a") || m.contains("aac") -> "AAC" - m.contains("ac-3") || m.contains("ac3") -> "AC3" + m.contains("truehd") -> "TrueHD" m.contains("eac3") -> "E-AC3" + m.contains("ac-3") || m.contains("ac3") -> "AC3" + m.contains("aac") || m.contains("mp4a") -> "AAC" m.contains("opus") -> "Opus" m.contains("vorbis") -> "Vorbis" m.contains("mp3") -> "MP3" m.contains("flac") -> "FLAC" m.contains("dts") -> "DTS" - "/" in m -> m.substringAfter("/").uppercase() - else -> m.uppercase() + m.contains("/") -> m.substringAfter("/").uppercase().takeIf { it.isNotBlank() } ?: "" + else -> "" } } - private fun updatePlayerInfo() { val tracks = player.getVideoTracks() From 0be2f2a4afb3cb0e8dce178767cce051aea7ecec Mon Sep 17 00:00:00 2001 From: Phisher98 Date: Wed, 18 Feb 2026 09:32:40 +0530 Subject: [PATCH 14/15] Minor Fix --- .../com/lagradost/cloudstream3/ui/player/GeneratorPlayer.kt | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/com/lagradost/cloudstream3/ui/player/GeneratorPlayer.kt b/app/src/main/java/com/lagradost/cloudstream3/ui/player/GeneratorPlayer.kt index c57529621d..e9aadae40f 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/ui/player/GeneratorPlayer.kt +++ b/app/src/main/java/com/lagradost/cloudstream3/ui/player/GeneratorPlayer.kt @@ -1869,6 +1869,9 @@ class GeneratorPlayer : FullScreenPlayer() { m.contains("mp3") -> "MP3" m.contains("flac") -> "FLAC" m.contains("dts") -> "DTS" + m.contains("pcm") -> "PCM" + m.contains("alac") -> "ALAC" + m.contains("amr") -> "AMR" m.contains("/") -> m.substringAfter("/").uppercase().takeIf { it.isNotBlank() } ?: "" else -> "" } @@ -1899,7 +1902,7 @@ class GeneratorPlayer : FullScreenPlayer() { val language = languageName?.takeIf { it.isNotBlank() }?.let { lang -> label?.takeIf { it.isNotBlank() && !it.equals(lang, true) } - ?.let { "$lang ($it)" } + ?.let { lang } ?: lang } ?: label?.takeIf { it.isNotBlank() } From 5467377d1c37ca979a6100489ce1a6a7694f5cab Mon Sep 17 00:00:00 2001 From: Phisher98 Date: Wed, 18 Feb 2026 09:50:12 +0530 Subject: [PATCH 15/15] Minor Fix --- .../lagradost/cloudstream3/ui/player/GeneratorPlayer.kt | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/com/lagradost/cloudstream3/ui/player/GeneratorPlayer.kt b/app/src/main/java/com/lagradost/cloudstream3/ui/player/GeneratorPlayer.kt index e9aadae40f..07d17b1771 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/ui/player/GeneratorPlayer.kt +++ b/app/src/main/java/com/lagradost/cloudstream3/ui/player/GeneratorPlayer.kt @@ -1478,9 +1478,10 @@ class GeneratorPlayer : FullScreenPlayer() { listOfNotNull( language.takeIf { it.isNotBlank() }?.replaceFirstChar { it.uppercaseChar() }, - channels.takeIf { it.isNotBlank() }?.replaceFirstChar { it.uppercaseChar() }, - codec.takeIf { it.isNotBlank() }?.uppercase()?.let { "($it)" } - ).joinToString(" ") + channels.takeIf { it.isNotBlank() }, + codec.takeIf { it.isNotBlank() }?.uppercase() + ).joinToString(" • ") + } )