Add mkv video recorder

This commit is contained in:
François Grisez 2014-06-10 15:12:17 +02:00
parent 9b3c9d2879
commit 356de1d766
9 changed files with 152 additions and 1 deletions

3
.gitmodules vendored
View file

@ -82,3 +82,6 @@
[submodule "submodules/externals/openh264"]
path = submodules/externals/openh264
url = https://github.com/cisco/openh264
[submodule "submodules/externals/libmatroska"]
path = submodules/externals/libmatroska
url = https://github.com/Matroska-Org/foundation-source.git

View file

@ -51,6 +51,7 @@ BUILD_SILK=1
BUILD_TUNNEL=0
BUILD_WEBRTC_AECM=1
BUILD_OPUS=1
BUILD_MATROSKA=0
BUILD_WEBRTC_ISAC=1
BUILD_FOR_X86=1
USE_JAVAH=1
@ -287,6 +288,79 @@ clean-vpx:
rm -rf submodules/externals/build/libvpx/arm && \
rm -rf submodules/externals/build/libvpx/x86
#libmatroska
ifeq ($(BUILD_VIDEO), 1)
ifeq ($(BUILD_MATROSKA),1)
BUILD_MATROSKA_DEPS=$(LIBEBML2_BUILD_DIR)/arm/libebml2.a $(LIBMATROSKA_BUILD_DIR)/arm/libmatroska2.a
ifeq ($(BUILD_FOR_X86), 1)
BUILD_MATROSKA_DEPS+=$(LIBEBML2_BUILD_DIR)/x86/libebml2.a $(LIBMATROSKA_BUILD_DIR)/x86/libmatroska2.a
endif #BUILD_FOR_X86
endif #BUILD_MATROSKA
endif #BUILD_VIDEO
LIBMATROSKA_SRC_DIR=$(TOPDIR)/submodules/externals/libmatroska
LIBMATROSKA_BUILD_DIR=$(TOPDIR)/submodules/externals/build/libmatroska
LIBEBML2_BUILD_DIR=$(TOPDIR)/submodules/externals/build/libebml2
COREMAKE=$(LIBMATROSKA_SRC_DIR)/corec/tools/coremake/coremake
$(LIBEBML2_BUILD_DIR)/arm/libebml2.a: $(LIBMATROSKA_SRC_DIR)/release/android_armv7/libebml2.a
mkdir -p $(LIBEBML2_BUILD_DIR)/arm
cp $< $@
$(LIBMATROSKA_BUILD_DIR)/arm/libmatroska2.a: $(LIBMATROSKA_SRC_DIR)/release/android_armv7/libmatroska2.a
mkdir -p $(LIBMATROSKA_BUILD_DIR)/arm
cp $< $@
$(LIBEBML2_BUILD_DIR)/x86/libebml2.a: $(LIBMATROSKA_SRC_DIR)/release/android_x86/libebml2.a
mkdir -p $(LIBEBML2_BUILD_DIR)/x86
cp $< $@
$(LIBMATROSKA_BUILD_DIR)/x86/libmatroska2.a: $(LIBMATROSKA_SRC_DIR)/release/android_x86/libmatroska2.a
mkdir -p $(LIBMATROSKA_BUILD_DIR)/x86
cp $< $@
$(LIBMATROSKA_SRC_DIR)/release/android_armv7/libebml2.a: $(LIBMATROSKA_SRC_DIR)/coremake_android_armv7.txt
make -C $(LIBMATROSKA_SRC_DIR) ebml2
$(LIBMATROSKA_SRC_DIR)/release/android_armv7/libmatroska2.a: $(LIBMATROSKA_SRC_DIR)/coremake_android_armv7.txt
make -C $(LIBMATROSKA_SRC_DIR) matroska2
$(LIBMATROSKA_SRC_DIR)/release/android_x86/libebml2.a: $(LIBMATROSKA_SRC_DIR)/coremake_android_x86.txt
make -C $(LIBMATROSKA_SRC_DIR) ebml2
$(LIBMATROSKA_SRC_DIR)/release/android_x86/libmatroska2.a: $(LIBMATROSKA_SRC_DIR)/coremake_android_x86.txt
make -C $(LIBMATROSKA_SRC_DIR) matroska2
$(LIBMATROSKA_SRC_DIR)/coremake_android_armv7.txt: $(COREMAKE) $(LIBMATROSKA_SRC_DIR)/configure_config_h.txt $(LIBMATROSKA_SRC_DIR)/fix_coremake.txt
cd $(LIBMATROSKA_SRC_DIR); $(COREMAKE) android_armv7 -f $(LIBMATROSKA_SRC_DIR)/root.proj
rm -f $(LIBMATROSKA_SRC_DIR)/coremake_*.txt;
touch $@
$(LIBMATROSKA_SRC_DIR)/coremake_android_x86.txt: $(COREMAKE) $(LIBMATROSKA_SRC_DIR)/configure_config_h.txt $(LIBMATROSKA_SRC_DIR)/fix_coremake.txt
cd $(LIBMATROSKA_SRC_DIR); $(COREMAKE) android_x86 -f $(LIBMATROSKA_SRC_DIR)/root.proj
rm -f $(LIBMATROSKA_SRC_DIR)/coremake_*.txt
touch $@
$(COREMAKE):
make -C $(LIBMATROSKA_SRC_DIR)/corec/tools/coremake
$(LIBMATROSKA_SRC_DIR)/configure_config_h.txt:
echo "#define CONFIG_ANDROID_NDK $(NDK_PATH)" >> $(LIBMATROSKA_SRC_DIR)/config.h
echo "#define CONFIG_ANDROID_VERSION $(ANDROID_MOST_RECENT_TARGET)" >> $(LIBMATROSKA_SRC_DIR)/config.h
echo "#define CONFIG_ANDROID_PLATFORM linux-x86_64" >> $(LIBMATROSKA_SRC_DIR)/config.h
touch $@
$(LIBMATROSKA_SRC_DIR)/fix_coremake.txt:
cd $(LIBMATROSKA_SRC_DIR); patch -p0 < ../build/libmatroska/coremake_fix.patch
cp $(LIBMATROSKA_BUILD_DIR)/android_x86.build $(LIBMATROSKA_SRC_DIR)/corec/tools/coremake
touch $@
build-matroska: $(BUILD_MATROSKA_DEPS)
clean-matroska:
rm -rf $(LIBMATROSKA_BUILD_DIR)/{arm,x86}
rm -rf $(LIBEBML2_BUILD_DIR)/{arm,x86}
cd $(LIBMATROSKA_SRC_DIR); $(COREMAKE) clean
#SILK
LIBMSSILK_SRC_DIR=$(TOPDIR)/submodules/mssilk
LIBMSSILK_BUILD_DIR=$(LIBMSSILK_SRC_DIR)
@ -379,7 +453,7 @@ $(SQLITE_BASENAME).zip:
curl -sO $(SQLITE_URL)
#Build targets
prepare-sources: build-ffmpeg build-x264 build-openh264 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 build-openh264 prepare-ilbc build-vpx build-matroska prepare-silk prepare-srtp prepare-mediastreamer2 prepare-antlr3 prepare-belle-sip $(TOPDIR)/res/raw/rootca.pem prepare-sqlite3
GENERATE_OPTIONS = NDK_DEBUG=$(NDK_DEBUG) BUILD_FOR_X86=$(BUILD_FOR_X86) \

