Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Latency message after streaming now reports with decimal point #1314

Open
wants to merge 3 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
66 changes: 32 additions & 34 deletions app/src/main/java/com/limelight/Game.java
Original file line number Diff line number Diff line change
Expand Up @@ -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;


Expand Down Expand Up @@ -1133,46 +1134,43 @@ 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");
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Will this do the right thing for locales that use other separators (such as ,) for decimal values?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Great catch. I had assumed it would inherit the same local as getResources().getString(), but that may be wrong according to the docs:

To obtain a NumberFormat for a specific locale, including the default locale, call one of NumberFormat's factory methods, such as getInstance(). In general, do not call the DecimalFormat constructors directly, since the NumberFormat factory methods may return subclasses other than DecimalFormat. If you need to customize the format object, do something like this:

NumberFormat f = NumberFormat.getInstance(loc);
 if (f instanceof DecimalFormat) {
     ((DecimalFormat) f).setDecimalSeparatorAlwaysShown(true);
 }

Stay tuned for a fix...

final String millisecondSuffix = " ms";
Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Speaking of localization, I noticed in someone's Discord video that there are localized versions of the millisecond suffix that we sometimes use and sometimes don't:

image

I'll see if there is an existing string I can leverage instead of hardcoding it as we have been in this method.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hmm, it appears I'd have to make a new localized string or edit the existing ones to be format strings. Am I allowed to change or add new strings, or is that discouraged because it breaks existing localization? Would it be better for me to surgically steal the localized string for the suffix (like that мс in the Russian(?) string above) so that we don't have to get the localizers to do another pass?

Copy link
Author

@kentyman23 kentyman23 Mar 11, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@cgutman, please let me know which way you'd prefer. The former seems more "correct", but the latter seems easier and probably safe.

Copy link
Contributor

@ReenigneArcher ReenigneArcher Jul 25, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'd have to make a new localized string

@kentyman23 I think this is the correct approach.

@cgutman I'm wondering how the translations are occurring. It seems like it's all manually done through regular PRs? I could set something up on CrowdIn like I do for LizardByte and Sunshine. I have a mono project on CrowdIn that handles all the translations for code projects https://crowdin.com/project/lizardbyte (and another for docs). If you select any language you can see how the translations are divided by GitHub repo and priority. CrowdIn is free for open source. I opted to put everything in one project for ease of management. Let me know if you want me to setup something similar for Moonlight projects.

Edit: I see that translations occur at https://hosted.weblate.org/projects/moonlight/moonlight-android/ ... is only the ./app/src/main/res/values/strings.xml supposed to be modified in git?


String message = getResources().getString(R.string.conn_client_latency)
+ ' '
+ decimalFormat.format(decoderRenderer.getAverageEndToEndLatency())
+ millisecondSuffix
+ '\n'
+ getResources().getString(R.string.conn_hardware_latency)
+ ' '
+ 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
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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 {
Expand Down
1 change: 0 additions & 1 deletion app/src/main/res/values-bg/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@
<string name="pacing_balanced_alt">Балансирано с FPS лимит</string>
<string name="pacing_smoothness">Предпочитане на най-плавно видео (може значително да увеличи латентността)</string>
<string name="conn_metered">Предупреждение: Вашата активна мрежова връзка се измерва!</string>
<string name="conn_client_latency_hw">латентност на хардуерния декодер:</string>
<string name="conn_hardware_latency">Средна латентност на хардуерно декодиране:</string>
<string name="ip_hint">IP адрес на GeForce PC</string>
<string name="pcview_menu_send_wol">Изпращане на Wake-On-LAN заявка</string>
Expand Down
1 change: 0 additions & 1 deletion app/src/main/res/values-cs/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@
<string name="conn_establishing_title">Připojování</string>
<string name="conn_metered">Varování: Vaše aktivní připojení je měřené!</string>
<string name="conn_error_msg">Spouštění se nezdařilo</string>
<string name="conn_client_latency_hw">zpoždění hardwarového dekodéru:</string>
<string name="conn_terminated_title">Spojení ukončeno</string>
<string name="resolution_prefix_native_fullscreen">Nativní celá obrazovka</string>
<string name="summary_checkbox_enable_audiofx">Umožňuje fungování zvukových efektů během streamování, ale může zvýšit zpoždění zvuku</string>
Expand Down
1 change: 0 additions & 1 deletion app/src/main/res/values-de/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,6 @@
<string name="conn_establishing_msg">Verbindung starten</string>
<string name="conn_metered">Warnung: Das Datentransfervolumen deiner Netzwerkverbindung ist limitiert!</string>
<string name="conn_client_latency">Durchschnittliche Frame-Dekodierungslatenz:</string>
<string name="conn_client_latency_hw">Hardware-Dekodierungslatenz:</string>
<string name="conn_hardware_latency">Durchschnittliche Hardware-Dekodierungslatenz:</string>
<string name="conn_starting">Starten</string>
<string name="conn_error_title">Verbindungsfehler</string>
Expand Down
1 change: 0 additions & 1 deletion app/src/main/res/values-el/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,6 @@
<string name="conn_establishing_msg">Έναρξη σύνδεσης</string>
<string name="conn_metered">Προειδοποίηση: Η ενεργή σύνδεσή σας στο δίκτυο έχει όριο δεδομένων!</string>
<string name="conn_client_latency">Μέσος χρόνος αποκωδικοποίησης πλαισίων:</string>
<string name="conn_client_latency_hw">Λανθάνων χρόνος αποκωδικοποιητή υλικού:</string>
<string name="conn_hardware_latency">Μέση καθυστέρηση αποκωδικοποίησης υλικού:</string>
<string name="conn_starting">Εκκίνηση</string>
<string name="conn_terminated_msg">Η σύνδεση τερματίστηκε</string>
Expand Down
1 change: 0 additions & 1 deletion app/src/main/res/values-es/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,6 @@
<string name="conn_establishing_msg">Iniciando conexión</string>
<string name="conn_metered">Aviso: ¡Tu conexión de red está siendo medida!</string>
<string name="conn_client_latency">Latencia media decodificando frames:</string>
<string name="conn_client_latency_hw">latencia decodificación por hardware:</string>
<string name="conn_hardware_latency">Latencia media decodificando por hardware:</string>
<string name="conn_starting">Iniciando</string>
<string name="conn_error_title">Error de conexión</string>
Expand Down
1 change: 0 additions & 1 deletion app/src/main/res/values-fr/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,6 @@
<string name="conn_establishing_msg">Démarrage de la connection</string>
<string name="conn_metered">Attention : Votre connexion réseau active est mesurée !</string>
<string name="conn_client_latency">Latence moyenne de décodage de trame :</string>
<string name="conn_client_latency_hw">Latence du décodeur matériel :</string>
<string name="conn_hardware_latency">Latence moyenne du décodage matériel :</string>
<string name="conn_starting">Démarrage</string>
<string name="conn_error_title">Erreur de connexion</string>
Expand Down
1 change: 0 additions & 1 deletion app/src/main/res/values-hu/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -131,7 +131,6 @@
<string name="conn_terminated_msg">A kapcsolat megszakadt</string>
<string name="conn_terminated_title">A kapcsolat megszűnt</string>
<string name="conn_error_msg">Nem sikerült elindítani</string>
<string name="conn_client_latency_hw">hardveres dekóder késleltetése:</string>
<string name="conn_client_latency">Átlagos keret dekódolási késés:</string>
<string name="conn_metered">Figyelem: Az aktív hálózati kapcsolatod mérésre került!</string>
<string name="conn_establishing_msg">Kapcsolódás</string>
Expand Down
1 change: 0 additions & 1 deletion app/src/main/res/values-in/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,6 @@
<string name="conn_establishing_msg">Memulai koneksi</string>
<string name="conn_metered">Peringatan: Koneksi aktif Anda terbatas!</string>
<string name="conn_client_latency">Rata-rata latensi dekoding bingkai:</string>
<string name="conn_client_latency_hw">Latensi dekoder perangkat keras:</string>
<string name="conn_hardware_latency">Rata-rata latensi dekoder perangkat keras:</string>
<string name="conn_starting">Memulai</string>
<string name="conn_error_title">Koneksi eror</string>
Expand Down
1 change: 0 additions & 1 deletion app/src/main/res/values-it/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,6 @@
<string name="conn_establishing_msg">Avvio connessione</string>
<string name="conn_metered">Attenzione: la rete attiva prevede costi aggiuntivi in base all\'utilizzo!</string>
<string name="conn_client_latency">Latenza decodifica fotogrammi media:</string>
<string name="conn_client_latency_hw">latenza decodificatore hardware:</string>
<string name="conn_hardware_latency">Latenza decodificatore hardware media:</string>
<string name="conn_starting">Avvio in corso</string>
<string name="conn_error_title">Errore connessione</string>
Expand Down
1 change: 0 additions & 1 deletion app/src/main/res/values-iw/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -104,7 +104,6 @@
<string name="conn_terminated_title">החיבור הופסק</string>
<string name="lost_connection">נאבד החיבור למחשב</string>
<string name="delete_pc_msg">אתה בטוח שאתה רוצה להסיר מחשב זה\?</string>
<string name="conn_client_latency_hw">מהירות פענוח חומרתי:</string>
<string name="conn_error_msg">נכשל להפעיל</string>
<string name="searching_pc">מחפש מחשבים ברשת המקומית שלך...
\n
Expand Down
1 change: 0 additions & 1 deletion app/src/main/res/values-ja/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,6 @@
<string name="conn_establishing_msg">接続を開始</string>
<string name="conn_metered">警告: 現在使用中のネットワークは従量制課金接続です</string>
<string name="conn_client_latency"> デコードの平均待ち時間:</string>
<string name="conn_client_latency_hw">ハードウェアデコーダーの待ち時間</string>
<string name="conn_hardware_latency">ハードウェアデコーダーの平均待ち時間:</string>
<string name="conn_starting">開始</string>
<string name="conn_error_title">接続エラー</string>
Expand Down
1 change: 0 additions & 1 deletion app/src/main/res/values-ko/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,6 @@
<string name="conn_establishing_msg">연결 시작</string>
<string name="conn_metered">경고: 데이터 요금이 부과될 수 있습니다!</string>
<string name="conn_client_latency">평균 프레임 디코딩 지연:</string>
<string name="conn_client_latency_hw">하드웨어 디코더 지연:</string>
<string name="conn_hardware_latency">평균 하드웨어 디코딩 지연:</string>
<string name="conn_starting">시작 중</string>
<string name="conn_error_title">연결 오류</string>
Expand Down
1 change: 0 additions & 1 deletion app/src/main/res/values-nb-rNO/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,6 @@
\nForsikre deg om at GameStream er påslått i GeForce Experience SHEILD-innstillingene.</string>
<string name="conn_starting">Starter</string>
<string name="conn_hardware_latency">Gjennomsnittlig latens for maskinvarerammedekoding:</string>
<string name="conn_client_latency_hw">maskinvaredekoderlatens:</string>
<string name="conn_client_latency">Gjennomsnittlig latens for bilderammedekoding:</string>
<string name="check_ports_msg">Sjekk om din brannmur og portvideresendingsreglene for port(ene):</string>
<string name="early_termination_error">Noe gikk galt på din verts-PC under oppstart av strømmen.
Expand Down
1 change: 0 additions & 1 deletion app/src/main/res/values-nl/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,6 @@
<string name="conn_establishing_msg">Verbinding starten</string>
<string name="conn_metered">Waarschuwing: Actieve internet verbinding bevat een datalimiet!</string>
<string name="conn_client_latency">Gemiddelde frame decoding reactietijd:</string>
<string name="conn_client_latency_hw">hardware decoder reactietijd:</string>
<string name="conn_hardware_latency">Gemiddelde hardware decoding reactietijd:</string>
<string name="conn_starting">Starten</string>
<string name="conn_error_title">Verbindingsprobleem</string>
Expand Down
1 change: 0 additions & 1 deletion app/src/main/res/values-pt-rBR/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -119,7 +119,6 @@
<string name="title_decoding_reset">Resetar Configurações de Vídeo</string>
<string name="conn_metered">Aviso: Sua conexão de rede atual é limitada!</string>
<string name="conn_client_latency">Latência média de decodificação de quadros:</string>
<string name="conn_client_latency_hw">latência do decodificador de hardware:</string>
<string name="conn_hardware_latency">Latência média de decodificação de hardware:</string>
<string name="conn_starting">Iniciando</string>
<string name="conn_error_title">Erro de Conexão</string>
Expand Down
1 change: 0 additions & 1 deletion app/src/main/res/values-pt/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,6 @@
\nSe o problema persistir, tente reinstalar os drivers da GPU e o GeForce Experience.</string>
<string name="conn_metered">Aviso: A sua conexão de rede atual é limitada!</string>
<string name="conn_client_latency">Latência média de decodificação de quadros:</string>
<string name="conn_client_latency_hw">latência do decodificador de hardware:</string>
<string name="conn_error_msg">Falha ao iniciar</string>
<string name="conn_terminated_title">Conexão Encerrada</string>
<string name="conn_terminated_msg">A conexão foi encerrada</string>
Expand Down
1 change: 0 additions & 1 deletion app/src/main/res/values-ro/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,6 @@
<string name="conn_establishing_msg">Se pornește conexiunea</string>
<string name="conn_metered">Atenție: Conexiunea ta curentă este contorizată!</string>
<string name="conn_client_latency">Latența medie a decodării cadrelor:</string>
<string name="conn_client_latency_hw">latența decodorului hardware:</string>
<string name="conn_hardware_latency">Latența medie a decodării cadrelor (hardware):</string>
<string name="conn_starting">Se pornește</string>
<string name="conn_error_title">Eroare la conectare</string>
Expand Down
1 change: 0 additions & 1 deletion app/src/main/res/values-ru/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,6 @@
<string name="conn_establishing_msg">Подключение</string>
<string name="conn_metered">Внимание: Происходит измерение Вашего сетевого соединения!</string>
<string name="conn_client_latency">Средняя задержка декодирования кадра: </string>
<string name="conn_client_latency_hw">задержка аппаратного декодирования:</string>
<string name="conn_hardware_latency">Средняя задержка апаратного декодирования:</string>
<string name="conn_starting">Запуск</string>
<string name="conn_error_title">Ошибка соединения</string>
Expand Down
1 change: 0 additions & 1 deletion app/src/main/res/values-sv/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,6 @@
<string name="conn_establishing_msg">Startar fogning</string>
<string name="conn_metered">Varning: Din aktiva nätverksfogning är mätbar!</string>
<string name="conn_client_latency">Genomsnittlig latenstid för ramavkodning:</string>
<string name="conn_client_latency_hw">Latency för hårdvaruavkodare:</string>
<string name="conn_hardware_latency">Genomsnittlig latenstid för maskinvaruavkodning:</string>
<string name="conn_starting">Börjar</string>
<string name="conn_error_title">Fogningsfel</string>
Expand Down
1 change: 0 additions & 1 deletion app/src/main/res/values-tr/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -130,7 +130,6 @@
<string name="conn_establishing_msg">Bağlantı başlatılıyor</string>
<string name="conn_metered">Uyarı: Aktif ağ bağlantınız ölçülüdür!</string>
<string name="conn_client_latency">Ortalama kare kod çözme gecikmesi:</string>
<string name="conn_client_latency_hw">donanım kod çözücü gecikmesi:</string>
<string name="pcview_menu_send_wol">Yerel Ağda Uyandırma isteği gönder</string>
<string name="applist_refresh_msg">Uygulamalar yenileniyor…</string>
<string name="applist_refresh_error_title">Hata</string>
Expand Down
1 change: 0 additions & 1 deletion app/src/main/res/values-uk/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,6 @@
<string name="conn_establishing_msg">Підключення</string>
<string name="conn_metered">Увага: Ваше мережеве з\'єднання вимірюється оператором!</string>
<string name="conn_client_latency">Середня затримка розцифрування кадру:</string>
<string name="conn_client_latency_hw">затримка апаратного розцифрування:</string>
<string name="conn_hardware_latency">Середня затримка апаратного розцифрування:</string>
<string name="conn_starting">Запуск</string>
<string name="conn_error_title">Помилка з\'єднання</string>
Expand Down
1 change: 0 additions & 1 deletion app/src/main/res/values-vi/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -125,7 +125,6 @@
<string name="conn_error_title">Lỗi kết nối</string>
<string name="conn_starting">Đang bắt đầu</string>
<string name="conn_hardware_latency">Độ trễ giải mã phần cứng trung bình:</string>
<string name="conn_client_latency_hw">độ trễ trình giải mã phần cứng:</string>
<string name="conn_client_latency">Độ trễ giải mã khung hình trung bình:</string>
<string name="conn_metered">Cảnh báo: Kết nối mạng đang hoạt động là có trả phí!</string>
<string name="conn_establishing_title">Đang lập kết nối</string>
Expand Down
1 change: 0 additions & 1 deletion app/src/main/res/values-zh-rCN/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,6 @@
<string name="conn_establishing_msg"> 启动连接中 </string>
<string name="conn_metered"> 警告:你正在使用移动网络连接! </string>
<string name="conn_client_latency"> 平均每帧解码延迟:</string>
<string name="conn_client_latency_hw"> 硬件解码器延迟:</string>
<string name="conn_hardware_latency"> 硬件解码器平均延迟:</string>
<string name="conn_starting">启动中</string>
<string name="conn_error_title"> 连接错误 </string>
Expand Down
1 change: 0 additions & 1 deletion app/src/main/res/values-zh-rTW/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,6 @@
<string name="conn_establishing_msg">正在啟動連線</string>
<string name="conn_metered">警告:你正在使用行動網路連線!</string>
<string name="conn_client_latency">平均每個影格解碼延時:</string>
<string name="conn_client_latency_hw">硬體解碼器延時:</string>
<string name="conn_hardware_latency">硬體解碼器平均延時:</string>
<string name="conn_starting">正在啟動</string>
<string name="conn_error_title">連線錯誤</string>
Expand Down
1 change: 0 additions & 1 deletion app/src/main/res/values/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -84,7 +84,6 @@
<string name="conn_establishing_msg">Starting connection</string>
<string name="conn_metered">Warning: Your active network connection is metered!</string>
<string name="conn_client_latency">Average frame decoding latency:</string>
<string name="conn_client_latency_hw">hardware decoder latency:</string>
<string name="conn_hardware_latency">Average hardware decoding latency:</string>
<string name="conn_starting">Starting</string>
<string name="conn_error_title">Connection Error</string>
Expand Down