Update x264 and enable it on x86.
This commit is contained in:
parent
45de6a529e
commit
0bd31a01df
6 changed files with 50 additions and 77 deletions
49
Makefile
49
Makefile
|
@ -106,6 +106,43 @@ clean-ffmpeg:
|
||||||
rm -rf $(FFMPEG_BUILD_DIR)/arm && \
|
rm -rf $(FFMPEG_BUILD_DIR)/arm && \
|
||||||
rm -rf $(FFMPEG_BUILD_DIR)/x86
|
rm -rf $(FFMPEG_BUILD_DIR)/x86
|
||||||
|
|
||||||
|
#x264
|
||||||
|
ifeq ($(BUILD_X264), 1)
|
||||||
|
BUILD_X264_DEPS=$(X264_BUILD_DIR)/arm/libx264.a
|
||||||
|
ifeq ($(BUILD_FOR_X86), 1)
|
||||||
|
BUILD_X264_DEPS+=$(X264_BUILD_DIR)/x86/libx264.a
|
||||||
|
endif
|
||||||
|
X264_SRC_DIR=$(TOPDIR)/submodules/externals/x264
|
||||||
|
X264_BUILD_DIR=$(TOPDIR)/submodules/externals/build/x264
|
||||||
|
X264_CONFIGURE_OPTIONS=--disable-shared
|
||||||
|
X264_ARM_CONFIGURE_OPTIONS=--host=arm-none-linux-gnueabi --sysroot=$(NDK_PATH)/platforms/android-18/arch-arm --cross-prefix=$(NDK_PATH)/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86_64/bin/arm-linux-androideabi- --enable-pic
|
||||||
|
X264_X86_CONFIGURE_OPTIONS=--host=i686-linux-gnueabi --sysroot=$(NDK_PATH)/platforms/android-18/arch-x86 --cross-prefix=$(NDK_PATH)/toolchains/x86-4.6/prebuilt/linux-x86_64/bin/i686-linux-android-
|
||||||
|
|
||||||
|
$(X264_BUILD_DIR)/arm/libx264.a:
|
||||||
|
mkdir -p $(X264_BUILD_DIR)/arm && \
|
||||||
|
cd $(X264_SRC_DIR) && \
|
||||||
|
$(X264_SRC_DIR)/configure $(X264_CONFIGURE_OPTIONS) $(X264_ARM_CONFIGURE_OPTIONS) && \
|
||||||
|
make -j $(NUMCPUS) && \
|
||||||
|
cp libx264.a $(X264_BUILD_DIR)/arm/libx264.a && \
|
||||||
|
make clean \
|
||||||
|
|| ( echo "Build of x264 for arm failed." ; exit 1 )
|
||||||
|
|
||||||
|
$(X264_BUILD_DIR)/x86/libx264.a:
|
||||||
|
mkdir -p $(X264_BUILD_DIR)/x86 && \
|
||||||
|
cd $(X264_SRC_DIR) && \
|
||||||
|
$(X264_SRC_DIR)/configure $(X264_CONFIGURE_OPTIONS) $(X264_X86_CONFIGURE_OPTIONS) && \
|
||||||
|
make -j $(NUMCPUS) && \
|
||||||
|
cp libx264.a $(X264_BUILD_DIR)/x86/libx264.a && \
|
||||||
|
make clean \
|
||||||
|
|| ( echo "Build of x264 for x86 failed." ; exit 1 )
|
||||||
|
|
||||||
|
endif
|
||||||
|
build-x264: $(BUILD_X264_DEPS)
|
||||||
|
|
||||||
|
clean-x264:
|
||||||
|
rm -rf $(X264_BUILD_DIR)/arm && \
|
||||||
|
rm -rf $(X264_BUILD_DIR)/x86
|
||||||
|
|
||||||
#libvpx
|
#libvpx
|
||||||
BUILD_VPX_DEPS=$(LIBVPX_BUILD_DIR)/arm/libvpx.a
|
BUILD_VPX_DEPS=$(LIBVPX_BUILD_DIR)/arm/libvpx.a
|
||||||
ifeq ($(BUILD_FOR_X86), 1)
|
ifeq ($(BUILD_FOR_X86), 1)
|
||||||
|
@ -116,15 +153,15 @@ LIBVPX_BUILD_DIR=$(TOPDIR)/submodules/externals/build/libvpx
|
||||||
LIBVPX_CONFIGURE_OPTIONS=--disable-vp9 --disable-examples --disable-unit-tests --disable-postproc --enable-error-concealment
|
LIBVPX_CONFIGURE_OPTIONS=--disable-vp9 --disable-examples --disable-unit-tests --disable-postproc --enable-error-concealment
|
||||||
|
|
||||||
$(LIBVPX_BUILD_DIR)/arm/libvpx.a:
|
$(LIBVPX_BUILD_DIR)/arm/libvpx.a:
|
||||||
mkdir -p submodules/externals/build/libvpx/arm && \
|
mkdir -p $(LIBVPX_BUILD_DIR)/arm && \
|
||||||
cd submodules/externals/build/libvpx/arm && \
|
cd $(LIBVPX_BUILD_DIR)/arm && \
|
||||||
$(LIBVPX_SRC_DIR)/configure --target=armv7-android-gcc --sdk-path=$(NDK_PATH) $(LIBVPX_CONFIGURE_OPTIONS) && \
|
$(LIBVPX_SRC_DIR)/configure --target=armv7-android-gcc --sdk-path=$(NDK_PATH) $(LIBVPX_CONFIGURE_OPTIONS) && \
|
||||||
make -j ${NUMCPUS} \
|
make -j ${NUMCPUS} \
|
||||||
|| ( echo "Build of libvpx for arm failed." ; exit 1 )
|
|| ( echo "Build of libvpx for arm failed." ; exit 1 )
|
||||||
|
|
||||||
$(LIBVPX_BUILD_DIR)/x86/libvpx.a:
|
$(LIBVPX_BUILD_DIR)/x86/libvpx.a:
|
||||||
mkdir -p submodules/externals/build/libvpx/x86 && \
|
mkdir -p $(LIBVPX_BUILD_DIR)/x86 && \
|
||||||
cd submodules/externals/build/libvpx/x86 && \
|
cd $(LIBVPX_BUILD_DIR)/x86 && \
|
||||||
$(LIBVPX_SRC_DIR)/configure --target=x86-android-gcc --sdk-path=$(NDK_PATH) $(LIBVPX_CONFIGURE_OPTIONS) --extra-cflags="--sysroot=$(NDK_PATH)/platforms/android-18/arch-x86" && \
|
$(LIBVPX_SRC_DIR)/configure --target=x86-android-gcc --sdk-path=$(NDK_PATH) $(LIBVPX_CONFIGURE_OPTIONS) --extra-cflags="--sysroot=$(NDK_PATH)/platforms/android-18/arch-x86" && \
|
||||||
make -j${NUMCPUS} \
|
make -j${NUMCPUS} \
|
||||||
|| ( echo "Build of libvpx for x86 failed." ; exit 1 )
|
|| ( echo "Build of libvpx for x86 failed." ; exit 1 )
|
||||||
|
@ -220,7 +257,7 @@ $(SQLITE_BASENAME).zip:
|
||||||
curl -sO $(SQLITE_URL)
|
curl -sO $(SQLITE_URL)
|
||||||
|
|
||||||
#Build targets
|
#Build targets
|
||||||
prepare-sources: build-ffmpeg prepare-ilbc build-vpx prepare-silk prepare-srtp prepare-mediastreamer2 prepare-antlr3 prepare-belle-sip $(TOPDIR)/res/raw/rootca.pem prepare-sqlite3
|
prepare-sources: build-ffmpeg build-x264 prepare-ilbc build-vpx prepare-silk prepare-srtp prepare-mediastreamer2 prepare-antlr3 prepare-belle-sip $(TOPDIR)/res/raw/rootca.pem prepare-sqlite3
|
||||||
|
|
||||||
LIBLINPHONE_OPTIONS = NDK_DEBUG=$(NDK_DEBUG) LINPHONE_VERSION=$(LINPHONE_VERSION) BUILD_UPNP=$(BUILD_UPNP) BUILD_REMOTE_PROVISIONING=$(BUILD_REMOTE_PROVISIONING) BUILD_X264=$(BUILD_X264) \
|
LIBLINPHONE_OPTIONS = NDK_DEBUG=$(NDK_DEBUG) LINPHONE_VERSION=$(LINPHONE_VERSION) BUILD_UPNP=$(BUILD_UPNP) BUILD_REMOTE_PROVISIONING=$(BUILD_REMOTE_PROVISIONING) BUILD_X264=$(BUILD_X264) \
|
||||||
BUILD_AMRNB=$(BUILD_AMRNB) BUILD_AMRWB=$(BUILD_AMRWB) BUILD_GPLV3_ZRTP=$(BUILD_GPLV3_ZRTP) BUILD_SILK=$(BUILD_SILK) BUILD_G729=$(BUILD_G729) BUILD_TUNNEL=$(BUILD_TUNNEL) \
|
BUILD_AMRNB=$(BUILD_AMRNB) BUILD_AMRWB=$(BUILD_AMRWB) BUILD_GPLV3_ZRTP=$(BUILD_GPLV3_ZRTP) BUILD_SILK=$(BUILD_SILK) BUILD_G729=$(BUILD_G729) BUILD_TUNNEL=$(BUILD_TUNNEL) \
|
||||||
|
@ -275,7 +312,7 @@ clean-ndk-build:
|
||||||
|
|
||||||
clean: clean-ndk-build
|
clean: clean-ndk-build
|
||||||
|
|
||||||
veryclean: clean clean-ffmpeg clean-vpx
|
veryclean: clean clean-ffmpeg clean-x264 clean-vpx
|
||||||
|
|
||||||
.PHONY: clean
|
.PHONY: clean
|
||||||
|
|
||||||
|
|
|
@ -4,15 +4,9 @@ include $(linphone-root-dir)/submodules/linphone/mediastreamer2/src/android/libn
|
||||||
|
|
||||||
|
|
||||||
#enable video on armv7 and x86 targets only
|
#enable video on armv7 and x86 targets only
|
||||||
|
ifeq ($(TARGET_ARCH_ABI), armeabi)
|
||||||
_BUILD_X264=0
|
_BUILD_X264=0
|
||||||
_BUILD_VIDEO=0
|
_BUILD_VIDEO=0
|
||||||
ifeq ($(TARGET_ARCH_ABI),armeabi-v7a)
|
|
||||||
_BUILD_X264=1
|
|
||||||
_BUILD_VIDEO=1
|
|
||||||
endif
|
|
||||||
ifeq ($(TARGET_ARCH_ABI),x86)
|
|
||||||
_BUILD_X264=1
|
|
||||||
_BUILD_VIDEO=1
|
|
||||||
endif
|
endif
|
||||||
ifeq ($(_BUILD_VIDEO),0)
|
ifeq ($(_BUILD_VIDEO),0)
|
||||||
ifeq (,$(DUMP_VAR))
|
ifeq (,$(DUMP_VAR))
|
||||||
|
|
|
@ -20,10 +20,6 @@ ifeq ($(BUILD_X264),)
|
||||||
BUILD_X264=0
|
BUILD_X264=0
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ifeq ($(BUILD_X264),)
|
|
||||||
BUILD_X264=0
|
|
||||||
endif
|
|
||||||
|
|
||||||
ifeq ($(BUILD_G729),)
|
ifeq ($(BUILD_G729),)
|
||||||
BUILD_G729=0
|
BUILD_G729=0
|
||||||
endif
|
endif
|
||||||
|
|
|
@ -178,10 +178,10 @@ public class PreferencesFragment extends PreferencesListFragment implements EcCa
|
||||||
prefMPEG4.setSummary(R.string.pref_video_codec_mpeg4_unavailable);
|
prefMPEG4.setSummary(R.string.pref_video_codec_mpeg4_unavailable);
|
||||||
} else {
|
} else {
|
||||||
detectVideoCodec(R.string.pref_video_codec_h264_key, "H264");
|
detectVideoCodec(R.string.pref_video_codec_h264_key, "H264");
|
||||||
if (!Version.hasNeon())
|
if (!Version.hasFastCpuWithAsmOptim())
|
||||||
{
|
{
|
||||||
// Android without neon doesn't support H264
|
// Android without neon doesn't support H264
|
||||||
Log.w("No NEON available, disabling H264");
|
Log.w("CPU does not have asm optimisations available, disabling H264");
|
||||||
findPreference(R.string.pref_video_codec_h264_key).setEnabled(false);
|
findPreference(R.string.pref_video_codec_h264_key).setEnabled(false);
|
||||||
findPreference(R.string.pref_video_codec_h264_key).setDefaultValue(false);
|
findPreference(R.string.pref_video_codec_h264_key).setDefaultValue(false);
|
||||||
}
|
}
|
||||||
|
|
60
submodules/externals/build/x264/Android.mk
vendored
60
submodules/externals/build/x264/Android.mk
vendored
|
@ -1,61 +1,7 @@
|
||||||
#
|
LOCAL_PATH:= $(call my-dir)
|
||||||
# List of compiled files and related options obtained using
|
|
||||||
# ./configure --cross-prefix=arm-none-linux-gnueabi- --host=arm-none-linux-gnueabi --disable-pthread --enable-pic
|
|
||||||
# && make
|
|
||||||
#
|
|
||||||
|
|
||||||
LOCAL_PATH:= $(call my-dir)/../../x264
|
|
||||||
include $(CLEAR_VARS)
|
include $(CLEAR_VARS)
|
||||||
|
|
||||||
LOCAL_MODULE := libx264
|
LOCAL_MODULE := libx264
|
||||||
|
LOCAL_SRC_FILES := $(TARGET_ARCH)/libx264.a
|
||||||
|
|
||||||
LOCAL_SRC_FILES = \
|
include $(PREBUILT_STATIC_LIBRARY)
|
||||||
common/mc.c \
|
|
||||||
common/predict.c \
|
|
||||||
common/pixel.c \
|
|
||||||
common/macroblock.c \
|
|
||||||
common/frame.c \
|
|
||||||
common/dct.c \
|
|
||||||
common/cpu.c \
|
|
||||||
common/cabac.c \
|
|
||||||
common/common.c \
|
|
||||||
common/mdate.c \
|
|
||||||
common/rectangle.c \
|
|
||||||
common/set.c \
|
|
||||||
common/quant.c \
|
|
||||||
common/deblock.c \
|
|
||||||
common/vlc.c \
|
|
||||||
common/mvpred.c \
|
|
||||||
common/bitstream.c \
|
|
||||||
encoder/analyse.c \
|
|
||||||
encoder/me.c \
|
|
||||||
encoder/ratecontrol.c \
|
|
||||||
encoder/set.c \
|
|
||||||
encoder/macroblock.c \
|
|
||||||
encoder/cabac.c \
|
|
||||||
encoder/cavlc.c \
|
|
||||||
encoder/encoder.c \
|
|
||||||
encoder/lookahead.c \
|
|
||||||
common/arm/mc-c.c \
|
|
||||||
common/arm/predict-c.c \
|
|
||||||
common/arm/cpu-a.S \
|
|
||||||
common/arm/pixel-a.S \
|
|
||||||
common/arm/mc-a.S \
|
|
||||||
common/arm/dct-a.S \
|
|
||||||
common/arm/quant-a.S \
|
|
||||||
common/arm/deblock-a.S \
|
|
||||||
common/arm/predict-a.S
|
|
||||||
|
|
||||||
|
|
||||||
LOCAL_ARM_MODE := arm
|
|
||||||
|
|
||||||
|
|
||||||
LOCAL_CFLAGS += -DPIC -DBIT_DEPTH=8 -std=gnu99
|
|
||||||
|
|
||||||
#for including config.h:
|
|
||||||
LOCAL_C_INCLUDES += \
|
|
||||||
$(LOCAL_PATH)/../build/x264 \
|
|
||||||
$(LOCAL_PATH)/
|
|
||||||
|
|
||||||
include $(BUILD_STATIC_LIBRARY)
|
|
||||||
|
|
||||||
|
|
2
submodules/externals/x264
vendored
2
submodules/externals/x264
vendored
|
@ -1 +1 @@
|
||||||
Subproject commit e89c4cfc9f37d0b7684507974b333545b5bcc37a
|
Subproject commit 3361d59a0a83dcb8b321cc0eb8e6ba68ca49c7d4
|
Loading…
Reference in a new issue