View file

@ -100,6 +100,11 @@ endif
include $(linphone-root-dir)/submodules/externals/build/ffmpeg/Android.mk
include $(linphone-root-dir)/submodules/externals/build/libvpx/Android.mk
ifeq ($(BUILD_MATROSKA), 1)
include $(linphone-root-dir)/submodules/externals/buil/libebml/Android.mk
include $(linphone-root-dir)/submodules/externals/buil/libmatroska/Android.mk
endif
endif #_BUILD_VIDEO

View file

@ -65,7 +65,10 @@ endif
ifeq ($(BUILD_OPENH264),1)
APP_MODULES += libwels libmsopenh264
endif
ifeq ($(BUILD_MATROSKA), 1)
APP_MODULES += libebml2 libmatroska2
endif
endif # BUILD_VIDEO
_BUILD_AMR=0
ifneq ($(BUILD_AMRNB), 0)

View file

@ -0,0 +1,7 @@
LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := libebml2
LOCAL_SRC_FILES := $(TARGET_ARCH)/libebml2.a
include $(PREBUILT_STATIC_LIBRARY)

View file

@ -0,0 +1,7 @@
LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := libmatroska2
LOCAL_SRC_FILES := $(TARGET_ARCH)/libmatroska2.a
include $(PREBUILT_STATIC_LIBRARY)

