]> sjero.net Git - linphone/blobdiff - java/impl/org/linphone/core/LinphoneCallStatsImpl.java
add jni and java accessors for realtime late and loss rates
[linphone] / java / impl / org / linphone / core / LinphoneCallStatsImpl.java
index 53fcb5ffd5fe701d54b0802e9d5a34e57cb35dee..4657ba01aefe773118a4364bb68925d00aa170b9 100644 (file)
@@ -31,6 +31,9 @@ class LinphoneCallStatsImpl implements LinphoneCallStats {
        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);
@@ -43,8 +46,12 @@ class LinphoneCallStatsImpl implements LinphoneCallStats {
        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);
@@ -56,6 +63,13 @@ class LinphoneCallStatsImpl implements LinphoneCallStats {
                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() {
@@ -101,4 +115,12 @@ class LinphoneCallStatsImpl implements LinphoneCallStats {
        public float getJitterBufferSize() {
                return jitterBufferSize;
        }
+
+       public float getLocalLossRate(){
+               return localLossRate;
+       }
+
+       public float getLocalLateRate(){
+               return localLateRate;
+       }
 }