From a337bd5605aa308ae7886dd244ed859b56caa3f1 Mon Sep 17 00:00:00 2001 From: Kent Johnson Date: Sat, 13 Jan 2024 14:41:29 -0600 Subject: [PATCH 1/3] Make latency stats floats, report 1 decimal place instead of truncating --- app/src/main/java/com/limelight/Game.java | 67 +++++++++---------- .../video/MediaCodecDecoderRenderer.java | 14 ++-- 2 files changed, 37 insertions(+), 44 deletions(-) diff --git a/app/src/main/java/com/limelight/Game.java b/app/src/main/java/com/limelight/Game.java index 78754bf039..c82aeb22fe 100644 --- a/app/src/main/java/com/limelight/Game.java +++ b/app/src/main/java/com/limelight/Game.java @@ -85,6 +85,7 @@ import java.security.cert.CertificateException; import java.security.cert.CertificateFactory; import java.security.cert.X509Certificate; +import java.text.DecimalFormat; import java.util.Locale; @@ -1133,46 +1134,44 @@ protected void onStop() { stopConnection(); if (prefConfig.enableLatencyToast) { - int averageEndToEndLat = decoderRenderer.getAverageEndToEndLatency(); - int averageDecoderLat = decoderRenderer.getAverageDecoderLatency(); - String message = null; - if (averageEndToEndLat > 0) { - message = getResources().getString(R.string.conn_client_latency)+" "+averageEndToEndLat+" ms"; - if (averageDecoderLat > 0) { - message += " ("+getResources().getString(R.string.conn_client_latency_hw)+" "+averageDecoderLat+" ms)"; - } - } - else if (averageDecoderLat > 0) { - message = getResources().getString(R.string.conn_hardware_latency)+" "+averageDecoderLat+" ms"; - } + // Will format to match `\d+\.\d` (formats 1f as "1.0", 0.12f as "0.1", and 12.34f as "12.3") + DecimalFormat decimalFormat = new DecimalFormat("0.0"); + final String millisecondSuffix = " ms"; + + String message = getResources().getString(R.string.conn_client_latency) + + ' ' + + decimalFormat.format(decoderRenderer.getAverageEndToEndLatency()) + + millisecondSuffix + + " (" + + getResources().getString(R.string.conn_client_latency_hw) + + ' ' + + decimalFormat.format(decoderRenderer.getAverageDecoderLatency()) + + millisecondSuffix + + ")"; // Add the video codec to the post-stream toast - if (message != null) { - message += " ["; - - if ((videoFormat & MoonBridge.VIDEO_FORMAT_MASK_H264) != 0) { - message += "H.264"; - } - else if ((videoFormat & MoonBridge.VIDEO_FORMAT_MASK_H265) != 0) { - message += "HEVC"; - } - else if ((videoFormat & MoonBridge.VIDEO_FORMAT_MASK_AV1) != 0) { - message += "AV1"; - } - else { - message += "UNKNOWN"; - } + message += " ["; - if ((videoFormat & MoonBridge.VIDEO_FORMAT_MASK_10BIT) != 0) { - message += " HDR"; - } - - message += "]"; + if ((videoFormat & MoonBridge.VIDEO_FORMAT_MASK_H264) != 0) { + message += "H.264"; + } + else if ((videoFormat & MoonBridge.VIDEO_FORMAT_MASK_H265) != 0) { + message += "HEVC"; + } + else if ((videoFormat & MoonBridge.VIDEO_FORMAT_MASK_AV1) != 0) { + message += "AV1"; + } + else { + message += "UNKNOWN"; } - if (message != null) { - Toast.makeText(this, message, Toast.LENGTH_LONG).show(); + if ((videoFormat & MoonBridge.VIDEO_FORMAT_MASK_10BIT) != 0) { + message += " HDR"; } + + message += "]"; + + Toast.makeText(this, message, Toast.LENGTH_LONG).show(); } // Clear the tombstone count if we terminated normally diff --git a/app/src/main/java/com/limelight/binding/video/MediaCodecDecoderRenderer.java b/app/src/main/java/com/limelight/binding/video/MediaCodecDecoderRenderer.java index 9bda0e6b49..d48e7a4380 100644 --- a/app/src/main/java/com/limelight/binding/video/MediaCodecDecoderRenderer.java +++ b/app/src/main/java/com/limelight/binding/video/MediaCodecDecoderRenderer.java @@ -1804,18 +1804,12 @@ public int getCapabilities() { return capabilities; } - public int getAverageEndToEndLatency() { - if (globalVideoStats.totalFramesReceived == 0) { - return 0; - } - return (int)(globalVideoStats.totalTimeMs / globalVideoStats.totalFramesReceived); + public float getAverageEndToEndLatency() { + return globalVideoStats.totalTimeMs / (float)globalVideoStats.totalFramesReceived; } - public int getAverageDecoderLatency() { - if (globalVideoStats.totalFramesReceived == 0) { - return 0; - } - return (int)(globalVideoStats.decoderTimeMs / globalVideoStats.totalFramesReceived); + public float getAverageDecoderLatency() { + return globalVideoStats.decoderTimeMs / (float)globalVideoStats.totalFramesReceived; } static class DecoderHungException extends RuntimeException { From eb4cd73b805c506e1899e57f17a8e7c4be110895 Mon Sep 17 00:00:00 2001 From: Kent Johnson Date: Sun, 21 Jan 2024 13:20:53 -0600 Subject: [PATCH 2/3] Put stats on separate lines to ease visual parsing --- app/src/main/java/com/limelight/Game.java | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/com/limelight/Game.java b/app/src/main/java/com/limelight/Game.java index c82aeb22fe..1eefd84002 100644 --- a/app/src/main/java/com/limelight/Game.java +++ b/app/src/main/java/com/limelight/Game.java @@ -1142,12 +1142,11 @@ protected void onStop() { + ' ' + decimalFormat.format(decoderRenderer.getAverageEndToEndLatency()) + millisecondSuffix - + " (" - + getResources().getString(R.string.conn_client_latency_hw) + + '\n' + + getResources().getString(R.string.conn_hardware_latency) + ' ' + decimalFormat.format(decoderRenderer.getAverageDecoderLatency()) - + millisecondSuffix - + ")"; + + millisecondSuffix; // Add the video codec to the post-stream toast message += " ["; From d1230432039f272ad550fb0017d94f8b705b5280 Mon Sep 17 00:00:00 2001 From: Kent Johnson Date: Sun, 21 Jan 2024 13:27:22 -0600 Subject: [PATCH 3/3] Remove vestigial conn_client_latency_hw string --- app/src/main/res/values-bg/strings.xml | 1 - app/src/main/res/values-cs/strings.xml | 1 - app/src/main/res/values-de/strings.xml | 1 - app/src/main/res/values-el/strings.xml | 1 - app/src/main/res/values-es/strings.xml | 1 - app/src/main/res/values-fr/strings.xml | 1 - app/src/main/res/values-hu/strings.xml | 1 - app/src/main/res/values-in/strings.xml | 1 - app/src/main/res/values-it/strings.xml | 1 - app/src/main/res/values-iw/strings.xml | 1 - app/src/main/res/values-ja/strings.xml | 1 - app/src/main/res/values-ko/strings.xml | 1 - app/src/main/res/values-nb-rNO/strings.xml | 1 - app/src/main/res/values-nl/strings.xml | 1 - app/src/main/res/values-pt-rBR/strings.xml | 1 - app/src/main/res/values-pt/strings.xml | 1 - app/src/main/res/values-ro/strings.xml | 1 - app/src/main/res/values-ru/strings.xml | 1 - app/src/main/res/values-sv/strings.xml | 1 - app/src/main/res/values-tr/strings.xml | 1 - app/src/main/res/values-uk/strings.xml | 1 - app/src/main/res/values-vi/strings.xml | 1 - app/src/main/res/values-zh-rCN/strings.xml | 1 - app/src/main/res/values-zh-rTW/strings.xml | 1 - app/src/main/res/values/strings.xml | 1 - 25 files changed, 25 deletions(-) diff --git a/app/src/main/res/values-bg/strings.xml b/app/src/main/res/values-bg/strings.xml index fffdb4af55..2bc4723f64 100644 --- a/app/src/main/res/values-bg/strings.xml +++ b/app/src/main/res/values-bg/strings.xml @@ -6,7 +6,6 @@ Балансирано с FPS лимит Предпочитане на най-плавно видео (може значително да увеличи латентността) Предупреждение: Вашата активна мрежова връзка се измерва! - латентност на хардуерния декодер: Средна латентност на хардуерно декодиране: IP адрес на GeForce PC Изпращане на Wake-On-LAN заявка diff --git a/app/src/main/res/values-cs/strings.xml b/app/src/main/res/values-cs/strings.xml index 1947ff11a0..b459892562 100644 --- a/app/src/main/res/values-cs/strings.xml +++ b/app/src/main/res/values-cs/strings.xml @@ -3,7 +3,6 @@ Připojování Varování: Vaše aktivní připojení je měřené! Spouštění se nezdařilo - zpoždění hardwarového dekodéru: Spojení ukončeno Nativní celá obrazovka Umožňuje fungování zvukových efektů během streamování, ale může zvýšit zpoždění zvuku diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index a6cde6e2aa..4fc3c15893 100644 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -71,7 +71,6 @@ Verbindung starten Warnung: Das Datentransfervolumen deiner Netzwerkverbindung ist limitiert! Durchschnittliche Frame-Dekodierungslatenz: - Hardware-Dekodierungslatenz: Durchschnittliche Hardware-Dekodierungslatenz: Starten Verbindungsfehler diff --git a/app/src/main/res/values-el/strings.xml b/app/src/main/res/values-el/strings.xml index 1629869dbb..8c7cb64631 100644 --- a/app/src/main/res/values-el/strings.xml +++ b/app/src/main/res/values-el/strings.xml @@ -59,7 +59,6 @@ Έναρξη σύνδεσης Προειδοποίηση: Η ενεργή σύνδεσή σας στο δίκτυο έχει όριο δεδομένων! Μέσος χρόνος αποκωδικοποίησης πλαισίων: - Λανθάνων χρόνος αποκωδικοποιητή υλικού: Μέση καθυστέρηση αποκωδικοποίησης υλικού: Εκκίνηση Η σύνδεση τερματίστηκε diff --git a/app/src/main/res/values-es/strings.xml b/app/src/main/res/values-es/strings.xml index aa1d7521cc..8bfe7634ab 100644 --- a/app/src/main/res/values-es/strings.xml +++ b/app/src/main/res/values-es/strings.xml @@ -39,7 +39,6 @@ Iniciando conexión Aviso: ¡Tu conexión de red está siendo medida! Latencia media decodificando frames: - latencia decodificación por hardware: Latencia media decodificando por hardware: Iniciando Error de conexión diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml index f883b3bb92..87b96e75f2 100644 --- a/app/src/main/res/values-fr/strings.xml +++ b/app/src/main/res/values-fr/strings.xml @@ -69,7 +69,6 @@ Démarrage de la connection Attention : Votre connexion réseau active est mesurée ! Latence moyenne de décodage de trame : - Latence du décodeur matériel : Latence moyenne du décodage matériel : Démarrage Erreur de connexion diff --git a/app/src/main/res/values-hu/strings.xml b/app/src/main/res/values-hu/strings.xml index f937f3b4a9..57236990f8 100644 --- a/app/src/main/res/values-hu/strings.xml +++ b/app/src/main/res/values-hu/strings.xml @@ -131,7 +131,6 @@ A kapcsolat megszakadt A kapcsolat megszűnt Nem sikerült elindítani - hardveres dekóder késleltetése: Átlagos keret dekódolási késés: Figyelem: Az aktív hálózati kapcsolatod mérésre került! Kapcsolódás diff --git a/app/src/main/res/values-in/strings.xml b/app/src/main/res/values-in/strings.xml index d112010d10..e437f586c1 100644 --- a/app/src/main/res/values-in/strings.xml +++ b/app/src/main/res/values-in/strings.xml @@ -49,7 +49,6 @@ Memulai koneksi Peringatan: Koneksi aktif Anda terbatas! Rata-rata latensi dekoding bingkai: - Latensi dekoder perangkat keras: Rata-rata latensi dekoder perangkat keras: Memulai Koneksi eror diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml index 8913aea019..d18e7baf9a 100644 --- a/app/src/main/res/values-it/strings.xml +++ b/app/src/main/res/values-it/strings.xml @@ -51,7 +51,6 @@ Avvio connessione Attenzione: la rete attiva prevede costi aggiuntivi in base all\'utilizzo! Latenza decodifica fotogrammi media: - latenza decodificatore hardware: Latenza decodificatore hardware media: Avvio in corso Errore connessione diff --git a/app/src/main/res/values-iw/strings.xml b/app/src/main/res/values-iw/strings.xml index ec17472f1f..068d06b4fd 100644 --- a/app/src/main/res/values-iw/strings.xml +++ b/app/src/main/res/values-iw/strings.xml @@ -104,7 +104,6 @@ החיבור הופסק נאבד החיבור למחשב אתה בטוח שאתה רוצה להסיר מחשב זה\? - מהירות פענוח חומרתי: נכשל להפעיל מחפש מחשבים ברשת המקומית שלך... \n diff --git a/app/src/main/res/values-ja/strings.xml b/app/src/main/res/values-ja/strings.xml index 92d25d6d31..6673608d09 100644 --- a/app/src/main/res/values-ja/strings.xml +++ b/app/src/main/res/values-ja/strings.xml @@ -35,7 +35,6 @@ 接続を開始 警告: 現在使用中のネットワークは従量制課金接続です デコードの平均待ち時間: - ハードウェアデコーダーの待ち時間 ハードウェアデコーダーの平均待ち時間: 開始 接続エラー diff --git a/app/src/main/res/values-ko/strings.xml b/app/src/main/res/values-ko/strings.xml index 45d4ff9021..2bce32314e 100644 --- a/app/src/main/res/values-ko/strings.xml +++ b/app/src/main/res/values-ko/strings.xml @@ -44,7 +44,6 @@ 연결 시작 경고: 데이터 요금이 부과될 수 있습니다! 평균 프레임 디코딩 지연: - 하드웨어 디코더 지연: 평균 하드웨어 디코딩 지연: 시작 중 연결 오류 diff --git a/app/src/main/res/values-nb-rNO/strings.xml b/app/src/main/res/values-nb-rNO/strings.xml index 730c4ee42f..7a3456864b 100644 --- a/app/src/main/res/values-nb-rNO/strings.xml +++ b/app/src/main/res/values-nb-rNO/strings.xml @@ -18,7 +18,6 @@ \nForsikre deg om at GameStream er påslått i GeForce Experience SHEILD-innstillingene. Starter Gjennomsnittlig latens for maskinvarerammedekoding: - maskinvaredekoderlatens: Gjennomsnittlig latens for bilderammedekoding: Sjekk om din brannmur og portvideresendingsreglene for port(ene): Noe gikk galt på din verts-PC under oppstart av strømmen. diff --git a/app/src/main/res/values-nl/strings.xml b/app/src/main/res/values-nl/strings.xml index 47900bf7e4..b1ab8c683f 100644 --- a/app/src/main/res/values-nl/strings.xml +++ b/app/src/main/res/values-nl/strings.xml @@ -39,7 +39,6 @@ Verbinding starten Waarschuwing: Actieve internet verbinding bevat een datalimiet! Gemiddelde frame decoding reactietijd: - hardware decoder reactietijd: Gemiddelde hardware decoding reactietijd: Starten Verbindingsprobleem diff --git a/app/src/main/res/values-pt-rBR/strings.xml b/app/src/main/res/values-pt-rBR/strings.xml index 4f12139024..6dc9960e9c 100644 --- a/app/src/main/res/values-pt-rBR/strings.xml +++ b/app/src/main/res/values-pt-rBR/strings.xml @@ -119,7 +119,6 @@ Resetar Configurações de Vídeo Aviso: Sua conexão de rede atual é limitada! Latência média de decodificação de quadros: - latência do decodificador de hardware: Latência média de decodificação de hardware: Iniciando Erro de Conexão diff --git a/app/src/main/res/values-pt/strings.xml b/app/src/main/res/values-pt/strings.xml index 4853e94a4d..d42c92ba32 100644 --- a/app/src/main/res/values-pt/strings.xml +++ b/app/src/main/res/values-pt/strings.xml @@ -51,7 +51,6 @@ \nSe o problema persistir, tente reinstalar os drivers da GPU e o GeForce Experience. Aviso: A sua conexão de rede atual é limitada! Latência média de decodificação de quadros: - latência do decodificador de hardware: Falha ao iniciar Conexão Encerrada A conexão foi encerrada diff --git a/app/src/main/res/values-ro/strings.xml b/app/src/main/res/values-ro/strings.xml index aa5aef10bc..06ee1fba50 100644 --- a/app/src/main/res/values-ro/strings.xml +++ b/app/src/main/res/values-ro/strings.xml @@ -62,7 +62,6 @@ Se pornește conexiunea Atenție: Conexiunea ta curentă este contorizată! Latența medie a decodării cadrelor: - latența decodorului hardware: Latența medie a decodării cadrelor (hardware): Se pornește Eroare la conectare diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index 93a2736023..61ddb11641 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -46,7 +46,6 @@ Подключение Внимание: Происходит измерение Вашего сетевого соединения! Средняя задержка декодирования кадра: - задержка аппаратного декодирования: Средняя задержка апаратного декодирования: Запуск Ошибка соединения diff --git a/app/src/main/res/values-sv/strings.xml b/app/src/main/res/values-sv/strings.xml index c6624b85df..553438b35b 100644 --- a/app/src/main/res/values-sv/strings.xml +++ b/app/src/main/res/values-sv/strings.xml @@ -53,7 +53,6 @@ Startar fogning Varning: Din aktiva nätverksfogning är mätbar! Genomsnittlig latenstid för ramavkodning: - Latency för hårdvaruavkodare: Genomsnittlig latenstid för maskinvaruavkodning: Börjar Fogningsfel diff --git a/app/src/main/res/values-tr/strings.xml b/app/src/main/res/values-tr/strings.xml index 1750e76f1b..cf0c31073d 100644 --- a/app/src/main/res/values-tr/strings.xml +++ b/app/src/main/res/values-tr/strings.xml @@ -130,7 +130,6 @@ Bağlantı başlatılıyor Uyarı: Aktif ağ bağlantınız ölçülüdür! Ortalama kare kod çözme gecikmesi: - donanım kod çözücü gecikmesi: Yerel Ağda Uyandırma isteği gönder Uygulamalar yenileniyor… Hata diff --git a/app/src/main/res/values-uk/strings.xml b/app/src/main/res/values-uk/strings.xml index 3a71b45fc0..b283485b6e 100644 --- a/app/src/main/res/values-uk/strings.xml +++ b/app/src/main/res/values-uk/strings.xml @@ -35,7 +35,6 @@ Підключення Увага: Ваше мережеве з\'єднання вимірюється оператором! Середня затримка розцифрування кадру: - затримка апаратного розцифрування: Середня затримка апаратного розцифрування: Запуск Помилка з\'єднання diff --git a/app/src/main/res/values-vi/strings.xml b/app/src/main/res/values-vi/strings.xml index a85727d7fc..339013556d 100644 --- a/app/src/main/res/values-vi/strings.xml +++ b/app/src/main/res/values-vi/strings.xml @@ -125,7 +125,6 @@ Lỗi kết nối Đang bắt đầu Độ trễ giải mã phần cứng trung bình: - độ trễ trình giải mã phần cứng: Độ trễ giải mã khung hình trung bình: Cảnh báo: Kết nối mạng đang hoạt động là có trả phí! Đang lập kết nối diff --git a/app/src/main/res/values-zh-rCN/strings.xml b/app/src/main/res/values-zh-rCN/strings.xml index 5d55085fb7..b6eab1ea90 100644 --- a/app/src/main/res/values-zh-rCN/strings.xml +++ b/app/src/main/res/values-zh-rCN/strings.xml @@ -52,7 +52,6 @@ 启动连接中 警告:你正在使用移动网络连接! 平均每帧解码延迟: - 硬件解码器延迟: 硬件解码器平均延迟: 启动中 连接错误 diff --git a/app/src/main/res/values-zh-rTW/strings.xml b/app/src/main/res/values-zh-rTW/strings.xml index 7f3a3429d8..59e365178a 100644 --- a/app/src/main/res/values-zh-rTW/strings.xml +++ b/app/src/main/res/values-zh-rTW/strings.xml @@ -52,7 +52,6 @@ 正在啟動連線 警告:你正在使用行動網路連線! 平均每個影格解碼延時: - 硬體解碼器延時: 硬體解碼器平均延時: 正在啟動 連線錯誤 diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 64e263f689..af7d839f2c 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -84,7 +84,6 @@ Starting connection Warning: Your active network connection is metered! Average frame decoding latency: - hardware decoder latency: Average hardware decoding latency: Starting Connection Error