diff --git a/android/app/src/main/kotlin/com/edde746/plezy/exoplayer/ExoPlayerPlugin.kt b/android/app/src/main/kotlin/com/edde746/plezy/exoplayer/ExoPlayerPlugin.kt index 824b8667..51b6b0d6 100644 --- a/android/app/src/main/kotlin/com/edde746/plezy/exoplayer/ExoPlayerPlugin.kt +++ b/android/app/src/main/kotlin/com/edde746/plezy/exoplayer/ExoPlayerPlugin.kt @@ -698,6 +698,8 @@ class ExoPlayerPlugin : "audio-bitrate" to mpv.getProperty("audio-bitrate"), // Performance metrics "total-avsync-change" to mpv.getProperty("total-avsync-change"), + "cache-used" to mpv.getProperty("cache-used"), + "demuxer-max-bytes" to mpv.getProperty("demuxer-max-bytes"), "cache-speed" to mpv.getProperty("cache-speed"), "frame-drop-count" to mpv.getProperty("frame-drop-count"), "decoder-frame-drop-count" to mpv.getProperty("decoder-frame-drop-count"), diff --git a/lib/i18n/bg.i18n.json b/lib/i18n/bg.i18n.json index 22008855..1cf576cf 100644 --- a/lib/i18n/bg.i18n.json +++ b/lib/i18n/bg.i18n.json @@ -1187,6 +1187,7 @@ "maxCll": "MaxCLL", "maxFall": "MaxFALL", "cacheUsed": "Използван кеш", + "cacheLimit": "Лимит на кеша", "speed": "Скорост", "player": "Плеър", "memory": "Памет", diff --git a/lib/i18n/da.i18n.json b/lib/i18n/da.i18n.json index 4250f8f2..eac7d4d8 100644 --- a/lib/i18n/da.i18n.json +++ b/lib/i18n/da.i18n.json @@ -1187,6 +1187,7 @@ "maxCll": "MaxCLL", "maxFall": "MaxFALL", "cacheUsed": "Brugt cache", + "cacheLimit": "Cachegrænse", "speed": "Hastighed", "player": "Afspiller", "memory": "Hukommelse", diff --git a/lib/i18n/de.i18n.json b/lib/i18n/de.i18n.json index a1995391..0f49129e 100644 --- a/lib/i18n/de.i18n.json +++ b/lib/i18n/de.i18n.json @@ -1187,6 +1187,7 @@ "maxCll": "MaxCLL", "maxFall": "MaxFALL", "cacheUsed": "Cache genutzt", + "cacheLimit": "Cache-Limit", "speed": "Geschwindigkeit", "player": "Player", "memory": "Speicher", diff --git a/lib/i18n/en.i18n.json b/lib/i18n/en.i18n.json index b060b2ec..e932c475 100644 --- a/lib/i18n/en.i18n.json +++ b/lib/i18n/en.i18n.json @@ -1196,6 +1196,7 @@ "maxCll": "MaxCLL", "maxFall": "MaxFALL", "cacheUsed": "Cache Used", + "cacheLimit": "Cache Limit", "speed": "Speed", "player": "Player", "memory": "Memory", diff --git a/lib/i18n/es.i18n.json b/lib/i18n/es.i18n.json index 465a47e7..ad0ae504 100644 --- a/lib/i18n/es.i18n.json +++ b/lib/i18n/es.i18n.json @@ -1187,6 +1187,7 @@ "maxCll": "MaxCLL", "maxFall": "MaxFALL", "cacheUsed": "Caché usada", + "cacheLimit": "Límite de caché", "speed": "Velocidad", "player": "Reproductor", "memory": "Memoria", diff --git a/lib/i18n/fr.i18n.json b/lib/i18n/fr.i18n.json index 9f53bcf9..82605563 100644 --- a/lib/i18n/fr.i18n.json +++ b/lib/i18n/fr.i18n.json @@ -1187,6 +1187,7 @@ "maxCll": "MaxCLL", "maxFall": "MaxFALL", "cacheUsed": "Cache utilisé", + "cacheLimit": "Limite du cache", "speed": "Vitesse", "player": "Lecteur", "memory": "Mémoire", diff --git a/lib/i18n/it.i18n.json b/lib/i18n/it.i18n.json index 3fbb242c..d3a81ce4 100644 --- a/lib/i18n/it.i18n.json +++ b/lib/i18n/it.i18n.json @@ -1187,6 +1187,7 @@ "maxCll": "MaxCLL", "maxFall": "MaxFALL", "cacheUsed": "Cache usata", + "cacheLimit": "Limite cache", "speed": "Velocità", "player": "Player", "memory": "Memoria", diff --git a/lib/i18n/ja.i18n.json b/lib/i18n/ja.i18n.json index 34eb4db9..4a17a0f2 100644 --- a/lib/i18n/ja.i18n.json +++ b/lib/i18n/ja.i18n.json @@ -1187,6 +1187,7 @@ "maxCll": "MaxCLL", "maxFall": "MaxFALL", "cacheUsed": "使用キャッシュ", + "cacheLimit": "キャッシュ上限", "speed": "速度", "player": "プレーヤー", "memory": "メモリ", diff --git a/lib/i18n/ko.i18n.json b/lib/i18n/ko.i18n.json index c772c47a..f5472a9c 100644 --- a/lib/i18n/ko.i18n.json +++ b/lib/i18n/ko.i18n.json @@ -1187,6 +1187,7 @@ "maxCll": "MaxCLL", "maxFall": "MaxFALL", "cacheUsed": "사용 캐시", + "cacheLimit": "캐시 제한", "speed": "속도", "player": "플레이어", "memory": "메모리", diff --git a/lib/i18n/nb.i18n.json b/lib/i18n/nb.i18n.json index a65082fd..3e024d5b 100644 --- a/lib/i18n/nb.i18n.json +++ b/lib/i18n/nb.i18n.json @@ -1187,6 +1187,7 @@ "maxCll": "MaxCLL", "maxFall": "MaxFALL", "cacheUsed": "Cache brukt", + "cacheLimit": "Cachegrense", "speed": "Hastighet", "player": "Spiller", "memory": "Minne", diff --git a/lib/i18n/nl.i18n.json b/lib/i18n/nl.i18n.json index 7db3d5cf..8619dbda 100644 --- a/lib/i18n/nl.i18n.json +++ b/lib/i18n/nl.i18n.json @@ -1187,6 +1187,7 @@ "maxCll": "MaxCLL", "maxFall": "MaxFALL", "cacheUsed": "Cache gebruikt", + "cacheLimit": "Cachelimiet", "speed": "Snelheid", "player": "Speler", "memory": "Geheugen", diff --git a/lib/i18n/pl.i18n.json b/lib/i18n/pl.i18n.json index 7dbc18bd..ecdaa9ed 100644 --- a/lib/i18n/pl.i18n.json +++ b/lib/i18n/pl.i18n.json @@ -1187,6 +1187,7 @@ "maxCll": "MaxCLL", "maxFall": "MaxFALL", "cacheUsed": "Użyty cache", + "cacheLimit": "Limit cache'u", "speed": "Szybkość", "player": "Odtwarzacz", "memory": "Pamięć", diff --git a/lib/i18n/pt.i18n.json b/lib/i18n/pt.i18n.json index d3f30c0d..fba39390 100644 --- a/lib/i18n/pt.i18n.json +++ b/lib/i18n/pt.i18n.json @@ -1187,6 +1187,7 @@ "maxCll": "MaxCLL", "maxFall": "MaxFALL", "cacheUsed": "Cache usado", + "cacheLimit": "Limite do cache", "speed": "Velocidade", "player": "Player", "memory": "Memória", diff --git a/lib/i18n/ru.i18n.json b/lib/i18n/ru.i18n.json index 0f1de4b2..8e8f9316 100644 --- a/lib/i18n/ru.i18n.json +++ b/lib/i18n/ru.i18n.json @@ -1187,6 +1187,7 @@ "maxCll": "MaxCLL", "maxFall": "MaxFALL", "cacheUsed": "Кэш использован", + "cacheLimit": "Лимит кэша", "speed": "Скорость", "player": "Плеер", "memory": "Память", diff --git a/lib/i18n/strings.g.dart b/lib/i18n/strings.g.dart index 976bfac5..5fa5c305 100644 --- a/lib/i18n/strings.g.dart +++ b/lib/i18n/strings.g.dart @@ -4,7 +4,7 @@ /// To regenerate, run: `dart run slang` /// /// Locales: 16 -/// Strings: 20345 (1271 per locale) +/// Strings: 20361 (1272 per locale) // coverage:ignore-file // ignore_for_file: type=lint, unused_import diff --git a/lib/i18n/strings_bg.g.dart b/lib/i18n/strings_bg.g.dart index 2cd7168d..fa7971b6 100644 --- a/lib/i18n/strings_bg.g.dart +++ b/lib/i18n/strings_bg.g.dart @@ -1409,6 +1409,7 @@ class _TranslationsPerformanceOverlayBg extends TranslationsPerformanceOverlayEn @override String get maxCll => 'MaxCLL'; @override String get maxFall => 'MaxFALL'; @override String get cacheUsed => 'Използван кеш'; + @override String get cacheLimit => 'Лимит на кеша'; @override String get speed => 'Скорост'; @override String get player => 'Плеър'; @override String get memory => 'Памет'; @@ -3015,6 +3016,7 @@ extension on TranslationsBg { 'performanceOverlay.maxCll' => 'MaxCLL', 'performanceOverlay.maxFall' => 'MaxFALL', 'performanceOverlay.cacheUsed' => 'Използван кеш', + 'performanceOverlay.cacheLimit' => 'Лимит на кеша', 'performanceOverlay.speed' => 'Скорост', 'performanceOverlay.player' => 'Плеър', 'performanceOverlay.memory' => 'Памет', diff --git a/lib/i18n/strings_da.g.dart b/lib/i18n/strings_da.g.dart index 7481fe29..9be5e956 100644 --- a/lib/i18n/strings_da.g.dart +++ b/lib/i18n/strings_da.g.dart @@ -1409,6 +1409,7 @@ class _TranslationsPerformanceOverlayDa extends TranslationsPerformanceOverlayEn @override String get maxCll => 'MaxCLL'; @override String get maxFall => 'MaxFALL'; @override String get cacheUsed => 'Brugt cache'; + @override String get cacheLimit => 'Cachegrænse'; @override String get speed => 'Hastighed'; @override String get player => 'Afspiller'; @override String get memory => 'Hukommelse'; @@ -3015,6 +3016,7 @@ extension on TranslationsDa { 'performanceOverlay.maxCll' => 'MaxCLL', 'performanceOverlay.maxFall' => 'MaxFALL', 'performanceOverlay.cacheUsed' => 'Brugt cache', + 'performanceOverlay.cacheLimit' => 'Cachegrænse', 'performanceOverlay.speed' => 'Hastighed', 'performanceOverlay.player' => 'Afspiller', 'performanceOverlay.memory' => 'Hukommelse', diff --git a/lib/i18n/strings_de.g.dart b/lib/i18n/strings_de.g.dart index cbc0b4f5..f79643d5 100644 --- a/lib/i18n/strings_de.g.dart +++ b/lib/i18n/strings_de.g.dart @@ -1409,6 +1409,7 @@ class _TranslationsPerformanceOverlayDe extends TranslationsPerformanceOverlayEn @override String get maxCll => 'MaxCLL'; @override String get maxFall => 'MaxFALL'; @override String get cacheUsed => 'Cache genutzt'; + @override String get cacheLimit => 'Cache-Limit'; @override String get speed => 'Geschwindigkeit'; @override String get player => 'Player'; @override String get memory => 'Speicher'; @@ -3015,6 +3016,7 @@ extension on TranslationsDe { 'performanceOverlay.maxCll' => 'MaxCLL', 'performanceOverlay.maxFall' => 'MaxFALL', 'performanceOverlay.cacheUsed' => 'Cache genutzt', + 'performanceOverlay.cacheLimit' => 'Cache-Limit', 'performanceOverlay.speed' => 'Geschwindigkeit', 'performanceOverlay.player' => 'Player', 'performanceOverlay.memory' => 'Speicher', diff --git a/lib/i18n/strings_en.g.dart b/lib/i18n/strings_en.g.dart index 496863de..bc1e87ae 100644 --- a/lib/i18n/strings_en.g.dart +++ b/lib/i18n/strings_en.g.dart @@ -3368,6 +3368,9 @@ class TranslationsPerformanceOverlayEn { /// en: 'Cache Used' String get cacheUsed => 'Cache Used'; + /// en: 'Cache Limit' + String get cacheLimit => 'Cache Limit'; + /// en: 'Speed' String get speed => 'Speed'; @@ -5599,6 +5602,7 @@ extension on Translations { 'performanceOverlay.maxCll' => 'MaxCLL', 'performanceOverlay.maxFall' => 'MaxFALL', 'performanceOverlay.cacheUsed' => 'Cache Used', + 'performanceOverlay.cacheLimit' => 'Cache Limit', 'performanceOverlay.speed' => 'Speed', 'performanceOverlay.player' => 'Player', 'performanceOverlay.memory' => 'Memory', diff --git a/lib/i18n/strings_es.g.dart b/lib/i18n/strings_es.g.dart index c2ec7fea..fd40caf9 100644 --- a/lib/i18n/strings_es.g.dart +++ b/lib/i18n/strings_es.g.dart @@ -1409,6 +1409,7 @@ class _TranslationsPerformanceOverlayEs extends TranslationsPerformanceOverlayEn @override String get maxCll => 'MaxCLL'; @override String get maxFall => 'MaxFALL'; @override String get cacheUsed => 'Caché usada'; + @override String get cacheLimit => 'Límite de caché'; @override String get speed => 'Velocidad'; @override String get player => 'Reproductor'; @override String get memory => 'Memoria'; @@ -3015,6 +3016,7 @@ extension on TranslationsEs { 'performanceOverlay.maxCll' => 'MaxCLL', 'performanceOverlay.maxFall' => 'MaxFALL', 'performanceOverlay.cacheUsed' => 'Caché usada', + 'performanceOverlay.cacheLimit' => 'Límite de caché', 'performanceOverlay.speed' => 'Velocidad', 'performanceOverlay.player' => 'Reproductor', 'performanceOverlay.memory' => 'Memoria', diff --git a/lib/i18n/strings_fr.g.dart b/lib/i18n/strings_fr.g.dart index 44747fc6..dc026b26 100644 --- a/lib/i18n/strings_fr.g.dart +++ b/lib/i18n/strings_fr.g.dart @@ -1409,6 +1409,7 @@ class _TranslationsPerformanceOverlayFr extends TranslationsPerformanceOverlayEn @override String get maxCll => 'MaxCLL'; @override String get maxFall => 'MaxFALL'; @override String get cacheUsed => 'Cache utilisé'; + @override String get cacheLimit => 'Limite du cache'; @override String get speed => 'Vitesse'; @override String get player => 'Lecteur'; @override String get memory => 'Mémoire'; @@ -3015,6 +3016,7 @@ extension on TranslationsFr { 'performanceOverlay.maxCll' => 'MaxCLL', 'performanceOverlay.maxFall' => 'MaxFALL', 'performanceOverlay.cacheUsed' => 'Cache utilisé', + 'performanceOverlay.cacheLimit' => 'Limite du cache', 'performanceOverlay.speed' => 'Vitesse', 'performanceOverlay.player' => 'Lecteur', 'performanceOverlay.memory' => 'Mémoire', diff --git a/lib/i18n/strings_it.g.dart b/lib/i18n/strings_it.g.dart index a5ac0f71..b8de7a55 100644 --- a/lib/i18n/strings_it.g.dart +++ b/lib/i18n/strings_it.g.dart @@ -1409,6 +1409,7 @@ class _TranslationsPerformanceOverlayIt extends TranslationsPerformanceOverlayEn @override String get maxCll => 'MaxCLL'; @override String get maxFall => 'MaxFALL'; @override String get cacheUsed => 'Cache usata'; + @override String get cacheLimit => 'Limite cache'; @override String get speed => 'Velocità'; @override String get player => 'Player'; @override String get memory => 'Memoria'; @@ -3015,6 +3016,7 @@ extension on TranslationsIt { 'performanceOverlay.maxCll' => 'MaxCLL', 'performanceOverlay.maxFall' => 'MaxFALL', 'performanceOverlay.cacheUsed' => 'Cache usata', + 'performanceOverlay.cacheLimit' => 'Limite cache', 'performanceOverlay.speed' => 'Velocità', 'performanceOverlay.player' => 'Player', 'performanceOverlay.memory' => 'Memoria', diff --git a/lib/i18n/strings_ja.g.dart b/lib/i18n/strings_ja.g.dart index 28908f07..2018d73d 100644 --- a/lib/i18n/strings_ja.g.dart +++ b/lib/i18n/strings_ja.g.dart @@ -1409,6 +1409,7 @@ class _TranslationsPerformanceOverlayJa extends TranslationsPerformanceOverlayEn @override String get maxCll => 'MaxCLL'; @override String get maxFall => 'MaxFALL'; @override String get cacheUsed => '使用キャッシュ'; + @override String get cacheLimit => 'キャッシュ上限'; @override String get speed => '速度'; @override String get player => 'プレーヤー'; @override String get memory => 'メモリ'; @@ -3015,6 +3016,7 @@ extension on TranslationsJa { 'performanceOverlay.maxCll' => 'MaxCLL', 'performanceOverlay.maxFall' => 'MaxFALL', 'performanceOverlay.cacheUsed' => '使用キャッシュ', + 'performanceOverlay.cacheLimit' => 'キャッシュ上限', 'performanceOverlay.speed' => '速度', 'performanceOverlay.player' => 'プレーヤー', 'performanceOverlay.memory' => 'メモリ', diff --git a/lib/i18n/strings_ko.g.dart b/lib/i18n/strings_ko.g.dart index a5f2f452..763c1637 100644 --- a/lib/i18n/strings_ko.g.dart +++ b/lib/i18n/strings_ko.g.dart @@ -1409,6 +1409,7 @@ class _TranslationsPerformanceOverlayKo extends TranslationsPerformanceOverlayEn @override String get maxCll => 'MaxCLL'; @override String get maxFall => 'MaxFALL'; @override String get cacheUsed => '사용 캐시'; + @override String get cacheLimit => '캐시 제한'; @override String get speed => '속도'; @override String get player => '플레이어'; @override String get memory => '메모리'; @@ -3015,6 +3016,7 @@ extension on TranslationsKo { 'performanceOverlay.maxCll' => 'MaxCLL', 'performanceOverlay.maxFall' => 'MaxFALL', 'performanceOverlay.cacheUsed' => '사용 캐시', + 'performanceOverlay.cacheLimit' => '캐시 제한', 'performanceOverlay.speed' => '속도', 'performanceOverlay.player' => '플레이어', 'performanceOverlay.memory' => '메모리', diff --git a/lib/i18n/strings_nb.g.dart b/lib/i18n/strings_nb.g.dart index 92115ced..5a3721cb 100644 --- a/lib/i18n/strings_nb.g.dart +++ b/lib/i18n/strings_nb.g.dart @@ -1409,6 +1409,7 @@ class _TranslationsPerformanceOverlayNb extends TranslationsPerformanceOverlayEn @override String get maxCll => 'MaxCLL'; @override String get maxFall => 'MaxFALL'; @override String get cacheUsed => 'Cache brukt'; + @override String get cacheLimit => 'Cachegrense'; @override String get speed => 'Hastighet'; @override String get player => 'Spiller'; @override String get memory => 'Minne'; @@ -3015,6 +3016,7 @@ extension on TranslationsNb { 'performanceOverlay.maxCll' => 'MaxCLL', 'performanceOverlay.maxFall' => 'MaxFALL', 'performanceOverlay.cacheUsed' => 'Cache brukt', + 'performanceOverlay.cacheLimit' => 'Cachegrense', 'performanceOverlay.speed' => 'Hastighet', 'performanceOverlay.player' => 'Spiller', 'performanceOverlay.memory' => 'Minne', diff --git a/lib/i18n/strings_nl.g.dart b/lib/i18n/strings_nl.g.dart index 0967c020..7de73c43 100644 --- a/lib/i18n/strings_nl.g.dart +++ b/lib/i18n/strings_nl.g.dart @@ -1409,6 +1409,7 @@ class _TranslationsPerformanceOverlayNl extends TranslationsPerformanceOverlayEn @override String get maxCll => 'MaxCLL'; @override String get maxFall => 'MaxFALL'; @override String get cacheUsed => 'Cache gebruikt'; + @override String get cacheLimit => 'Cachelimiet'; @override String get speed => 'Snelheid'; @override String get player => 'Speler'; @override String get memory => 'Geheugen'; @@ -3015,6 +3016,7 @@ extension on TranslationsNl { 'performanceOverlay.maxCll' => 'MaxCLL', 'performanceOverlay.maxFall' => 'MaxFALL', 'performanceOverlay.cacheUsed' => 'Cache gebruikt', + 'performanceOverlay.cacheLimit' => 'Cachelimiet', 'performanceOverlay.speed' => 'Snelheid', 'performanceOverlay.player' => 'Speler', 'performanceOverlay.memory' => 'Geheugen', diff --git a/lib/i18n/strings_pl.g.dart b/lib/i18n/strings_pl.g.dart index cc91feed..338a24ac 100644 --- a/lib/i18n/strings_pl.g.dart +++ b/lib/i18n/strings_pl.g.dart @@ -1409,6 +1409,7 @@ class _TranslationsPerformanceOverlayPl extends TranslationsPerformanceOverlayEn @override String get maxCll => 'MaxCLL'; @override String get maxFall => 'MaxFALL'; @override String get cacheUsed => 'Użyty cache'; + @override String get cacheLimit => 'Limit cache\'u'; @override String get speed => 'Szybkość'; @override String get player => 'Odtwarzacz'; @override String get memory => 'Pamięć'; @@ -3015,6 +3016,7 @@ extension on TranslationsPl { 'performanceOverlay.maxCll' => 'MaxCLL', 'performanceOverlay.maxFall' => 'MaxFALL', 'performanceOverlay.cacheUsed' => 'Użyty cache', + 'performanceOverlay.cacheLimit' => 'Limit cache\'u', 'performanceOverlay.speed' => 'Szybkość', 'performanceOverlay.player' => 'Odtwarzacz', 'performanceOverlay.memory' => 'Pamięć', diff --git a/lib/i18n/strings_pt.g.dart b/lib/i18n/strings_pt.g.dart index 0c546b71..07683f88 100644 --- a/lib/i18n/strings_pt.g.dart +++ b/lib/i18n/strings_pt.g.dart @@ -1409,6 +1409,7 @@ class _TranslationsPerformanceOverlayPt extends TranslationsPerformanceOverlayEn @override String get maxCll => 'MaxCLL'; @override String get maxFall => 'MaxFALL'; @override String get cacheUsed => 'Cache usado'; + @override String get cacheLimit => 'Limite do cache'; @override String get speed => 'Velocidade'; @override String get player => 'Player'; @override String get memory => 'Memória'; @@ -3015,6 +3016,7 @@ extension on TranslationsPt { 'performanceOverlay.maxCll' => 'MaxCLL', 'performanceOverlay.maxFall' => 'MaxFALL', 'performanceOverlay.cacheUsed' => 'Cache usado', + 'performanceOverlay.cacheLimit' => 'Limite do cache', 'performanceOverlay.speed' => 'Velocidade', 'performanceOverlay.player' => 'Player', 'performanceOverlay.memory' => 'Memória', diff --git a/lib/i18n/strings_ru.g.dart b/lib/i18n/strings_ru.g.dart index a0bcba7d..f25f3461 100644 --- a/lib/i18n/strings_ru.g.dart +++ b/lib/i18n/strings_ru.g.dart @@ -1409,6 +1409,7 @@ class _TranslationsPerformanceOverlayRu extends TranslationsPerformanceOverlayEn @override String get maxCll => 'MaxCLL'; @override String get maxFall => 'MaxFALL'; @override String get cacheUsed => 'Кэш использован'; + @override String get cacheLimit => 'Лимит кэша'; @override String get speed => 'Скорость'; @override String get player => 'Плеер'; @override String get memory => 'Память'; @@ -3015,6 +3016,7 @@ extension on TranslationsRu { 'performanceOverlay.maxCll' => 'MaxCLL', 'performanceOverlay.maxFall' => 'MaxFALL', 'performanceOverlay.cacheUsed' => 'Кэш использован', + 'performanceOverlay.cacheLimit' => 'Лимит кэша', 'performanceOverlay.speed' => 'Скорость', 'performanceOverlay.player' => 'Плеер', 'performanceOverlay.memory' => 'Память', diff --git a/lib/i18n/strings_sv.g.dart b/lib/i18n/strings_sv.g.dart index 529fd6ef..3f2539b2 100644 --- a/lib/i18n/strings_sv.g.dart +++ b/lib/i18n/strings_sv.g.dart @@ -1409,6 +1409,7 @@ class _TranslationsPerformanceOverlaySv extends TranslationsPerformanceOverlayEn @override String get maxCll => 'MaxCLL'; @override String get maxFall => 'MaxFALL'; @override String get cacheUsed => 'Cache använd'; + @override String get cacheLimit => 'Cachegräns'; @override String get speed => 'Hastighet'; @override String get player => 'Spelare'; @override String get memory => 'Minne'; @@ -3015,6 +3016,7 @@ extension on TranslationsSv { 'performanceOverlay.maxCll' => 'MaxCLL', 'performanceOverlay.maxFall' => 'MaxFALL', 'performanceOverlay.cacheUsed' => 'Cache använd', + 'performanceOverlay.cacheLimit' => 'Cachegräns', 'performanceOverlay.speed' => 'Hastighet', 'performanceOverlay.player' => 'Spelare', 'performanceOverlay.memory' => 'Minne', diff --git a/lib/i18n/strings_zh.g.dart b/lib/i18n/strings_zh.g.dart index 609f1ffa..8f04845f 100644 --- a/lib/i18n/strings_zh.g.dart +++ b/lib/i18n/strings_zh.g.dart @@ -1409,6 +1409,7 @@ class _TranslationsPerformanceOverlayZh extends TranslationsPerformanceOverlayEn @override String get maxCll => 'MaxCLL'; @override String get maxFall => 'MaxFALL'; @override String get cacheUsed => '已用缓存'; + @override String get cacheLimit => '缓存限制'; @override String get speed => '速度'; @override String get player => '播放器'; @override String get memory => '内存'; @@ -3015,6 +3016,7 @@ extension on TranslationsZh { 'performanceOverlay.maxCll' => 'MaxCLL', 'performanceOverlay.maxFall' => 'MaxFALL', 'performanceOverlay.cacheUsed' => '已用缓存', + 'performanceOverlay.cacheLimit' => '缓存限制', 'performanceOverlay.speed' => '速度', 'performanceOverlay.player' => '播放器', 'performanceOverlay.memory' => '内存', diff --git a/lib/i18n/sv.i18n.json b/lib/i18n/sv.i18n.json index ba101598..918a688c 100644 --- a/lib/i18n/sv.i18n.json +++ b/lib/i18n/sv.i18n.json @@ -1187,6 +1187,7 @@ "maxCll": "MaxCLL", "maxFall": "MaxFALL", "cacheUsed": "Cache använd", + "cacheLimit": "Cachegräns", "speed": "Hastighet", "player": "Spelare", "memory": "Minne", diff --git a/lib/i18n/zh.i18n.json b/lib/i18n/zh.i18n.json index ca58d201..87be9a1c 100644 --- a/lib/i18n/zh.i18n.json +++ b/lib/i18n/zh.i18n.json @@ -1187,6 +1187,7 @@ "maxCll": "MaxCLL", "maxFall": "MaxFALL", "cacheUsed": "已用缓存", + "cacheLimit": "缓存限制", "speed": "速度", "player": "播放器", "memory": "内存", diff --git a/lib/widgets/video_controls/widgets/performance_overlay/performance_overlay.dart b/lib/widgets/video_controls/widgets/performance_overlay/performance_overlay.dart index cdf2ebad..06be9806 100644 --- a/lib/widgets/video_controls/widgets/performance_overlay/performance_overlay.dart +++ b/lib/widgets/video_controls/widgets/performance_overlay/performance_overlay.dart @@ -101,6 +101,7 @@ class _PlayerPerformanceOverlayState extends State { _buildSection(Symbols.memory_rounded, t.performanceOverlay.buffer, [ _metric(t.fileInfo.duration, _stats.cacheDurationFormatted), if (isMpv) _metric(t.performanceOverlay.cacheUsed, _stats.cacheUsedFormatted), + if (isMpv) _metric(t.performanceOverlay.cacheLimit, _stats.cacheLimitFormatted), if (isMpv) _metric(t.performanceOverlay.speed, _stats.cacheSpeedFormatted), ]), _buildSection(Symbols.apps_rounded, t.performanceOverlay.app, [ diff --git a/lib/widgets/video_controls/widgets/performance_overlay/performance_stats.dart b/lib/widgets/video_controls/widgets/performance_overlay/performance_stats.dart index 4376f2ae..79bb51a1 100644 --- a/lib/widgets/video_controls/widgets/performance_overlay/performance_stats.dart +++ b/lib/widgets/video_controls/widgets/performance_overlay/performance_stats.dart @@ -50,6 +50,7 @@ class PerformanceStats { // Buffer metrics final int? cacheUsed; + final int? cacheLimit; final double? cacheSpeed; final double? cacheDuration; @@ -102,6 +103,7 @@ class PerformanceStats { this.frameDropCount, this.decoderFrameDropCount, this.cacheUsed, + this.cacheLimit, this.cacheSpeed, this.cacheDuration, this.dvConversionActive = false, @@ -152,6 +154,7 @@ class PerformanceStats { frameDropCount = null, decoderFrameDropCount = null, cacheUsed = null, + cacheLimit = null, cacheSpeed = null, cacheDuration = null, dvConversionActive = false, @@ -220,6 +223,13 @@ class PerformanceStats { return '${mb.toStringAsFixed(1)} MB'; } + /// Format cache limit in MB. + String get cacheLimitFormatted { + if (cacheLimit == null || cacheLimit! <= 0) return 'N/A'; + final mb = cacheLimit! / (1024 * 1024); + return '${mb.toStringAsFixed(1)} MB'; + } + /// Format cache speed in MB/s. String get cacheSpeedFormatted { if (cacheSpeed == null) return 'N/A'; diff --git a/lib/widgets/video_controls/widgets/performance_overlay/performance_stats_service.dart b/lib/widgets/video_controls/widgets/performance_overlay/performance_stats_service.dart index 3cef3479..9edb9ce5 100644 --- a/lib/widgets/video_controls/widgets/performance_overlay/performance_stats_service.dart +++ b/lib/widgets/video_controls/widgets/performance_overlay/performance_stats_service.dart @@ -152,6 +152,7 @@ class PerformanceStatsService { audioBitrate: _parseInt(statsMap['audio-bitrate'] as String?), avsyncChange: _parseDouble(statsMap['total-avsync-change'] as String?), cacheUsed: _parseInt(statsMap['cache-used'] as String?), + cacheLimit: _parseInt(statsMap['demuxer-max-bytes'] as String?), cacheSpeed: _parseDouble(statsMap['cache-speed'] as String?), displayFps: _parseDouble(statsMap['display-fps'] as String?), frameDropCount: _parseInt(statsMap['frame-drop-count'] as String?), @@ -234,10 +235,12 @@ class PerformanceStatsService { player.getProperty('audio-params/hr-channels'), // 9 player.getProperty('audio-bitrate'), // 10 player.getProperty('total-avsync-change'), // 11 - player.getProperty('cache-speed'), // 12 - player.getProperty('frame-drop-count'), // 13 - player.getProperty('decoder-frame-drop-count'), // 14 - player.getProperty('demuxer-cache-duration'), // 15 + player.getProperty('cache-used'), // 12 + player.getProperty('demuxer-max-bytes'), // 13 + player.getProperty('cache-speed'), // 14 + player.getProperty('frame-drop-count'), // 15 + player.getProperty('decoder-frame-drop-count'), // 16 + player.getProperty('demuxer-cache-duration'), // 17 ]); final hasVideo = results[1] != null; @@ -287,10 +290,12 @@ class PerformanceStatsService { audioChannels: results[9], audioBitrate: _parseInt(results[10]), avsyncChange: _parseDouble(results[11]), - cacheSpeed: _parseDouble(results[12]), - frameDropCount: _parseInt(results[13]), - decoderFrameDropCount: _parseInt(results[14]), - cacheDuration: _parseDouble(results[15]), + cacheUsed: _parseInt(results[12]), + cacheLimit: _parseInt(results[13]), + cacheSpeed: _parseDouble(results[14]), + frameDropCount: _parseInt(results[15]), + decoderFrameDropCount: _parseInt(results[16]), + cacheDuration: _parseDouble(results[17]), // Video-dependent properties displayFps: _parseDouble(videoResults?.first), pixelformat: videoResults?[1],