View file

@ -0,0 +1,13 @@
#define TARGARCH x86
#define TARGARCH_ABI x86
#define TARGOPTIM release
#define IX86
CCFLAGS += -O3 -m32 -march=i486 -msse -mmmx -Wno-multichar -fvisibility=hidden -fno-PIC -DRESOURCE_COREC
ANDROID_ABI += x86
ANDROID_ARCH = arch-x86
ANDROID_GCC_PREFIX = i686-linux-android-
ANDROID_GCC = x86-4.8
ANDROID_GCC_LIB = gcc/i686-linux-android/4.8/libgcc.a
#include "android.inc"

View file

@ -0,0 +1,38 @@
--- corec/tools/coremake/android_arm.inc
+++ corec/tools/coremake/android_arm.inc
@@ -7,8 +7,8 @@
SFLAGS += -march=armv7-a
ANDROID_ABI += armeabi
ANDROID_ARCH = arch-arm
-ANDROID_GCC_PREFIX = arm-eabi-
-ANDROID_GCC = arm-eabi-4.4.0
-ANDROID_GCC_LIB = gcc/arm-eabi/4.4.0/libgcc.a
+ANDROID_GCC_PREFIX = arm-linux-androideabi-
+ANDROID_GCC = arm-linux-androideabi-4.8
+ANDROID_GCC_LIB = gcc/arm-linux-androideabi/4.8/libgcc.a
#include "android.inc"
--- corec/tools/coremake/android.inc
+++ corec/tools/coremake/android.inc
@@ -12,8 +12,8 @@
CONFIG
-ANDROID_LIBC_DIR = %(§CONFIG_ANDROID_NDK)/build/platforms/android-%(CONFIG_ANDROID_VERSION)/%(ANDROID_ARCH)/usr
-ANDROID_GCC_DIR = %(§CONFIG_ANDROID_NDK)/build/prebuilt/%(CONFIG_ANDROID_PLATFORM)/%(ANDROID_GCC)/bin
+ANDROID_LIBC_DIR = %(§CONFIG_ANDROID_NDK)/platforms/%(CONFIG_ANDROID_VERSION)/%(ANDROID_ARCH)/usr
+ANDROID_GCC_DIR = %(§CONFIG_ANDROID_NDK)/toolchains/%(ANDROID_GCC)/prebuilt/%(CONFIG_ANDROID_PLATFORM)/bin
IFNDEF CONFIG_ANDROID_NDK
ECHO Android NDK path not defined ! (CONFIG_ANDROID_NDK)
--- corec/tools/coremake/gcc_mak.inc
+++ corec/tools/coremake/gcc_mak.inc
@@ -85,7 +85,7 @@
PRINTNL CCFLAGS += -include %(PRECOMPILED_HEADER)
ENDIF
IF %(OS_INCLUDE)!=""
- PRINTNL CCFLAGS += %(|OS_INCLUDE:%=-isystem '%')
+ PRINTNL CCFLAGS += %(OS_INCLUDE:%=-isystem '%')
ENDIF
PRINTNL CCFLAGS += %(DEFINE:%=-D%) -I . %(@INCLUDE:%=-I '%') %(@SYSINCLUDE:%=-I '%') %(@CONFIG_INCLUDE:%=-I '%')
IF %(CCFLAGS)!=""

1
submodules/externals/libmatroska vendored Submodule

@ -0,0 +1 @@
Subproject commit 3414f292bb5b1ac5ee2fd99976b7274fd81e48ee