]> sjero.net Git - linphone/commitdiff
add jni glue and java interface for call quality indicator
authorSimon Morlat <simon.morlat@linphone.org>
Fri, 10 Jun 2011 17:04:09 +0000 (19:04 +0200)
committerSimon Morlat <simon.morlat@linphone.org>
Fri, 10 Jun 2011 17:04:09 +0000 (19:04 +0200)
coreapi/linphonecore_jni.cc
java/common/org/linphone/core/LinphoneCall.java
mediastreamer2

index 4e201c845ec2bf7b1720a32b5a48c31334a33812..2492e8f61e25ee1afe2c575e4bea37208d78d242 100644 (file)
@@ -1023,6 +1023,18 @@ extern "C" jlong Java_org_linphone_core_LinphoneCallImpl_getReplacedCall(        JNIEnv
        return (jlong)linphone_call_get_replaced_call((LinphoneCall*)ptr);
 }
 
+extern "C" jfloat Java_org_linphone_core_LinphoneCallImpl_getCurrentQuality(   JNIEnv*  env
+                                                                                                                                               ,jobject  thiz
+                                                                                                                                               ,jlong ptr) {
+       return (jfloat)linphone_call_get_current_quality((LinphoneCall*)ptr);
+}
+
+extern "C" jfloat Java_org_linphone_core_LinphoneCallImpl_getAverageQuality(   JNIEnv*  env
+                                                                                                                                               ,jobject  thiz
+                                                                                                                                               ,jlong ptr) {
+       return (jfloat)linphone_call_get_average_quality((LinphoneCall*)ptr);
+}
+
 
 //LinphoneFriend
 extern "C" long Java_org_linphone_core_LinphoneFriendImpl_newLinphoneFriend(JNIEnv*  env
index 9f029b05317e00259a3aab6f945863fe8126c8e8..e0f7cde340e0cf308f903507b0ff10dda5399a94 100644 (file)
@@ -190,4 +190,28 @@ public interface LinphoneCall {
         * @return call duration computed from media start
         */
        int getDuration();
+       /**
+        * Obtain real-time quality rating of the call
+        *
+        * Based on local RTP statistics and RTCP feedback, a quality rating is computed and updated
+        * during all the duration of the call. This function returns its value at the time of the function call.
+        * It is expected that the rating is updated at least every 5 seconds or so.
+        * The rating is a floating point number comprised between 0 and 5.
+        *
+        * 4-5 = good quality <br>
+        * 3-4 = average quality <br>
+        * 2-3 = poor quality <br>
+        * 1-2 = very poor quality <br>
+        * 0-1 = can't be worse, mostly unusable <br>
+        *
+        * @returns The function returns -1 if no quality measurement is available, for example if no 
+        * active audio stream exist. Otherwise it returns the quality rating.
+        */
+       float getCurrentQuality();
+       /**
+        * Returns call quality averaged over all the duration of the call.
+        *
+        * See getCurrentQuality() for more details about quality measurement.
+        */
+       float getAverageQuality();
 }
index 79cbc5277d3fae8a70ae42a4e958042484ca2725..13dd93a64be54e9b015d38e6cd72695b3dff5e19 160000 (submodule)
@@ -1 +1 @@
-Subproject commit 79cbc5277d3fae8a70ae42a4e958042484ca2725
+Subproject commit 13dd93a64be54e9b015d38e6cd72695b3dff5e19