private float roundTripDelay;
private long latePacketsCumulativeNumber;
private float jitterBufferSize;
+ private float localLossRate;
+ private float localLateRate;
+ private long nativePtr;
private native int getMediaType(long nativeStatsPtr);
private native int getIceState(long nativeStatsPtr);
private native float getRoundTripDelay(long nativeStatsPtr);
private native long getLatePacketsCumulativeNumber(long nativeStatsPtr, long nativeCallPtr);
private native float getJitterBufferSize(long nativeStatsPtr);
+ private native float getLocalLossRate(long nativeStatsPtr);
+ private native float getLocalLateRate(long nativeStatsPtr);
+ private native void updateStats(long nativeCallPtr, int mediaType);
protected LinphoneCallStatsImpl(long nativeCallPtr, long nativeStatsPtr) {
+ nativePtr=nativeStatsPtr;
mediaType = getMediaType(nativeStatsPtr);
iceState = getIceState(nativeStatsPtr);
downloadBandwidth = getDownloadBandwidth(nativeStatsPtr);
roundTripDelay = getRoundTripDelay(nativeStatsPtr);
latePacketsCumulativeNumber = getLatePacketsCumulativeNumber(nativeStatsPtr, nativeCallPtr);
jitterBufferSize = getJitterBufferSize(nativeStatsPtr);
+
+ }
+
+ protected void updateRealTimeStats(LinphoneCall call){
+ updateStats( ((LinphoneCallImpl)call).nativePtr, mediaType);
+ localLossRate=getLocalLossRate(nativePtr);
+ localLateRate=getLocalLateRate(nativePtr);
}
public MediaType getMediaType() {
public float getJitterBufferSize() {
return jitterBufferSize;
}
+
+ public float getLocalLossRate(){
+ return localLossRate;
+ }
+
+ public float getLocalLateRate(){
+ return localLateRate;
+ }
}