mirror of
https://gitlab.linphone.org/BC/public/linphone-android.git
synced 2026-02-02 03:39:28 +00:00
Added more call stats (loss rate & jitter buffer)
This commit is contained in:
parent
e3d356765d
commit
6d23402001
5 changed files with 99 additions and 3 deletions
|
|
@ -32,10 +32,13 @@ import org.linphone.utils.AppUtils
|
|||
class CallStatsModel @WorkerThread constructor() {
|
||||
val audioCodec = MutableLiveData<String>()
|
||||
val audioBandwidth = MutableLiveData<String>()
|
||||
val lossRate = MutableLiveData<String>()
|
||||
val jitterBuffer = MutableLiveData<String>()
|
||||
|
||||
val isVideoEnabled = MutableLiveData<Boolean>()
|
||||
val videoCodec = MutableLiveData<String>()
|
||||
val videoBandwidth = MutableLiveData<String>()
|
||||
val videoLossRate = MutableLiveData<String>()
|
||||
val videoResolution = MutableLiveData<String>()
|
||||
val videoFps = MutableLiveData<String>()
|
||||
|
||||
|
|
@ -76,6 +79,21 @@ class CallStatsModel @WorkerThread constructor() {
|
|||
"↑ $uploadBandwidth kbits/s ↓ $downloadBandwidth kbits/s"
|
||||
)
|
||||
audioBandwidth.postValue(bandwidthLabel)
|
||||
|
||||
val uploadLoss = stats.receiverLossRate.roundToInt()
|
||||
val downloadLoss = stats.localLossRate.roundToInt()
|
||||
val lossRateLabel = AppUtils.getFormattedString(
|
||||
R.string.call_stats_loss_rate_label,
|
||||
"↑ $uploadLoss% ↓ $downloadLoss%"
|
||||
)
|
||||
lossRate.postValue(lossRateLabel)
|
||||
|
||||
val jitterBufferSize = stats.jitterBufferSizeMs.roundToInt()
|
||||
val jitterBufferLabel = AppUtils.getFormattedString(
|
||||
R.string.call_stats_jitter_buffer_label,
|
||||
"$jitterBufferSize ms"
|
||||
)
|
||||
jitterBuffer.postValue(jitterBufferLabel)
|
||||
}
|
||||
StreamType.Video -> {
|
||||
val payloadType = call.currentParams.usedVideoPayloadType
|
||||
|
|
@ -94,6 +112,14 @@ class CallStatsModel @WorkerThread constructor() {
|
|||
)
|
||||
videoBandwidth.postValue(bandwidthLabel)
|
||||
|
||||
val uploadLoss = stats.receiverLossRate.roundToInt()
|
||||
val downloadLoss = stats.localLossRate.roundToInt()
|
||||
val lossRateLabel = AppUtils.getFormattedString(
|
||||
R.string.call_stats_loss_rate_label,
|
||||
"↑ $uploadLoss% ↓ $downloadLoss%"
|
||||
)
|
||||
videoLossRate.postValue(lossRateLabel)
|
||||
|
||||
val sentResolution = call.currentParams.sentVideoDefinition?.name
|
||||
val receivedResolution = call.currentParams.receivedVideoDefinition?.name
|
||||
val resolutionLabel = AppUtils.getFormattedString(
|
||||
|
|
|
|||
|
|
@ -75,13 +75,35 @@
|
|||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="10dp"
|
||||
android:layout_marginBottom="10dp"
|
||||
android:text="@{model.audioBandwidth, default=@string/call_stats_bandwidth_label}"
|
||||
android:textColor="@color/white"
|
||||
android:maxLines="1"
|
||||
android:ellipsize="end"
|
||||
android:gravity="center" />
|
||||
|
||||
<androidx.appcompat.widget.AppCompatTextView
|
||||
style="@style/default_text_style"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="10dp"
|
||||
android:text="@{model.lossRate, default=@string/call_stats_loss_rate_label}"
|
||||
android:textColor="@color/white"
|
||||
android:maxLines="1"
|
||||
android:ellipsize="end"
|
||||
android:gravity="center" />
|
||||
|
||||
<androidx.appcompat.widget.AppCompatTextView
|
||||
style="@style/default_text_style"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="10dp"
|
||||
android:layout_marginBottom="10dp"
|
||||
android:text="@{model.jitterBuffer, default=@string/call_stats_jitter_buffer_label}"
|
||||
android:textColor="@color/white"
|
||||
android:maxLines="1"
|
||||
android:ellipsize="end"
|
||||
android:gravity="center" />
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
<LinearLayout
|
||||
|
|
@ -132,6 +154,17 @@
|
|||
android:ellipsize="end"
|
||||
android:gravity="center" />
|
||||
|
||||
<androidx.appcompat.widget.AppCompatTextView
|
||||
style="@style/default_text_style"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="10dp"
|
||||
android:text="@{model.videoLossRate, default=@string/call_stats_loss_rate_label}"
|
||||
android:textColor="@color/white"
|
||||
android:maxLines="1"
|
||||
android:ellipsize="end"
|
||||
android:gravity="center" />
|
||||
|
||||
<androidx.appcompat.widget.AppCompatTextView
|
||||
style="@style/default_text_style"
|
||||
android:layout_width="match_parent"
|
||||
|
|
|
|||
|
|
@ -73,13 +73,35 @@
|
|||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="10dp"
|
||||
android:layout_marginBottom="10dp"
|
||||
android:text="@{model.audioBandwidth, default=@string/call_stats_bandwidth_label}"
|
||||
android:textColor="@color/white"
|
||||
android:maxLines="1"
|
||||
android:ellipsize="end"
|
||||
android:gravity="center" />
|
||||
|
||||
<androidx.appcompat.widget.AppCompatTextView
|
||||
style="@style/default_text_style"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="10dp"
|
||||
android:text="@{model.lossRate, default=@string/call_stats_loss_rate_label}"
|
||||
android:textColor="@color/white"
|
||||
android:maxLines="1"
|
||||
android:ellipsize="end"
|
||||
android:gravity="center" />
|
||||
|
||||
<androidx.appcompat.widget.AppCompatTextView
|
||||
style="@style/default_text_style"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="10dp"
|
||||
android:layout_marginBottom="10dp"
|
||||
android:text="@{model.jitterBuffer, default=@string/call_stats_jitter_buffer_label}"
|
||||
android:textColor="@color/white"
|
||||
android:maxLines="1"
|
||||
android:ellipsize="end"
|
||||
android:gravity="center" />
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
<LinearLayout
|
||||
|
|
@ -129,6 +151,17 @@
|
|||
android:ellipsize="end"
|
||||
android:gravity="center" />
|
||||
|
||||
<androidx.appcompat.widget.AppCompatTextView
|
||||
style="@style/default_text_style"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="10dp"
|
||||
android:text="@{model.videoLossRate, default=@string/call_stats_loss_rate_label}"
|
||||
android:textColor="@color/white"
|
||||
android:maxLines="1"
|
||||
android:ellipsize="end"
|
||||
android:gravity="center" />
|
||||
|
||||
<androidx.appcompat.widget.AppCompatTextView
|
||||
style="@style/default_text_style"
|
||||
android:layout_width="match_parent"
|
||||
|
|
|
|||
|
|
@ -629,8 +629,10 @@
|
|||
<string name="call_stats_audio_title">Audio</string>
|
||||
<string name="call_stats_codec_label">Codec : %s</string>
|
||||
<string name="call_stats_bandwidth_label">Bande passante : %s</string>
|
||||
<string name="call_stats_loss_rate_label">Taux de perte : %s</string>
|
||||
<string name="call_stats_jitter_buffer_label">Tampon de gigue : %s</string>
|
||||
<string name="call_stats_video_title">Vidéo</string>
|
||||
<string name="call_stats_resolution_label">Résolution : %s</string>
|
||||
<string name="call_stats_resolution_label">Définition : %s</string>
|
||||
<string name="call_stats_fps_label">FPS : %s</string>
|
||||
<string name="call_stats_fec_title">FEC</string>
|
||||
<string name="call_stats_fec_lost_packets_label">Paquets perdus : %s</string>
|
||||
|
|
|
|||
|
|
@ -667,6 +667,8 @@
|
|||
<string name="call_stats_audio_title">Audio</string>
|
||||
<string name="call_stats_codec_label">Codec: %s</string>
|
||||
<string name="call_stats_bandwidth_label">Bandwidth: %s</string>
|
||||
<string name="call_stats_loss_rate_label">Loss rate: %s</string>
|
||||
<string name="call_stats_jitter_buffer_label">Jitter buffer: %s</string>
|
||||
<string name="call_stats_video_title">Video</string>
|
||||
<string name="call_stats_resolution_label">Resolution: %s</string>
|
||||
<string name="call_stats_fps_label">FPS: %s</string>
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue