Add codec2 submodules

- update linphone
This commit is contained in:
Johan Pascal 2015-08-21 18:06:12 +02:00
parent 3170f056d9
commit 2dd563e381
9 changed files with 244 additions and 3 deletions

3
.gitmodules vendored
View file

@ -91,3 +91,6 @@
[submodule "submodules/externals/webrtc"]
path = submodules/externals/webrtc
url = git://git.linphone.org/webrtc.git
[submodule "submodules/mscodec2"]
path = submodules/mscodec2
url = git://git.linphone.org/mscodec2.git

View file

@ -60,6 +60,7 @@ BUILD_CONTACT_HEADER=0
BUILD_RTP_MAP=0
BUILD_DONT_CHECK_HEADERS_IN_MESSAGE=0
BUILD_ILBC=1
BUILD_CODEC2=0
LIBLINPHONE_EXTENDED_SRC_FILES=
LIBLINPHONE_EXTENDED_C_INCLUDES=
LIBLINPHONE_EXTENDED_CFLAGS=
@ -255,6 +256,29 @@ clean-x264:
rm -rf $(X264_BUILD_DIR)/arm && \
rm -rf $(X264_BUILD_DIR)/x86
#codec2
ifeq ($(BUILD_CODEC2),1)
CODEC2_SRC_DIR=$(TOPDIR)/submodules/externals/codec2
CODEC2_BUILD_DIR=$(TOPDIR)/submodules/externals/build/codec2
PREPARE_CODEC2_DEPS=codec2-install-headers
endif
fetch-codec2:
ifneq "$(wildcard $(CODEC2_SRC_DIR) )" ""
# source directory for codec2 already exists, update it
svn up $(CODEC2_SRC_DIR)
else
#source directory for codec2 doesn't exist, create it and fetch the source from svn depot
mkdir $(CODEC2_SRC_DIR)
svn co https://svn.code.sf.net/p/freetel/code/codec2/branches/0.3/ $(CODEC2_SRC_DIR)
endif
codec2-install-headers: fetch-codec2
mkdir -p $(CODEC2_SRC_DIR)/include/codec2
rsync -rvLpgoc $(CODEC2_SRC_DIR)/src/codec2.h $(CODEC2_SRC_DIR)/include/codec2/codec2.h
prepare-codec2: $(PREPARE_CODEC2_DEPS)
#openh264
ifeq ($(BUILD_VIDEO),1)
ifeq ($(BUILD_OPENH264), 1)
@ -409,10 +433,10 @@ $(MATROSKA_SRC_DIR)/patch_applied.txt: $(MATROSKA_BUILD_DIR)/fix_libmatroska2.pa
cd $(MATROSKA_SRC_DIR); patch -p1 < $<; touch $@
#Build targets
prepare-sources: build-ffmpeg build-x264 build-openh264 prepare-ilbc build-vpx prepare-srtp prepare-mediastreamer2 prepare-antlr3 prepare-belle-sip $(TOPDIR)/res/raw/rootca.pem prepare-matroska2
prepare-sources: build-ffmpeg build-x264 build-openh264 prepare-ilbc build-vpx prepare-srtp prepare-mediastreamer2 prepare-antlr3 prepare-belle-sip $(TOPDIR)/res/raw/rootca.pem prepare-matroska2 prepare-codec2
GENERATE_OPTIONS = NDK_DEBUG=$(NDK_DEBUG) BUILD_FOR_X86=$(BUILD_FOR_X86) \
BUILD_AMRNB=$(BUILD_AMRNB) BUILD_AMRWB=$(BUILD_AMRWB) BUILD_SILK=$(BUILD_SILK) BUILD_G729=$(BUILD_G729) BUILD_OPUS=$(BUILD_OPUS) \
BUILD_AMRNB=$(BUILD_AMRNB) BUILD_AMRWB=$(BUILD_AMRWB) BUILD_SILK=$(BUILD_SILK) BUILD_G729=$(BUILD_G729) BUILD_OPUS=$(BUILD_OPUS) BUILD_CODEC2=$(BUILD_CODEC2)\
BUILD_VIDEO=$(BUILD_VIDEO) BUILD_X264=$(BUILD_X264) BUILD_OPENH264=$(BUILD_OPENH264) ENABLE_OPENH264_DECODER=$(ENABLE_OPENH264_DECODER) BUILD_MATROSKA=$(BUILD_MATROSKA) \
BUILD_UPNP=$(BUILD_UPNP) BUILD_ZRTP=$(BUILD_ZRTP) BUILD_WEBRTC_AECM=$(BUILD_WEBRTC_AECM) BUILD_WEBRTC_ISAC=$(BUILD_WEBRTC_ISAC) BUILD_ILBC=$(BUILD_ILBC) \
BUILD_FOR_ARM=$(BUILD_FOR_ARM) BUILD_NON_FREE_CODECS=$(BUILD_NON_FREE_CODECS)

3
README
View file

@ -144,3 +144,6 @@ BUILD_MATROSKA
BUILD_ILBC
values: 0 (don't build iLBC), 1 (do build iLBC), default value: 1
BUILD_CODEC2
values: 0 (don't build codec2 support), 1 (do build codec2 support), default value: 0

View file

@ -86,6 +86,11 @@ ifeq ($(BUILD_ILBC), 1)
include $(linphone-root-dir)/submodules/msilbc/Android.mk
endif
ifeq ($(BUILD_CODEC2), 1)
include $(linphone-root-dir)/submodules/mscodec2/Android.mk
include $(linphone-root-dir)/submodules/externals/build/codec2/Android.mk
endif
ifeq ($(_BUILD_VIDEO),1)
ifeq ($(_BUILD_X264),1)

View file

@ -36,6 +36,10 @@ ifeq ($(BUILD_G729),)
BUILD_G729=0
endif
ifeq ($(BUILD_CODEC2),)
BUILD_CODEC2=0
endif
ifeq ($(BUILD_VIDEO),)
BUILD_VIDEO=1
endif
@ -127,6 +131,10 @@ ifeq ($(BUILD_ZRTP), 1)
APP_MODULES += libbzrtp
endif
ifeq ($(BUILD_CODEC2), 1)
APP_MODULES +=libcodec2 libmscodec2
endif
ifeq ($(BUILD_ILBC), 1)
APP_MODULES +=libmsilbc
endif

View file

@ -0,0 +1,43 @@
LOCAL_PATH:= $(call my-dir)/../../codec2
BUILD_PATH:= $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := libcodec2
LOCAL_SRC_FILES += \
src/dump.c \
src/lpc.c \
src/nlp.c \
src/postfilter.c \
src/sine.c \
src/codec2.c \
src/fifo.c \
src/fdmdv.c \
src/kiss_fft.c \
src/interp.c \
src/lsp.c \
src/phase.c \
src/quantise.c \
src/pack.c \
src/codebook.c \
src/codebookd.c \
src/codebookvq.c \
src/codebookjnd.c \
src/codebookjvm.c \
src/codebookvqanssi.c \
src/codebookdt.c \
src/codebookge.c \
src/golay23.c
LOCAL_C_INCLUDES += \
$(LOCAL_PATH)/src
LOCAL_CFLAGS := -ffast-math -include $(BUILD_PATH)/codec2_prefixed_symbols.h
LOCAL_ARM_MODE := arm
include $(BUILD_STATIC_LIBRARY)

View file

@ -0,0 +1,154 @@
/* This file was created extracting exported symbol of codec2 library
* The purpose is to avoid name collision with other libraries
* This was done by the following command
* nm libcodec2.so|grep " T "|sed 's/^.*\ T\ \(.*\)/#define\ \1 codec2_\1/'
* */
#define autocorrelate codec2_autocorrelate
#define de_emp codec2_de_emp
#define find_aks codec2_find_aks
#define hanning_window codec2_hanning_window
#define inverse_filter codec2_inverse_filter
#define levinson_durbin codec2_levinson_durbin
#define pre_emp codec2_pre_emp
#define synthesis_filter codec2_synthesis_filter
#define weight codec2_weight
#define nlp codec2_nlp
#define nlp_create codec2_nlp_create
#define nlp_destroy codec2_nlp_destroy
#define post_process_mbe codec2_post_process_mbe
#define post_process_sub_multiples codec2_post_process_sub_multiples
#define test_candidate_mbe codec2_test_candidate_mbe
#define postfilter codec2_postfilter
#define codec2_rand codec2_codec2_rand
#define dft_speech codec2_dft_speech
#define estimate_amplitudes codec2_estimate_amplitudes
#define est_voicing_mbe codec2_est_voicing_mbe
#define hpf codec2_hpf
#define hs_pitch_refinement codec2_hs_pitch_refinement
#define make_analysis_window codec2_make_analysis_window
#define make_synthesis_window codec2_make_synthesis_window
#define synthesise codec2_synthesise
#define two_stage_pitch_refinement codec2_two_stage_pitch_refinement
#define analyse_one_frame codec2_analyse_one_frame
#define codec2_bits_per_frame codec2_codec2_bits_per_frame
#define codec2_create codec2_codec2_create
#define codec2_decode codec2_codec2_decode
#define codec2_decode_1200 codec2_codec2_decode_1200
#define codec2_decode_1300 codec2_codec2_decode_1300
#define codec2_decode_1400 codec2_codec2_decode_1400
#define codec2_decode_1600 codec2_codec2_decode_1600
#define codec2_decode_2400 codec2_codec2_decode_2400
#define codec2_decode_3200 codec2_codec2_decode_3200
#define codec2_decode_ber codec2_codec2_decode_ber
#define codec2_destroy codec2_codec2_destroy
#define codec2_encode codec2_codec2_encode
#define codec2_encode_1200 codec2_codec2_encode_1200
#define codec2_encode_1300 codec2_codec2_encode_1300
#define codec2_encode_1400 codec2_codec2_encode_1400
#define codec2_encode_1600 codec2_codec2_encode_1600
#define codec2_encode_2400 codec2_codec2_encode_2400
#define codec2_encode_3200 codec2_codec2_encode_3200
#define codec2_get_spare_bit_index codec2_codec2_get_spare_bit_index
#define codec2_rebuild_spare_bit codec2_codec2_rebuild_spare_bit
#define codec2_samples_per_frame codec2_codec2_samples_per_frame
#define codec2_set_lpc_post_filter codec2_codec2_set_lpc_post_filter
#define codec2_set_natural_or_gray codec2_codec2_set_natural_or_gray
#define synthesise_one_frame codec2_synthesise_one_frame
#define fifo_create codec2_fifo_create
#define fifo_destroy codec2_fifo_destroy
#define fifo_read codec2_fifo_read
#define fifo_used codec2_fifo_used
#define fifo_write codec2_fifo_write
#define bits_to_dqpsk_symbols codec2_bits_to_dqpsk_symbols
#define calc_snr codec2_calc_snr
#define fdm_downconvert codec2_fdm_downconvert
#define fdmdv_48_to_8 codec2_fdmdv_48_to_8
#define fdmdv_8_to_48 codec2_fdmdv_8_to_48
#define fdmdv_bits_per_frame codec2_fdmdv_bits_per_frame
#define fdmdv_create codec2_fdmdv_create
#define fdmdv_demod codec2_fdmdv_demod
#define fdmdv_destroy codec2_fdmdv_destroy
#define fdmdv_dump_osc_mags codec2_fdmdv_dump_osc_mags
#define fdmdv_error_pattern_size codec2_fdmdv_error_pattern_size
#define fdmdv_freq_shift codec2_fdmdv_freq_shift
#define fdmdv_get_demod_stats codec2_fdmdv_get_demod_stats
#define fdmdv_get_fsep codec2_fdmdv_get_fsep
#define fdmdv_get_rx_spectrum codec2_fdmdv_get_rx_spectrum
#define fdmdv_get_test_bits codec2_fdmdv_get_test_bits
#define fdmdv_mod codec2_fdmdv_mod
#define fdmdv_put_test_bits codec2_fdmdv_put_test_bits
#define fdmdv_set_fsep codec2_fdmdv_set_fsep
#define fdmdv_use_old_qpsk_mapping codec2_fdmdv_use_old_qpsk_mapping
#define fdm_upconvert codec2_fdm_upconvert
#define freq_state codec2_freq_state
#define generate_pilot_fdm codec2_generate_pilot_fdm
#define generate_pilot_lut codec2_generate_pilot_lut
#define lpf_peak_pick codec2_lpf_peak_pick
#define qpsk_to_bits codec2_qpsk_to_bits
#define rx_est_freq_offset codec2_rx_est_freq_offset
#define rx_est_timing codec2_rx_est_timing
#define rx_filter codec2_rx_filter
#define snr_update codec2_snr_update
#define tx_filter codec2_tx_filter
#define kiss_fft codec2_kiss_fft
#define kiss_fft_alloc codec2_kiss_fft_alloc
#define kiss_fft_cleanup codec2_kiss_fft_cleanup
#define kiss_fft_next_fast_size codec2_kiss_fft_next_fast_size
#define kiss_fft_stride codec2_kiss_fft_stride
#define interp_energy codec2_interp_energy
#define interp_energy2 codec2_interp_energy2
#define interpolate codec2_interpolate
#define interpolate_lsp codec2_interpolate_lsp
#define interpolate_lsp_ver2 codec2_interpolate_lsp_ver2
#define interp_Wo codec2_interp_Wo
#define interp_Wo2 codec2_interp_Wo2
#define sample_log_amp codec2_sample_log_amp
#define lpc_to_lsp codec2_lpc_to_lsp
#define lsp_to_lpc codec2_lsp_to_lpc
#define aks_to_H codec2_aks_to_H
#define phase_synth_zero_order codec2_phase_synth_zero_order
#define aks_to_M2 codec2_aks_to_M2
#define apply_lpc_correction codec2_apply_lpc_correction
#define bw_expand_lsps codec2_bw_expand_lsps
#define bw_expand_lsps2 codec2_bw_expand_lsps2
#define check_lsp_order codec2_check_lsp_order
#define compute_weights codec2_compute_weights
#define compute_weights2 codec2_compute_weights2
#define compute_weights_anssi_mode2 codec2_compute_weights_anssi_mode2
#define decode_energy codec2_decode_energy
#define decode_lspds_scalar codec2_decode_lspds_scalar
#define decode_lsps_scalar codec2_decode_lsps_scalar
#define decode_lsps_vq codec2_decode_lsps_vq
#define decode_Wo codec2_decode_Wo
#define decode_Wo_dt codec2_decode_Wo_dt
#define decode_WoE codec2_decode_WoE
#define encode_energy codec2_encode_energy
#define encode_lspds_scalar codec2_encode_lspds_scalar
#define encode_lsps_scalar codec2_encode_lsps_scalar
#define encode_lsps_vq codec2_encode_lsps_vq
#define encode_Wo codec2_encode_Wo
#define encode_Wo_dt codec2_encode_Wo_dt
#define encode_WoE codec2_encode_WoE
#define find_nearest codec2_find_nearest
#define find_nearest_weighted codec2_find_nearest_weighted
#define force_min_lsp_dist codec2_force_min_lsp_dist
#define locate_lsps_jnd_steps codec2_locate_lsps_jnd_steps
#define lpc_post_filter codec2_lpc_post_filter
#define lsp_bits codec2_lsp_bits
#define lspd_bits codec2_lspd_bits
#define lspjvm_quantise codec2_lspjvm_quantise
#define lsp_pred_vq_bits codec2_lsp_pred_vq_bits
#define quantise codec2_quantise
#define quantise_init codec2_quantise_init
#define quantise_WoE codec2_quantise_WoE
#define speech_to_uq_lsps codec2_speech_to_uq_lsps
#define pack codec2_pack
#define pack_natural_or_gray codec2_pack_natural_or_gray
#define unpack codec2_unpack
#define unpack_natural_or_gray codec2_unpack_natural_or_gray
#define get_syndrome codec2_get_syndrome
#define golay23_count_errors codec2_golay23_count_errors
#define golay23_decode codec2_golay23_decode
#define golay23_encode codec2_golay23_encode
#define golay23_init codec2_golay23_init
#define nextcomb codec2_nextcomb

@ -1 +1 @@
Subproject commit c578229f92c9da940e01639df1998480180ab309
Subproject commit 7cbb44281c1ab12d90b3b712d2a9087df66207d2

1
submodules/mscodec2 Submodule

@ -0,0 +1 @@
Subproject commit 64df6cb53ceacdea74a021e83f664e9aaa140ef8