Fix last issue with pause + fix shared libs without neon problem

This commit is contained in:
Sylvain Berfini 2012-04-17 16:57:37 +02:00
parent d4a5472041
commit 81fc525350
9 changed files with 62 additions and 17 deletions

View file

@ -93,7 +93,7 @@ endif
endif
ifeq ($(wildcard $(linphone-root-dir)/submodules/externals/prebuilts/ffmpeg.mk),)
#include $(linphone-root-dir)/submodules/externals/build/ffmpeg/Android.mk
include $(linphone-root-dir)/submodules/externals/build/ffmpeg/Android.mk
include $(linphone-root-dir)/submodules/externals/build/ffmpeg-no-neon/Android.mk
else
include $(linphone-root-dir)/submodules/externals/prebuilts/ffmpeg.mk
@ -118,6 +118,7 @@ endif
include $(linphone-root-dir)/submodules/linphone/build/android/Android.mk
include $(linphone-root-dir)/submodules/linphone/build/android/Android-no-neon.mk
_BUILD_AMR=0
ifneq ($(BUILD_AMRNB), 0)

View file

@ -1,5 +1,5 @@
APP_PROJECT_PATH := $(call my-dir)/../
APP_MODULES :=libspeex libgsm libortp libosip2 libeXosip2 libmediastreamer2 liblinphone
APP_MODULES :=libspeex libgsm libortp libosip2 libeXosip2 libmediastreamer2 liblinphone liblinphonenoneon
APP_STL := stlport_static
#default values
@ -14,8 +14,9 @@ BUILD_SRTP=1
endif
ifeq ($(LINPHONE_VIDEO),1)
APP_MODULES += libavutil libavcore libavcodec libswscale libvpx
APP_MODULES += libavutil-no-neon libavcore-no-neon libavcodec-no-neon libswscale-no-neon
APP_MODULES += libavutil libavcore libavcodec libswscale
APP_MODULES += libavutilnoneon libavcorenoneon libavcodecnoneon libswscalenoneon
APP_MODULES += libvpx
endif
_BUILD_AMR=0

View file

@ -600,6 +600,11 @@ public class IncallActivity extends AbstractCalleesActivity implements
} else if (lc().soundResourcesLocked()) {
return;
} else if (State.Paused == actualState) {
if (call != null && call.cameraEnabled() && call.getCurrentParamsCopy().getVideoEnabled())
{
finish();
LinphoneActivity.instance().startVideoActivity(call, 0);
}
lc().resumeCall(call);
}
}

View file

@ -20,9 +20,12 @@ package org.linphone.core;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import org.linphone.mediastream.Version;
import android.util.Log;
public class LinphoneCoreFactoryImpl extends LinphoneCoreFactory {
private static void loadOptionalLibrary(String s) {
@ -35,10 +38,17 @@ public class LinphoneCoreFactoryImpl extends LinphoneCoreFactory {
static {
// FFMPEG (audio/video)
loadOptionalLibrary("avutil");
loadOptionalLibrary("swscale");
loadOptionalLibrary("avcore");
loadOptionalLibrary("avcodec");
if (!hasNeonInCpuFeatures()) {
loadOptionalLibrary("avutilnoneon");
loadOptionalLibrary("swscalenoneon");
loadOptionalLibrary("avcorenoneon");
loadOptionalLibrary("avcodecnoneon");
} else {
loadOptionalLibrary("avutil");
loadOptionalLibrary("swscale");
loadOptionalLibrary("avcore");
loadOptionalLibrary("avcodec");
}
// OPENSSL (cryptography)
// lin prefix avoids collision with libs in /system/lib
@ -56,7 +66,11 @@ public class LinphoneCoreFactoryImpl extends LinphoneCoreFactory {
loadOptionalLibrary("bcg729");
//Main library
System.loadLibrary("linphone");
if (!hasNeonInCpuFeatures()) {
System.loadLibrary("linphonenoneon");
} else {
System.loadLibrary("linphone");
}
Version.dumpCapabilities();
}
@ -121,4 +135,28 @@ public class LinphoneCoreFactoryImpl extends LinphoneCoreFactory {
public LinphoneFriend createLinphoneFriend() {
return createLinphoneFriend(null);
}
public static boolean hasNeonInCpuFeatures()
{
ProcessBuilder cmd;
boolean result = false;
try {
String[] args = {"/system/bin/cat", "/proc/cpuinfo"};
cmd = new ProcessBuilder(args);
Process process = cmd.start();
InputStream in = process.getInputStream();
byte[] re = new byte[1024];
while(in.read(re) != -1){
String line = new String(re);
if (line.startsWith("Features"))
result = line.contains("neon");
}
in.close();
} catch(IOException ex){
ex.printStackTrace();
}
return result;
}
}

View file

@ -1,7 +1,7 @@
LOCAL_PATH:= $(call my-dir)/../../ffmpeg
include $(CLEAR_VARS)
LOCAL_MODULE := libavcodec
LOCAL_MODULE := libavcodecnoneon
LOCAL_SRC_FILES = \
libavcodec/allcodecs.c \
@ -103,7 +103,7 @@ LOCAL_C_INCLUDES += \
$(LOCAL_PATH)/ \
$(LOCAL_PATH)/libavutil
LOCAL_SHARED_LIBRARIES := libavutil libavcore
LOCAL_SHARED_LIBRARIES := libavutilnoneon libavcorenoneon
include $(BUILD_SHARED_LIBRARY)

View file

@ -2,7 +2,7 @@
LOCAL_PATH:= $(call my-dir)/../../ffmpeg/
include $(CLEAR_VARS)
LOCAL_MODULE := libavcore
LOCAL_MODULE := libavcorenoneon
LOCAL_SRC_FILES := \
@ -21,7 +21,7 @@ LOCAL_CFLAGS += -DHAVE_AV_CONFIG_H
#for including config.h:
LOCAL_C_INCLUDES += $(LOCAL_PATH)/../build/ffmpeg-no-neon $(LOCAL_PATH)/
LOCAL_SHARED_LIBRARIES := libavutil
LOCAL_SHARED_LIBRARIES := libavutilnoneon
include $(BUILD_SHARED_LIBRARY)

View file

@ -2,7 +2,7 @@
LOCAL_PATH:= $(call my-dir)/../../ffmpeg/
include $(CLEAR_VARS)
LOCAL_MODULE := libavutil
LOCAL_MODULE := libavutilnoneon
LOCAL_SRC_FILES = \

View file

@ -2,7 +2,7 @@
LOCAL_PATH:= $(call my-dir)/../../ffmpeg/libswscale/
include $(CLEAR_VARS)
LOCAL_MODULE := libswscale
LOCAL_MODULE := libswscalenoneon
LOCAL_SRC_FILES = \
options.c \
@ -20,7 +20,7 @@ LOCAL_C_INCLUDES += $(LOCAL_PATH)/../../build/ffmpeg-no-neon \
$(LOCAL_PATH)/ \
$(LOCAL_PATH)/../
LOCAL_SHARED_LIBRARIES := libavutil
LOCAL_SHARED_LIBRARIES := libavutilnoneon
include $(BUILD_SHARED_LIBRARY)

@ -1 +1 @@
Subproject commit 06968d9ad3849676847c678568f8fde125084cdd
Subproject commit ec2bfe3f34e04b08e1410d2349e88ae700b4c271