]> sjero.net Git - linphone/commitdiff
add code to detect missing NEON instructions
authorSimon Morlat <simon.morlat@linphone.org>
Tue, 19 Apr 2011 08:53:46 +0000 (10:53 +0200)
committerSimon Morlat <simon.morlat@linphone.org>
Tue, 19 Apr 2011 08:53:46 +0000 (10:53 +0200)
build/android/Android.mk
coreapi/linphonecore_jni.cc

index db4d5368d4a7b5222d4e8044cae9255799485c25..468afbfa38c92e6dfd1843c88167c7bf1bc50fe5 100755 (executable)
@@ -86,6 +86,7 @@ LOCAL_LDLIBS += -llog -ldl
 
 
 LOCAL_STATIC_LIBRARIES := \
+       cpufeatures \
        libmediastreamer2 \
        libortp \
        libeXosip2 \
@@ -130,3 +131,6 @@ endif
 LOCAL_MODULE := liblinphone
 include $(BUILD_SHARED_LIBRARY)
 
+$(call import-module,android/cpufeatures)
+
+
index b2dd76f164617bf2c8cf29f297f8931429daf299..315c0dbcce3180739f8471198d8486032b218353 100644 (file)
@@ -21,6 +21,8 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
 
 #include "mediastreamer2/msjava.h"
 
+#include <cpu-features.h>
+
 #ifdef ANDROID
 #include <android/log.h>
 extern "C" void libmsilbc_init();
@@ -1238,15 +1240,22 @@ extern "C" void Java_org_linphone_core_LinphoneCoreImpl_adjustSoftwareVolume(JNI
        LinphoneCore *lc = (LinphoneCore *) ptr;
               
        if (db == 0) {
-               linphone_core_set_playback_gain_db(lc, 0);
-               return;
+                       linphone_core_set_playback_gain_db(lc, 0);
+                       return;
        }
               
-    float gain = linphone_core_get_playback_gain_db(lc) + db;
-    if (gain > 0) gain = 0;
+       float gain = linphone_core_get_playback_gain_db(lc) + db;
+       if (gain > 0) gain = 0;
 
        linphone_core_set_playback_gain_db(lc, gain);
 }
 
+extern "C" jboolean Java_org_linphone_core_Version_nativeHasNeon(JNIEnv *env){
+       if (android_getCpuFamily() == ANDROID_CPU_FAMILY_ARM && (android_getCpuFeatures() & ANDROID_CPU_ARM_FEATURE_NEON) != 0)
+       {
+               return 1;
+       }
+       return 0;
+}