mirror of
https://github.com/signalwire/freeswitch.git
synced 2026-07-24 13:12:03 +00:00
move applications to use automake
This commit is contained in:
@@ -1,11 +0,0 @@
|
||||
BASE=../../../..
|
||||
|
||||
AMR_DIR=$(switch_srcdir)/libs/amr
|
||||
AMR_BUILDDIR=$(switch_builddir)/libs/amr
|
||||
AMR_A=$(AMR_BUILDDIR)/libamr.a
|
||||
|
||||
LOCAL_INSERT_CFLAGS=if test -d $(AMR_DIR); then echo "-I$(AMR_DIR)" ; else echo "-DAMR_PASSTHROUGH" ; fi ;
|
||||
LOCAL_INSERT_LDFLAGS=test ! -d $(AMR_DIR) || echo "$(AMR_A)";
|
||||
|
||||
|
||||
include $(BASE)/build/modmake.rules
|
||||
@@ -0,0 +1,21 @@
|
||||
include $(top_srcdir)/build/modmake.rulesam
|
||||
MODNAME=mod_amr
|
||||
|
||||
AMR_DIR=$(switch_srcdir)/libs/amr
|
||||
AMR_BUILDDIR=$(switch_builddir)/libs/amr
|
||||
AMR_A=$(AMR_BUILDDIR)/libamr.a
|
||||
|
||||
mod_LTLIBRARIES = mod_amr.la
|
||||
mod_amr_la_SOURCES = mod_amr.c
|
||||
mod_amr_la_CFLAGS = $(AM_CFLAGS)
|
||||
mod_amr_la_LIBADD = $(switch_builddir)/libfreeswitch.la
|
||||
mod_amr_la_LDFLAGS = -avoid-version -module -no-undefined -shared
|
||||
|
||||
if HAVE_AMR
|
||||
BUILT_SOURCES= $(AMR_A)
|
||||
mod_amr_la_CFLAGS += -I$(AMR_DIR)
|
||||
mod_amr_la_LIBADD += $(AMR_A)
|
||||
else
|
||||
mod_amr_la_CFLAGS += -DAMR_PASSTHROUGH
|
||||
endif
|
||||
|
||||
@@ -1,11 +0,0 @@
|
||||
BASE=../../../..
|
||||
|
||||
AMR_DIR=$(switch_srcdir)/libs/amrwb
|
||||
AMR_BUILDDIR=$(switch_builddir)/libs/amrwb
|
||||
AMR_A=$(AMR_BUILDDIR)/libamrwb.a
|
||||
|
||||
LOCAL_INSERT_CFLAGS=if test -d $(AMR_DIR); then echo "-I$(AMR_DIR)" ; else echo "-DAMRWB_PASSTHROUGH" ; fi ;
|
||||
LOCAL_INSERT_LDFLAGS=test ! -d $(AMR_DIR) || echo "$(AMR_A)";
|
||||
|
||||
|
||||
include $(BASE)/build/modmake.rules
|
||||
@@ -0,0 +1,21 @@
|
||||
include $(top_srcdir)/build/modmake.rulesam
|
||||
MODNAME=mod_amrwb
|
||||
|
||||
AMRWB_DIR=$(switch_srcdir)/libs/amrwb
|
||||
AMRWB_BUILDDIR=$(switch_builddir)/libs/amrwb
|
||||
AMRWB_A=$(AMRWB_BUILDDIR)/libamrwb.a
|
||||
|
||||
mod_LTLIBRARIES = mod_amrwb.la
|
||||
mod_amrwb_la_SOURCES = mod_amrwb.c
|
||||
mod_amrwb_la_CFLAGS = $(AM_CFLAGS)
|
||||
mod_amrwb_la_LIBADD = $(switch_builddir)/libfreeswitch.la
|
||||
mod_amrwb_la_LDFLAGS = -avoid-version -module -no-undefined -shared
|
||||
|
||||
if HAVE_AMRWB
|
||||
BUILT_SOURCES= $(AMRWB_A)
|
||||
mod_amrwb_la_CFLAGS += -I$(AMRWB_DIR)
|
||||
mod_amrwb_la_LIBADD += $(AMRWB_A)
|
||||
else
|
||||
mod_amrwb_la_CFLAGS += -DAMRWB_PASSTHROUGH
|
||||
endif
|
||||
|
||||
@@ -0,0 +1,8 @@
|
||||
include $(top_srcdir)/build/modmake.rulesam
|
||||
MODNAME=mod_b64
|
||||
|
||||
mod_LTLIBRARIES = mod_b64.la
|
||||
mod_b64_la_SOURCES = mod_b64.c
|
||||
mod_b64_la_CFLAGS = $(AM_CFLAGS)
|
||||
mod_b64_la_LIBADD = $(switch_builddir)/libfreeswitch.la
|
||||
mod_b64_la_LDFLAGS = -avoid-version -module -no-undefined -shared
|
||||
@@ -1,13 +0,0 @@
|
||||
BASE=../../../..
|
||||
|
||||
BV_DIR=$(switch_srcdir)/libs/broadvoice
|
||||
BV_BUILDDIR=$(switch_builddir)/libs/broadvoice
|
||||
LOCAL_CFLAGS=-I$(BV_BUILDDIR)/src -I$(BV_DIR)/src
|
||||
BV_LA=$(BV_BUILDDIR)/src/.libs/libbroadvoice.la
|
||||
LOCAL_LIBADD=$(BV_LA)
|
||||
include $(BASE)/build/modmake.rules
|
||||
|
||||
$(BV_LA): $(BV_DIR)/.update
|
||||
cd $(BV_BUILDDIR) && $(MAKE)
|
||||
$(TOUCH_TARGET)
|
||||
|
||||
@@ -0,0 +1,17 @@
|
||||
include $(top_srcdir)/build/modmake.rulesam
|
||||
MODNAME=mod_bv
|
||||
|
||||
BV_DIR=$(switch_srcdir)/libs/broadvoice
|
||||
BV_BUILDDIR=$(switch_builddir)/libs/broadvoice
|
||||
BV_LA=$(BV_BUILDDIR)/src/.libs/libbroadvoice.la
|
||||
BUILT_SOURCES=$(BV_LA)
|
||||
|
||||
mod_LTLIBRARIES = mod_bv.la
|
||||
mod_bv_la_SOURCES = mod_bv.c
|
||||
mod_bv_la_CFLAGS = $(AM_CFLAGS) -I$(BV_BUILDDIR)/src -I$(BV_DIR)/src
|
||||
mod_bv_la_LIBADD = $(switch_builddir)/libfreeswitch.la $(BV_LA)
|
||||
mod_bv_la_LDFLAGS = -avoid-version -module -no-undefined -shared
|
||||
|
||||
$(BV_LA): $(BV_DIR)/.update
|
||||
cd $(BV_BUILDDIR) && $(MAKE)
|
||||
$(TOUCH_TARGET)
|
||||
@@ -1,14 +1,19 @@
|
||||
BASE=../../../..
|
||||
include $(top_srcdir)/build/modmake.rulesam
|
||||
MODNAME=mod_celt
|
||||
|
||||
CELT=celt-0.10.0
|
||||
|
||||
CELT_DIR=$(switch_srcdir)/libs/$(CELT)
|
||||
CELT_BUILDDIR=$(switch_builddir)/libs/$(CELT)
|
||||
LOCAL_CFLAGS=-I$(CELT_DIR)/libcelt
|
||||
CELT_LA=$(CELT_BUILDDIR)/libcelt/.libs/libcelt0.la
|
||||
LOCAL_LIBADD=$(CELT_LA)
|
||||
include $(BASE)/build/modmake.rules
|
||||
|
||||
mod_LTLIBRARIES = mod_celt.la
|
||||
mod_celt_la_SOURCES = mod_celt.c
|
||||
mod_celt_la_CFLAGS = $(AM_CFLAGS) -I$(CELT_DIR)/libcelt
|
||||
mod_celt_la_LIBADD = $(switch_builddir)/libfreeswitch.la $(CELT_LA)
|
||||
mod_celt_la_LDFLAGS = -avoid-version -module -no-undefined -shared
|
||||
|
||||
BUILT_SOURCES=$(CELT_LA)
|
||||
$(CELT_DIR):
|
||||
$(GETLIB) $(CELT).tar.gz
|
||||
|
||||
@@ -1,14 +0,0 @@
|
||||
BASE=../../../..
|
||||
|
||||
CODEC2_DIR=$(switch_srcdir)/libs/libcodec2
|
||||
CODEC2_BUILDDIR=$(switch_builddir)/libs/libcodec2
|
||||
CODEC2LA=$(CODEC2_BUILDDIR)/src/libcodec2.la
|
||||
|
||||
LOCAL_CFLAGS=-I$(CODEC2_DIR)/include -I$(CODEC2_BUILDDIR)/src
|
||||
LOCAL_LIBADD=$(CODEC2LA)
|
||||
include $(BASE)/build/modmake.rules
|
||||
|
||||
$(CODEC2LA): $(CODEC2_DIR) $(CODEC2_DIR)/.update
|
||||
cd $(CODEC2_BUILDDIR) && $(MAKE)
|
||||
$(TOUCH_TARGET)
|
||||
|
||||
@@ -0,0 +1,19 @@
|
||||
include $(top_srcdir)/build/modmake.rulesam
|
||||
MODNAME=mod_codec2
|
||||
|
||||
CODEC2_DIR=$(switch_srcdir)/libs/libcodec2
|
||||
CODEC2_BUILDDIR=$(switch_builddir)/libs/libcodec2
|
||||
CODEC2LA=$(CODEC2_BUILDDIR)/src/libcodec2.la
|
||||
|
||||
mod_LTLIBRARIES = mod_codec2.la
|
||||
mod_codec2_la_SOURCES = mod_codec2.c
|
||||
mod_codec2_la_CFLAGS = $(AM_CFLAGS) -I$(CODEC2_DIR)/include -I$(CODEC2_BUILDDIR)/src
|
||||
mod_codec2_la_LIBADD = $(switch_builddir)/libfreeswitch.la $(CODEC2LA)
|
||||
mod_codec2_la_LDFLAGS = -avoid-version -module -no-undefined -shared
|
||||
|
||||
BUILT_SOURCES=$(CODEC2LA)
|
||||
|
||||
$(CODEC2LA): $(CODEC2_DIR) $(CODEC2_DIR)/.update
|
||||
cd $(CODEC2_BUILDDIR) && $(MAKE)
|
||||
$(TOUCH_TARGET)
|
||||
|
||||
@@ -0,0 +1,8 @@
|
||||
include $(top_srcdir)/build/modmake.rulesam
|
||||
MODNAME=mod_dahdi_codec
|
||||
|
||||
mod_LTLIBRARIES = mod_dahdi_codec.la
|
||||
mod_dahdi_codec_la_SOURCES = mod_dahdi_codec.c
|
||||
mod_dahdi_codec_la_CFLAGS = $(AM_CFLAGS)
|
||||
mod_dahdi_codec_la_LIBADD = $(switch_builddir)/libfreeswitch.la
|
||||
mod_dahdi_codec_la_LDFLAGS = -avoid-version -module -no-undefined -shared
|
||||
@@ -1,9 +0,0 @@
|
||||
BASE=../../../..
|
||||
DIR=$(BASE)/libs/libg723_1
|
||||
BUILDDIR=$(BASE)/libs/libg723_1
|
||||
A=$(BUILDDIR)/.libs/libg723.a
|
||||
|
||||
LOCAL_INSERT_CFLAGS=if test -f $(A); then echo "-I$(DIR)/src/include" ; else echo "-DG723_PASSTHROUGH" ; fi ;
|
||||
LOCAL_INSERT_LDFLAGS=test ! -f $(A) || echo $(A)
|
||||
|
||||
include $(BASE)/build/modmake.rules
|
||||
@@ -0,0 +1,19 @@
|
||||
include $(top_srcdir)/build/modmake.rulesam
|
||||
MODNAME=mod_g723_1
|
||||
|
||||
DIR=$(switch_srcdir)/libs/libg723_1
|
||||
BUILDDIR=$(switch_builddir)/libs/libg723_1
|
||||
G723_1_A=$(BUILDDIR)/.libs/libg723.a
|
||||
|
||||
mod_LTLIBRARIES = mod_g723_1.la
|
||||
mod_g723_1_la_SOURCES = mod_g723_1.c
|
||||
mod_g723_1_la_CFLAGS = $(AM_CFLAGS)
|
||||
mod_g723_1_la_LIBADD = $(switch_builddir)/libfreeswitch.la
|
||||
mod_g723_1_la_LDFLAGS = -avoid-version -module -no-undefined -shared
|
||||
|
||||
if HAVE_G723_1
|
||||
mod_g723_1_la_CFLAGS += -I$(DIR)/src/include
|
||||
mod_g723_1_la_LIBADD += $(G723_1_A)
|
||||
else
|
||||
mod_g723_1_la_CFLAGS += -DG723_PASSTHROUGH
|
||||
endif
|
||||
@@ -1,9 +0,0 @@
|
||||
BASE=../../../..
|
||||
|
||||
DIR=$(BASE)/libs/libg729
|
||||
BUILDDIR=$(BASE)/libs/libg729
|
||||
A=$(BUILDDIR)/.libs/libg729.a
|
||||
|
||||
LOCAL_INSERT_CFLAGS=if test -f $(A); then echo "-I$(DIR)/src/include" ; else echo "-DG729_PASSTHROUGH" ; fi ;
|
||||
LOCAL_INSERT_LDFLAGS=test ! -f $(A) || echo $(A)
|
||||
include $(BASE)/build/modmake.rules
|
||||
@@ -0,0 +1,19 @@
|
||||
include $(top_srcdir)/build/modmake.rulesam
|
||||
MODNAME=mod_g729
|
||||
|
||||
G729_DIR=$(switch_srcdir)/libs/libg729
|
||||
G729_BUILDDIR=$(switch_builddir)/libs/libg729
|
||||
G729_A=$(BUILDDIR)/.libs/libg729.a
|
||||
|
||||
mod_LTLIBRARIES = mod_g729.la
|
||||
mod_g729_la_SOURCES = mod_g729.c
|
||||
mod_g729_la_CFLAGS = $(AM_CFLAGS)
|
||||
mod_g729_la_LIBADD = $(switch_builddir)/libfreeswitch.la
|
||||
mod_g729_la_LDFLAGS = -avoid-version -module -no-undefined -shared
|
||||
|
||||
if HAVE_G729
|
||||
mod_g729_la_CFLAGS += -I$(G729_DIR)/src/include
|
||||
mod_g729_la_LIBADD +- $(G729_A)
|
||||
else
|
||||
mod_g729_la_CFLAGS += -DG729_PASSTHROUGH
|
||||
endif
|
||||
@@ -1,2 +0,0 @@
|
||||
BASE=../../../..
|
||||
include $(BASE)/build/modmake.rules
|
||||
@@ -0,0 +1,8 @@
|
||||
include $(top_srcdir)/build/modmake.rulesam
|
||||
MODNAME=mod_h26x
|
||||
|
||||
mod_LTLIBRARIES = mod_h26x.la
|
||||
mod_h26x_la_SOURCES = mod_h26x.c
|
||||
mod_h26x_la_CFLAGS = $(AM_CFLAGS)
|
||||
mod_h26x_la_LIBADD = $(switch_builddir)/libfreeswitch.la
|
||||
mod_h26x_la_LDFLAGS = -avoid-version -module -no-undefined -shared
|
||||
@@ -1,12 +0,0 @@
|
||||
BASE=../../../..
|
||||
ILBC_DIR=$(switch_srcdir)/libs/ilbc
|
||||
ILBC_BUILDDIR=$(switch_builddir)/libs/ilbc
|
||||
ILBCLA=$(ILBC_BUILDDIR)/src/libilbc.la
|
||||
LOCAL_CFLAGS=-I$(ILBC_DIR)/src -I$(ILBC_BUILDDIR)/src
|
||||
LOCAL_LIBADD=$(ILBCLA)
|
||||
|
||||
include $(BASE)/build/modmake.rules
|
||||
|
||||
$(ILBCLA): $(ILBC_DIR) $(ILBC_DIR)/.update
|
||||
cd $(ILBC_BUILDDIR) && $(MAKE)
|
||||
$(TOUCH_TARGET)
|
||||
@@ -0,0 +1,18 @@
|
||||
include $(top_srcdir)/build/modmake.rulesam
|
||||
MODNAME=mod_ilbc
|
||||
|
||||
ILBC_DIR=$(switch_srcdir)/libs/ilbc
|
||||
ILBC_BUILDDIR=$(switch_builddir)/libs/ilbc
|
||||
ILBCLA=$(ILBC_BUILDDIR)/src/libilbc.la
|
||||
|
||||
mod_LTLIBRARIES = mod_ilbc.la
|
||||
mod_ilbc_la_SOURCES = mod_ilbc.c
|
||||
mod_ilbc_la_CFLAGS = $(AM_CFLAGS) -I$(ILBC_DIR)/src -I$(ILBC_BUILDDIR)/src
|
||||
mod_ilbc_la_LIBADD = $(switch_builddir)/libfreeswitch.la $(ILBCLA)
|
||||
mod_ilbc_la_LDFLAGS = -avoid-version -module -no-undefined -shared
|
||||
|
||||
BUILT_SOURCES=$(ILBCLA)
|
||||
|
||||
$(ILBCLA): $(ILBC_DIR) $(ILBC_DIR)/.update
|
||||
cd $(ILBC_BUILDDIR) && $(MAKE)
|
||||
$(TOUCH_TARGET)
|
||||
@@ -1,71 +0,0 @@
|
||||
BASE=../../../..
|
||||
|
||||
LOCAL_SOURCES=arith_routines.c\
|
||||
arith_routines_hist.c\
|
||||
arith_routines_logist.c\
|
||||
auto_correlation.c\
|
||||
auto_corr_to_refl_coef.c\
|
||||
bandwidth_estimator.c\
|
||||
complex_bit_reverse.c\
|
||||
complex_fft.c\
|
||||
copy_set_operations.c\
|
||||
crc.c\
|
||||
cross_correlation.c\
|
||||
decode_bwe.c\
|
||||
decode.c\
|
||||
division_operations.c\
|
||||
dot_product_with_scale.c\
|
||||
downsample_fast.c\
|
||||
encode.c\
|
||||
encode_lpc_swb.c\
|
||||
energy.c\
|
||||
entropy_coding.c\
|
||||
fft.c\
|
||||
filter_ar.c\
|
||||
filter_ar_fast_q12.c\
|
||||
filterbanks.c\
|
||||
filterbank_tables.c\
|
||||
filter_functions.c\
|
||||
filter_ma_fast_q12.c\
|
||||
get_hanning_window.c\
|
||||
get_scaling_square.c\
|
||||
ilbc_specific_functions.c\
|
||||
intialize.c\
|
||||
isac.c\
|
||||
lattice.c\
|
||||
levinson_durbin.c\
|
||||
lpc_analysis.c\
|
||||
lpc_gain_swb_tables.c\
|
||||
lpc_shape_swb12_tables.c\
|
||||
lpc_shape_swb16_tables.c\
|
||||
lpc_tables.c\
|
||||
lpc_to_refl_coef.c\
|
||||
min_max_operations.c\
|
||||
min_max_operations_neon.c\
|
||||
pitch_estimator.c\
|
||||
pitch_filter.c\
|
||||
pitch_gain_tables.c\
|
||||
pitch_lag_tables.c\
|
||||
randomization_functions.c\
|
||||
refl_coef_to_lpc.c\
|
||||
resample_48khz.c\
|
||||
resample_by_2.c\
|
||||
resample_by_2_internal.c\
|
||||
resample.c\
|
||||
resample_fractional.c\
|
||||
spectrum_ar_model_tables.c\
|
||||
splitting_filter.c\
|
||||
spl_sqrt.c\
|
||||
spl_sqrt_floor.c\
|
||||
spl_version.c\
|
||||
sqrt_of_one_minus_x_squared.c\
|
||||
transform.c\
|
||||
vector_scaling_operations.c\
|
||||
webrtc_fft_t_1024_8.c\
|
||||
webrtc_fft_t_rad.c ""
|
||||
|
||||
LOCAL_OBJS=$(shell echo $(LOCAL_SOURCES) | sed "s/.c /.o /g")
|
||||
LOCAL_CFLAGS=-w -I.
|
||||
|
||||
include $(BASE)/build/modmake.rules
|
||||
|
||||
@@ -0,0 +1,17 @@
|
||||
include $(top_srcdir)/build/modmake.rulesam
|
||||
MODNAME=mod_isac
|
||||
|
||||
mod_LTLIBRARIES = mod_isac.la
|
||||
mod_isac_la_SOURCES = mod_isac.c arith_routines.c arith_routines_hist.c arith_routines_logist.c auto_correlation.c auto_corr_to_refl_coef.c
|
||||
mod_isac_la_SOURCES += bandwidth_estimator.c complex_bit_reverse.c complex_fft.c copy_set_operations.c crc.c cross_correlation.c decode_bwe.c
|
||||
mod_isac_la_SOURCES += decode.c division_operations.c dot_product_with_scale.c downsample_fast.c encode.c encode_lpc_swb.c energy.c entropy_coding.c
|
||||
mod_isac_la_SOURCES += fft.c filter_ar.c filter_ar_fast_q12.c filterbanks.c filterbank_tables.c filter_functions.c filter_ma_fast_q12.c
|
||||
mod_isac_la_SOURCES += get_hanning_window.c get_scaling_square.c ilbc_specific_functions.c intialize.c isac.c lattice.c levinson_durbin.c
|
||||
mod_isac_la_SOURCES += lpc_analysis.c lpc_gain_swb_tables.c lpc_shape_swb12_tables.c lpc_shape_swb16_tables.c lpc_tables.c
|
||||
mod_isac_la_SOURCES += lpc_to_refl_coef.c min_max_operations.c min_max_operations_neon.c pitch_estimator.c pitch_filter.c pitch_gain_tables.c
|
||||
mod_isac_la_SOURCES += pitch_lag_tables.c randomization_functions.c refl_coef_to_lpc.c resample_48khz.c resample_by_2.c resample_by_2_internal.c
|
||||
mod_isac_la_SOURCES += resample.c resample_fractional.c spectrum_ar_model_tables.c splitting_filter.c spl_sqrt.c spl_sqrt_floor.c spl_version.c
|
||||
mod_isac_la_SOURCES += sqrt_of_one_minus_x_squared.c transform.c vector_scaling_operations.c webrtc_fft_t_1024_8.c webrtc_fft_t_rad.c
|
||||
mod_isac_la_CFLAGS = $(AM_CFLAGS) -w -I.
|
||||
mod_isac_la_LIBADD = $(switch_builddir)/libfreeswitch.la
|
||||
mod_isac_la_LDFLAGS = -avoid-version -module -no-undefined -shared
|
||||
@@ -1,2 +0,0 @@
|
||||
BASE=../../../..
|
||||
include $(BASE)/build/modmake.rules
|
||||
@@ -0,0 +1,8 @@
|
||||
include $(top_srcdir)/build/modmake.rulesam
|
||||
MODNAME=mod_mp4v
|
||||
|
||||
mod_LTLIBRARIES = mod_mp4v.la
|
||||
mod_mp4v_la_SOURCES = mod_mp4v.c
|
||||
mod_mp4v_la_CFLAGS = $(AM_CFLAGS)
|
||||
mod_mp4v_la_LIBADD = $(switch_builddir)/libfreeswitch.la
|
||||
mod_mp4v_la_LDFLAGS = -avoid-version -module -no-undefined -shared
|
||||
@@ -1,18 +1,17 @@
|
||||
BASE=../../../..
|
||||
|
||||
include $(top_srcdir)/build/modmake.rulesam
|
||||
MODNAME=mod_opus
|
||||
OPUS=opus-1.1-p2
|
||||
|
||||
OPUS_DIR=$(switch_srcdir)/libs/$(OPUS)
|
||||
OPUS_BUILDDIR=$(switch_builddir)/libs/$(OPUS)
|
||||
LOCAL_CFLAGS=-I$(OPUS_DIR)/include -g -O2
|
||||
LOCAL_LDFLAGS=-lm -lz
|
||||
|
||||
OPUS_LA=$(OPUS_BUILDDIR)/.libs/libopus.la
|
||||
|
||||
LOCAL_LIBADD=$(OPUS_LA)
|
||||
|
||||
include $(BASE)/build/modmake.rules
|
||||
mod_LTLIBRARIES = mod_opus.la
|
||||
mod_opus_la_SOURCES = mod_opus.c
|
||||
mod_opus_la_CFLAGS = $(AM_CFLAGS) -I$(OPUS_DIR)/include
|
||||
mod_opus_la_LIBADD = $(switch_builddir)/libfreeswitch.la $(OPUS_LA)
|
||||
mod_opus_la_LDFLAGS = -avoid-version -module -no-undefined -shared -lm -lz
|
||||
|
||||
BUILT_SOURCES=$(OPUS_LA)
|
||||
$(OPUS_DIR):
|
||||
$(GETLIB) $(OPUS).tar.gz
|
||||
|
||||
@@ -23,7 +22,5 @@ $(OPUS_DIR)/Makefile: $(OPUS_DIR)
|
||||
$(OPUS_LA): $(OPUS_DIR)/Makefile
|
||||
cd $(OPUS_BUILDDIR) && $(MAKE)
|
||||
|
||||
|
||||
|
||||
$(MODNAME).lo: $(OPUS_LA)
|
||||
|
||||
@@ -1,3 +0,0 @@
|
||||
BASE=../../../..
|
||||
LOCAL_LDFLAGS += -lsngtc_node
|
||||
include $(BASE)/build/modmake.rules
|
||||
@@ -0,0 +1,8 @@
|
||||
include $(top_srcdir)/build/modmake.rulesam
|
||||
MODNAME=mod_sangoma_codec
|
||||
|
||||
mod_LTLIBRARIES = mod_sangoma_codec.la
|
||||
mod_sangoma_codec_la_SOURCES = mod_sangoma_codec.c
|
||||
mod_sangoma_codec_la_CFLAGS = $(AM_CFLAGS)
|
||||
mod_sangoma_codec_la_LIBADD = $(switch_builddir)/libfreeswitch.la
|
||||
mod_sangoma_codec_la_LDFLAGS = -avoid-version -module -no-undefined -shared -lsngtc_node
|
||||
@@ -1,12 +0,0 @@
|
||||
BASE=../../../..
|
||||
SILK_DIR=$(switch_srcdir)/libs/silk
|
||||
SILK_BUILDDIR=$(switch_builddir)/libs/silk
|
||||
LOCAL_CFLAGS=-I$(SILK_DIR)/src -I$(SILK_DIR)/interface
|
||||
SILK_LA=$(SILK_BUILDDIR)/.libs/libSKP_SILK_SDK.la
|
||||
LOCAL_LIBADD=$(SILK_LA)
|
||||
LOCAL_OBJS=$(BASE)/libs/stfu/stfu.o
|
||||
include $(BASE)/build/modmake.rules
|
||||
|
||||
$(SILK_LA): $(SILK_DIR)/.update
|
||||
cd $(SILK_BUILDDIR) && ./configure --disable-shared && make clean && $(MAKE)
|
||||
$(TOUCH_TARGET)
|
||||
@@ -0,0 +1,18 @@
|
||||
include $(top_srcdir)/build/modmake.rulesam
|
||||
MODNAME=mod_silk
|
||||
|
||||
SILK_DIR=$(switch_srcdir)/libs/silk
|
||||
SILK_BUILDDIR=$(switch_builddir)/libs/silk
|
||||
SILK_LA=$(SILK_BUILDDIR)/.libs/libSKP_SILK_SDK.la
|
||||
|
||||
mod_LTLIBRARIES = mod_silk.la
|
||||
mod_silk_la_SOURCES = mod_silk.c $(switch_srcdir)/libs/stfu/stfu.c
|
||||
mod_silk_la_CFLAGS = $(AM_CFLAGS) -I$(SILK_DIR)/src -I$(SILK_DIR)/interface
|
||||
mod_silk_la_LIBADD = $(switch_builddir)/libfreeswitch.la $(SILK_LA)
|
||||
mod_silk_la_LDFLAGS = -avoid-version -module -no-undefined -shared
|
||||
|
||||
BUILT_SOURCES=$(SILK_LA)
|
||||
|
||||
$(SILK_LA): $(SILK_DIR)/.update
|
||||
cd $(SILK_BUILDDIR) && ./configure --disable-shared && make clean && $(MAKE)
|
||||
$(TOUCH_TARGET)
|
||||
@@ -1,11 +0,0 @@
|
||||
BASE=../../../..
|
||||
G722_1_DIR=$(switch_srcdir)/libs/libg722_1
|
||||
G722_1_BUILDDIR=$(switch_builddir)/libs/libg722_1
|
||||
LOCAL_CFLAGS=-I$(G722_1_DIR)/src -I$(G722_1_BUILDDIR)/src
|
||||
G722_1_LA=$(G722_1_BUILDDIR)/src/.libs/libg722_1.la
|
||||
LOCAL_LIBADD=$(G722_1_LA)
|
||||
include $(BASE)/build/modmake.rules
|
||||
|
||||
$(G722_1_LA): $(G722_1_DIR)/.update
|
||||
cd $(G722_1_BUILDDIR) && $(MAKE)
|
||||
$(TOUCH_TARGET)
|
||||
@@ -0,0 +1,16 @@
|
||||
include $(top_srcdir)/build/modmake.rulesam
|
||||
MODNAME=mod_siren
|
||||
G722_1_DIR=$(switch_srcdir)/libs/libg722_1
|
||||
G722_1_BUILDDIR=$(switch_builddir)/libs/libg722_1
|
||||
G722_1_LA=$(G722_1_BUILDDIR)/src/.libs/libg722_1.la
|
||||
mod_LTLIBRARIES = mod_siren.la
|
||||
mod_siren_la_SOURCES = mod_siren.c
|
||||
mod_siren_la_CFLAGS = $(AM_CFLAGS) -I$(G722_1_DIR)/src -I$(G722_1_BUILDDIR)/src
|
||||
mod_siren_la_LIBADD = $(switch_builddir)/libfreeswitch.la $(G722_1_LA)
|
||||
mod_siren_la_LDFLAGS = -avoid-version -module -no-undefined -shared
|
||||
|
||||
BUILT_SOURCES=$(G722_1_LA)
|
||||
|
||||
$(G722_1_LA): $(G722_1_DIR)/.update
|
||||
cd $(G722_1_BUILDDIR) && $(MAKE)
|
||||
$(TOUCH_TARGET)
|
||||
@@ -0,0 +1,8 @@
|
||||
include $(top_srcdir)/build/modmake.rulesam
|
||||
MODNAME=mod_skel_codec
|
||||
|
||||
mod_LTLIBRARIES = mod_skel_codec.la
|
||||
mod_skel_codec_la_SOURCES = mod_skel_codec.c
|
||||
mod_skel_codec_la_CFLAGS = $(AM_CFLAGS)
|
||||
mod_skel_codec_la_LIBADD = $(switch_builddir)/libfreeswitch.la
|
||||
mod_skel_codec_la_LDFLAGS = -avoid-version -module -no-undefined -shared
|
||||
@@ -1,2 +0,0 @@
|
||||
BASE=../../../..
|
||||
include $(BASE)/build/modmake.rules
|
||||
@@ -0,0 +1,8 @@
|
||||
include $(top_srcdir)/build/modmake.rulesam
|
||||
MODNAME=mod_theora
|
||||
|
||||
mod_LTLIBRARIES = mod_theora.la
|
||||
mod_theora_la_SOURCES = mod_theora.c
|
||||
mod_theora_la_CFLAGS = $(AM_CFLAGS)
|
||||
mod_theora_la_LIBADD = $(switch_builddir)/libfreeswitch.la
|
||||
mod_theora_la_LDFLAGS = -avoid-version -module -no-undefined -shared
|
||||
@@ -1,23 +0,0 @@
|
||||
BASE=../../../..
|
||||
|
||||
TIFF_DIR=$(switch_srcdir)/libs/tiff-4.0.2
|
||||
TIFF_BUILDDIR=$(switch_builddir)/libs/tiff-4.0.2
|
||||
TIFF_LA=$(TIFF_BUILDDIR)/libtiff/libtiff.la
|
||||
|
||||
SPANDSP_DIR=$(switch_srcdir)/libs/spandsp
|
||||
SPANDSP_BUILDDIR=$(switch_builddir)/libs/spandsp
|
||||
SPANDSP_LA=$(SPANDSP_BUILDDIR)/src/libspandsp.la
|
||||
|
||||
LOCAL_CFLAGS=-I$(SPANDSP_DIR)/src -I$(TIFF_DIR)/libtiff -I$(SPANDSP_BUILDDIR)/src -I$(TIFF_BUILDDIR)/libtiff
|
||||
LOCAL_LIBADD=$(SPANDSP_LA)
|
||||
|
||||
include $(BASE)/build/modmake.rules
|
||||
$(MODNAME).lo: $(SPANDSP_LA) $(TIFF_LA)
|
||||
|
||||
$(SPANDSP_LA): $(TIFF_LA) $(SPANDSP_DIR) $(SPANDSP_DIR)/.update
|
||||
cd $(SPANDSP_BUILDDIR) && $(MAKE) -j1
|
||||
$(TOUCH_TARGET)
|
||||
|
||||
$(TIFF_LA): $(TIFF_DIR) $(TIFF_DIR)/.update
|
||||
cd $(TIFF_BUILDDIR) && $(MAKE) -j1
|
||||
$(TOUCH_TARGET)
|
||||
@@ -1,287 +0,0 @@
|
||||
<?xml version="1.0" encoding="Windows-1252"?>
|
||||
<VisualStudioProject
|
||||
ProjectType="Visual C++"
|
||||
Version="9.00"
|
||||
Name="mod_voipcodecs"
|
||||
ProjectGUID="{42B6C2E3-7D5F-4204-A1F6-C0376B86C315}"
|
||||
RootNamespace="mod_voipcodecs"
|
||||
Keyword="Win32Proj"
|
||||
TargetFrameworkVersion="131072"
|
||||
>
|
||||
<Platforms>
|
||||
<Platform
|
||||
Name="Win32"
|
||||
/>
|
||||
<Platform
|
||||
Name="x64"
|
||||
/>
|
||||
</Platforms>
|
||||
<ToolFiles>
|
||||
</ToolFiles>
|
||||
<Configurations>
|
||||
<Configuration
|
||||
Name="Debug|Win32"
|
||||
ConfigurationType="2"
|
||||
InheritedPropertySheets="..\..\..\..\w32\module_debug.vsprops"
|
||||
CharacterSet="2"
|
||||
>
|
||||
<Tool
|
||||
Name="VCPreBuildEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXMLDataGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCWebServiceProxyGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCMIDLTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
AdditionalIncludeDirectories=""$(InputDir)..\..\..\..\libs\spandsp\src\msvc";"$(InputDir)..\..\..\..\libs\spandsp\src";"$(InputDir)..\..\..\..\libs\tiff-4.0.2\libtiff""
|
||||
UsePrecompiledHeader="0"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManagedResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
RandomizedBaseAddress="1"
|
||||
DataExecutionPrevention="0"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCALinkTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManifestTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXDCMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCBscMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCFxCopTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCAppVerifierTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPostBuildEventTool"
|
||||
/>
|
||||
</Configuration>
|
||||
<Configuration
|
||||
Name="Debug|x64"
|
||||
ConfigurationType="2"
|
||||
InheritedPropertySheets="..\..\..\..\w32\module_debug.vsprops"
|
||||
CharacterSet="2"
|
||||
>
|
||||
<Tool
|
||||
Name="VCPreBuildEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXMLDataGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCWebServiceProxyGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCMIDLTool"
|
||||
TargetEnvironment="3"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
AdditionalIncludeDirectories=""$(InputDir)..\..\..\..\libs\spandsp\src\msvc";"$(InputDir)..\..\..\..\libs\spandsp\src";"$(InputDir)..\..\..\..\libs\tiff-4.0.2\libtiff""
|
||||
UsePrecompiledHeader="0"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManagedResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
OutputFile="$(SolutionDir)$(PlatformName)\$(ConfigurationName)/mod/$(ProjectName).dll"
|
||||
RandomizedBaseAddress="1"
|
||||
DataExecutionPrevention="0"
|
||||
TargetMachine="17"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCALinkTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManifestTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXDCMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCBscMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCFxCopTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCAppVerifierTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPostBuildEventTool"
|
||||
/>
|
||||
</Configuration>
|
||||
<Configuration
|
||||
Name="Release|Win32"
|
||||
ConfigurationType="2"
|
||||
InheritedPropertySheets="..\..\..\..\w32\module_release.vsprops"
|
||||
CharacterSet="2"
|
||||
>
|
||||
<Tool
|
||||
Name="VCPreBuildEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXMLDataGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCWebServiceProxyGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCMIDLTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
AdditionalIncludeDirectories=""$(InputDir)..\..\..\..\libs\spandsp\src\msvc";"$(InputDir)..\..\..\..\libs\spandsp\src";"$(InputDir)..\..\..\..\libs\tiff-4.0.2\libtiff""
|
||||
UsePrecompiledHeader="0"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManagedResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
RandomizedBaseAddress="1"
|
||||
DataExecutionPrevention="0"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCALinkTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManifestTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXDCMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCBscMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCFxCopTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCAppVerifierTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPostBuildEventTool"
|
||||
/>
|
||||
</Configuration>
|
||||
<Configuration
|
||||
Name="Release|x64"
|
||||
ConfigurationType="2"
|
||||
InheritedPropertySheets="..\..\..\..\w32\module_release.vsprops"
|
||||
CharacterSet="2"
|
||||
>
|
||||
<Tool
|
||||
Name="VCPreBuildEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXMLDataGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCWebServiceProxyGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCMIDLTool"
|
||||
TargetEnvironment="3"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
AdditionalIncludeDirectories=""$(InputDir)..\..\..\..\libs\spandsp\src\msvc";"$(InputDir)..\..\..\..\libs\spandsp\src";"$(InputDir)..\..\..\..\libs\tiff-4.0.2\libtiff""
|
||||
UsePrecompiledHeader="0"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManagedResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
OutputFile="$(SolutionDir)$(PlatformName)\$(ConfigurationName)/mod/$(ProjectName).dll"
|
||||
RandomizedBaseAddress="1"
|
||||
DataExecutionPrevention="0"
|
||||
TargetMachine="17"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCALinkTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManifestTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXDCMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCBscMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCFxCopTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCAppVerifierTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPostBuildEventTool"
|
||||
/>
|
||||
</Configuration>
|
||||
</Configurations>
|
||||
<References>
|
||||
</References>
|
||||
<Files>
|
||||
<File
|
||||
RelativePath=".\mod_voipcodecs.c"
|
||||
>
|
||||
</File>
|
||||
</Files>
|
||||
<Globals>
|
||||
</Globals>
|
||||
</VisualStudioProject>
|
||||
@@ -1,969 +0,0 @@
|
||||
/*
|
||||
* FreeSWITCH Modular Media Switching Software Library / Soft-Switch Application
|
||||
* Copyright (C) 2005-2014, Anthony Minessale II <anthm@freeswitch.org>
|
||||
*
|
||||
* Version: MPL 1.1
|
||||
*
|
||||
* The contents of this file are subject to the Mozilla Public License Version
|
||||
* 1.1 (the "License"); you may not use this file except in compliance with
|
||||
* the License. You may obtain a copy of the License at
|
||||
* http://www.mozilla.org/MPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS" basis,
|
||||
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
||||
* for the specific language governing rights and limitations under the
|
||||
* License.
|
||||
*
|
||||
* The Original Code is FreeSWITCH Modular Media Switching Software Library / G722 codec module
|
||||
*
|
||||
* The Initial Developer of the Original Code is
|
||||
* Brian K. West <brian@freeswitch.org>
|
||||
* Portions created by the Initial Developer are Copyright (C)
|
||||
* the Initial Developer. All Rights Reserved.
|
||||
*
|
||||
* Contributor(s):
|
||||
* Brian K. West <brian@freeswitch.org>
|
||||
* Anthony Minessale II <anthm@freeswitch.org>
|
||||
* Michael Jerris <mike@jerris.com>
|
||||
*
|
||||
* mod_voipcodecs.c -- VoIP Codecs (G.711, G.722, G.726, GSM-FR, IMA_ADPCM, LPC10)
|
||||
*
|
||||
* This module wouldn't be possible without generous contributions from Steve Underwood. Thanks!
|
||||
*
|
||||
*/
|
||||
|
||||
#include <switch.h>
|
||||
#include "spandsp.h"
|
||||
|
||||
SWITCH_MODULE_LOAD_FUNCTION(mod_voipcodecs_load);
|
||||
SWITCH_MODULE_DEFINITION(mod_voipcodecs, mod_voipcodecs_load, NULL, NULL);
|
||||
|
||||
/* LPC10 - START */
|
||||
|
||||
struct lpc10_context {
|
||||
lpc10_encode_state_t *encoder_object;
|
||||
lpc10_decode_state_t *decoder_object;
|
||||
};
|
||||
|
||||
static switch_status_t switch_lpc10_init(switch_codec_t *codec, switch_codec_flag_t flags, const switch_codec_settings_t *codec_settings)
|
||||
{
|
||||
uint32_t encoding, decoding;
|
||||
struct lpc10_context *context = NULL;
|
||||
|
||||
encoding = (flags & SWITCH_CODEC_FLAG_ENCODE);
|
||||
decoding = (flags & SWITCH_CODEC_FLAG_DECODE);
|
||||
|
||||
if (!(encoding || decoding) || (!(context = switch_core_alloc(codec->memory_pool, sizeof(struct lpc10_context))))) {
|
||||
return SWITCH_STATUS_FALSE;
|
||||
} else {
|
||||
|
||||
if (encoding) {
|
||||
context->encoder_object = lpc10_encode_init(context->encoder_object, TRUE);
|
||||
}
|
||||
|
||||
if (decoding) {
|
||||
context->decoder_object = lpc10_decode_init(context->decoder_object, TRUE);
|
||||
}
|
||||
|
||||
codec->private_info = context;
|
||||
|
||||
return SWITCH_STATUS_SUCCESS;
|
||||
}
|
||||
}
|
||||
|
||||
static switch_status_t switch_lpc10_destroy(switch_codec_t *codec)
|
||||
{
|
||||
struct lpc10_context *context = codec->private_info;
|
||||
codec->private_info = NULL;
|
||||
|
||||
if (!context) {
|
||||
return SWITCH_STATUS_FALSE;
|
||||
}
|
||||
|
||||
if (context->encoder_object)
|
||||
lpc10_encode_free(context->encoder_object);
|
||||
context->encoder_object = NULL;
|
||||
if (context->decoder_object)
|
||||
lpc10_decode_free(context->decoder_object);
|
||||
context->decoder_object = NULL;
|
||||
|
||||
return SWITCH_STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
static switch_status_t switch_lpc10_encode(switch_codec_t *codec,
|
||||
switch_codec_t *other_codec,
|
||||
void *decoded_data,
|
||||
uint32_t decoded_data_len,
|
||||
uint32_t decoded_rate, void *encoded_data, uint32_t *encoded_data_len, uint32_t *encoded_rate,
|
||||
unsigned int *flag)
|
||||
{
|
||||
struct lpc10_context *context = codec->private_info;
|
||||
|
||||
if (!context) {
|
||||
return SWITCH_STATUS_FALSE;
|
||||
}
|
||||
|
||||
*encoded_data_len = lpc10_encode(context->encoder_object, (uint8_t *) encoded_data, (int16_t *) decoded_data, decoded_data_len / 2);
|
||||
|
||||
return SWITCH_STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
static switch_status_t switch_lpc10_decode(switch_codec_t *codec,
|
||||
switch_codec_t *other_codec,
|
||||
void *encoded_data,
|
||||
uint32_t encoded_data_len,
|
||||
uint32_t encoded_rate, void *decoded_data, uint32_t *decoded_data_len, uint32_t *decoded_rate,
|
||||
unsigned int *flag)
|
||||
{
|
||||
struct lpc10_context *context = codec->private_info;
|
||||
|
||||
if (!context) {
|
||||
return SWITCH_STATUS_FALSE;
|
||||
}
|
||||
|
||||
*decoded_data_len = (2 * lpc10_decode(context->decoder_object, (int16_t *) decoded_data, (uint8_t *) encoded_data, encoded_data_len));
|
||||
|
||||
return SWITCH_STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
/* LPC10 - END */
|
||||
|
||||
|
||||
/* GSM - START */
|
||||
struct gsm_context {
|
||||
gsm0610_state_t *decoder_object;
|
||||
gsm0610_state_t *encoder_object;
|
||||
};
|
||||
|
||||
static switch_status_t switch_gsm_init(switch_codec_t *codec, switch_codec_flag_t flags, const switch_codec_settings_t *codec_settings)
|
||||
{
|
||||
uint32_t encoding, decoding;
|
||||
struct gsm_context *context = NULL;
|
||||
|
||||
encoding = (flags & SWITCH_CODEC_FLAG_ENCODE);
|
||||
decoding = (flags & SWITCH_CODEC_FLAG_DECODE);
|
||||
|
||||
if (!(encoding || decoding) || (!(context = switch_core_alloc(codec->memory_pool, sizeof(*context))))) {
|
||||
return SWITCH_STATUS_FALSE;
|
||||
} else {
|
||||
if (encoding) {
|
||||
context->encoder_object = gsm0610_init(context->encoder_object, GSM0610_PACKING_VOIP);
|
||||
}
|
||||
if (decoding) {
|
||||
context->decoder_object = gsm0610_init(context->decoder_object, GSM0610_PACKING_VOIP);
|
||||
}
|
||||
|
||||
codec->private_info = context;
|
||||
return SWITCH_STATUS_SUCCESS;
|
||||
}
|
||||
}
|
||||
|
||||
static switch_status_t switch_gsm_encode(switch_codec_t *codec,
|
||||
switch_codec_t *other_codec,
|
||||
void *decoded_data,
|
||||
uint32_t decoded_data_len,
|
||||
uint32_t decoded_rate, void *encoded_data, uint32_t *encoded_data_len, uint32_t *encoded_rate,
|
||||
unsigned int *flag)
|
||||
{
|
||||
struct gsm_context *context = codec->private_info;
|
||||
|
||||
if (!context) {
|
||||
return SWITCH_STATUS_FALSE;
|
||||
}
|
||||
|
||||
*encoded_data_len = gsm0610_encode(context->encoder_object, (uint8_t *) encoded_data, (int16_t *) decoded_data, decoded_data_len / 2);
|
||||
|
||||
return SWITCH_STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
static switch_status_t switch_gsm_decode(switch_codec_t *codec,
|
||||
switch_codec_t *other_codec,
|
||||
void *encoded_data,
|
||||
uint32_t encoded_data_len,
|
||||
uint32_t encoded_rate, void *decoded_data, uint32_t *decoded_data_len, uint32_t *decoded_rate,
|
||||
unsigned int *flag)
|
||||
{
|
||||
struct gsm_context *context = codec->private_info;
|
||||
|
||||
if (!context) {
|
||||
return SWITCH_STATUS_FALSE;
|
||||
}
|
||||
|
||||
*decoded_data_len = (2 * gsm0610_decode(context->decoder_object, (int16_t *) decoded_data, (uint8_t *) encoded_data, encoded_data_len));
|
||||
|
||||
return SWITCH_STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
static switch_status_t switch_gsm_destroy(switch_codec_t *codec)
|
||||
{
|
||||
struct gsm_context *context = codec->private_info;
|
||||
|
||||
codec->private_info = NULL;
|
||||
|
||||
if (!context) {
|
||||
return SWITCH_STATUS_FALSE;
|
||||
}
|
||||
|
||||
if (context->decoder_object)
|
||||
gsm0610_free(context->decoder_object);
|
||||
context->decoder_object = NULL;
|
||||
if (context->encoder_object)
|
||||
gsm0610_free(context->encoder_object);
|
||||
context->encoder_object = NULL;
|
||||
|
||||
return SWITCH_STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
/* GSM - END */
|
||||
|
||||
#ifdef ENABLE_G711
|
||||
/* G711 - START */
|
||||
static switch_status_t switch_g711u_init(switch_codec_t *codec, switch_codec_flag_t flags, const switch_codec_settings_t *codec_settings)
|
||||
{
|
||||
uint32_t encoding, decoding;
|
||||
|
||||
encoding = (flags & SWITCH_CODEC_FLAG_ENCODE);
|
||||
decoding = (flags & SWITCH_CODEC_FLAG_DECODE);
|
||||
|
||||
if (!(encoding || decoding)) {
|
||||
return SWITCH_STATUS_FALSE;
|
||||
} else {
|
||||
return SWITCH_STATUS_SUCCESS;
|
||||
}
|
||||
}
|
||||
|
||||
static switch_status_t switch_g711u_encode(switch_codec_t *codec,
|
||||
switch_codec_t *other_codec,
|
||||
void *decoded_data,
|
||||
uint32_t decoded_data_len,
|
||||
uint32_t decoded_rate, void *encoded_data, uint32_t *encoded_data_len, uint32_t *encoded_rate,
|
||||
unsigned int *flag)
|
||||
{
|
||||
short *dbuf;
|
||||
unsigned char *ebuf;
|
||||
uint32_t i;
|
||||
|
||||
dbuf = decoded_data;
|
||||
ebuf = encoded_data;
|
||||
|
||||
for (i = 0; i < decoded_data_len / sizeof(short); i++) {
|
||||
ebuf[i] = linear_to_ulaw(dbuf[i]);
|
||||
}
|
||||
|
||||
*encoded_data_len = i;
|
||||
|
||||
return SWITCH_STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
static switch_status_t switch_g711u_decode(switch_codec_t *codec,
|
||||
switch_codec_t *other_codec,
|
||||
void *encoded_data,
|
||||
uint32_t encoded_data_len,
|
||||
uint32_t encoded_rate, void *decoded_data, uint32_t *decoded_data_len, uint32_t *decoded_rate,
|
||||
unsigned int *flag)
|
||||
{
|
||||
short *dbuf;
|
||||
unsigned char *ebuf;
|
||||
uint32_t i;
|
||||
|
||||
dbuf = decoded_data;
|
||||
ebuf = encoded_data;
|
||||
|
||||
if (*flag & SWITCH_CODEC_FLAG_SILENCE) {
|
||||
memset(dbuf, 0, codec->implementation->decoded_bytes_per_packet);
|
||||
*decoded_data_len = codec->implementation->decoded_bytes_per_packet;
|
||||
} else {
|
||||
for (i = 0; i < encoded_data_len; i++) {
|
||||
dbuf[i] = ulaw_to_linear(ebuf[i]);
|
||||
}
|
||||
|
||||
*decoded_data_len = i * 2;
|
||||
}
|
||||
|
||||
return SWITCH_STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
static switch_status_t switch_g711u_destroy(switch_codec_t *codec)
|
||||
{
|
||||
return SWITCH_STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
|
||||
static switch_status_t switch_g711a_init(switch_codec_t *codec, switch_codec_flag_t flags, const switch_codec_settings_t *codec_settings)
|
||||
{
|
||||
uint32_t encoding, decoding;
|
||||
|
||||
encoding = (flags & SWITCH_CODEC_FLAG_ENCODE);
|
||||
decoding = (flags & SWITCH_CODEC_FLAG_DECODE);
|
||||
|
||||
if (!(encoding || decoding)) {
|
||||
return SWITCH_STATUS_FALSE;
|
||||
} else {
|
||||
return SWITCH_STATUS_SUCCESS;
|
||||
}
|
||||
}
|
||||
|
||||
static switch_status_t switch_g711a_encode(switch_codec_t *codec,
|
||||
switch_codec_t *other_codec,
|
||||
void *decoded_data,
|
||||
uint32_t decoded_data_len,
|
||||
uint32_t decoded_rate, void *encoded_data, uint32_t *encoded_data_len, uint32_t *encoded_rate,
|
||||
unsigned int *flag)
|
||||
{
|
||||
short *dbuf;
|
||||
unsigned char *ebuf;
|
||||
uint32_t i;
|
||||
|
||||
dbuf = decoded_data;
|
||||
ebuf = encoded_data;
|
||||
|
||||
for (i = 0; i < decoded_data_len / sizeof(short); i++) {
|
||||
ebuf[i] = linear_to_alaw(dbuf[i]);
|
||||
}
|
||||
|
||||
*encoded_data_len = i;
|
||||
|
||||
return SWITCH_STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
static switch_status_t switch_g711a_decode(switch_codec_t *codec,
|
||||
switch_codec_t *other_codec,
|
||||
void *encoded_data,
|
||||
uint32_t encoded_data_len,
|
||||
uint32_t encoded_rate, void *decoded_data, uint32_t *decoded_data_len, uint32_t *decoded_rate,
|
||||
unsigned int *flag)
|
||||
{
|
||||
short *dbuf;
|
||||
unsigned char *ebuf;
|
||||
uint32_t i;
|
||||
|
||||
dbuf = decoded_data;
|
||||
ebuf = encoded_data;
|
||||
|
||||
if (*flag & SWITCH_CODEC_FLAG_SILENCE) {
|
||||
memset(dbuf, 0, codec->implementation->decoded_bytes_per_packet);
|
||||
*decoded_data_len = codec->implementation->decoded_bytes_per_packet;
|
||||
} else {
|
||||
for (i = 0; i < encoded_data_len; i++) {
|
||||
dbuf[i] = alaw_to_linear(ebuf[i]);
|
||||
}
|
||||
|
||||
*decoded_data_len = i * 2;
|
||||
}
|
||||
|
||||
return SWITCH_STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
static switch_status_t switch_g711a_destroy(switch_codec_t *codec)
|
||||
{
|
||||
return SWITCH_STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
/* G711 - END */
|
||||
#endif
|
||||
|
||||
|
||||
/* G722 - START */
|
||||
|
||||
struct g722_context {
|
||||
g722_decode_state_t *decoder_object;
|
||||
g722_encode_state_t *encoder_object;
|
||||
};
|
||||
|
||||
static switch_status_t switch_g722_init(switch_codec_t *codec, switch_codec_flag_t flags, const switch_codec_settings_t *codec_settings)
|
||||
{
|
||||
uint32_t encoding, decoding;
|
||||
struct g722_context *context = NULL;
|
||||
|
||||
encoding = (flags & SWITCH_CODEC_FLAG_ENCODE);
|
||||
decoding = (flags & SWITCH_CODEC_FLAG_DECODE);
|
||||
|
||||
if (!(encoding || decoding) || (!(context = switch_core_alloc(codec->memory_pool, sizeof(struct g722_context))))) {
|
||||
return SWITCH_STATUS_FALSE;
|
||||
} else {
|
||||
if (encoding) {
|
||||
context->encoder_object = g722_encode_init(context->encoder_object, 64000, G722_PACKED);
|
||||
}
|
||||
if (decoding) {
|
||||
context->decoder_object = g722_decode_init(context->decoder_object, 64000, G722_PACKED);
|
||||
}
|
||||
}
|
||||
|
||||
codec->private_info = context;
|
||||
return SWITCH_STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
static switch_status_t switch_g722_encode(switch_codec_t *codec,
|
||||
switch_codec_t *other_codec,
|
||||
void *decoded_data,
|
||||
uint32_t decoded_data_len,
|
||||
uint32_t decoded_rate, void *encoded_data, uint32_t *encoded_data_len, uint32_t *encoded_rate,
|
||||
unsigned int *flag)
|
||||
{
|
||||
struct g722_context *context = codec->private_info;
|
||||
|
||||
if (!context) {
|
||||
return SWITCH_STATUS_FALSE;
|
||||
}
|
||||
|
||||
*encoded_data_len = g722_encode(context->encoder_object, (uint8_t *) encoded_data, (int16_t *) decoded_data, decoded_data_len / 2);
|
||||
|
||||
return SWITCH_STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
static switch_status_t switch_g722_decode(switch_codec_t *codec,
|
||||
switch_codec_t *other_codec,
|
||||
void *encoded_data,
|
||||
uint32_t encoded_data_len,
|
||||
uint32_t encoded_rate, void *decoded_data, uint32_t *decoded_data_len, uint32_t *decoded_rate,
|
||||
unsigned int *flag)
|
||||
{
|
||||
struct g722_context *context = codec->private_info;
|
||||
|
||||
if (!context) {
|
||||
return SWITCH_STATUS_FALSE;
|
||||
}
|
||||
|
||||
*decoded_data_len = (2 * g722_decode(context->decoder_object, (int16_t *) decoded_data, (uint8_t *) encoded_data, encoded_data_len));
|
||||
|
||||
return SWITCH_STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
static switch_status_t switch_g722_destroy(switch_codec_t *codec)
|
||||
{
|
||||
struct g722_context *context = codec->private_info;
|
||||
|
||||
codec->private_info = NULL;
|
||||
|
||||
if (!context) {
|
||||
return SWITCH_STATUS_FALSE;
|
||||
}
|
||||
|
||||
if (context->decoder_object)
|
||||
g722_decode_free(context->decoder_object);
|
||||
context->decoder_object = NULL;
|
||||
if (context->encoder_object)
|
||||
g722_encode_free(context->encoder_object);
|
||||
context->encoder_object = NULL;
|
||||
|
||||
return SWITCH_STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
/* G722 - END */
|
||||
|
||||
/* G726 - START */
|
||||
|
||||
static switch_status_t switch_g726_init(switch_codec_t *codec, switch_codec_flag_t flags, const switch_codec_settings_t *codec_settings)
|
||||
{
|
||||
uint32_t encoding, decoding;
|
||||
int packing = G726_PACKING_RIGHT;
|
||||
g726_state_t *context = NULL;
|
||||
|
||||
encoding = (flags & SWITCH_CODEC_FLAG_ENCODE);
|
||||
decoding = (flags & SWITCH_CODEC_FLAG_DECODE);
|
||||
|
||||
if (!(encoding || decoding)) {
|
||||
return SWITCH_STATUS_FALSE;
|
||||
}
|
||||
|
||||
if ((flags & SWITCH_CODEC_FLAG_AAL2 || strstr(codec->implementation->iananame, "AAL2"))) {
|
||||
packing = G726_PACKING_LEFT;
|
||||
}
|
||||
|
||||
context = g726_init(context, codec->implementation->bits_per_second, G726_ENCODING_LINEAR, packing);
|
||||
|
||||
codec->private_info = context;
|
||||
return SWITCH_STATUS_SUCCESS;
|
||||
|
||||
}
|
||||
|
||||
static switch_status_t switch_g726_destroy(switch_codec_t *codec)
|
||||
{
|
||||
g726_state_t *context = codec->private_info;
|
||||
|
||||
if (!context) {
|
||||
return SWITCH_STATUS_FALSE;
|
||||
}
|
||||
|
||||
g726_free(context);
|
||||
|
||||
codec->private_info = NULL;
|
||||
return SWITCH_STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
static switch_status_t switch_g726_encode(switch_codec_t *codec,
|
||||
switch_codec_t *other_codec,
|
||||
void *decoded_data,
|
||||
uint32_t decoded_data_len,
|
||||
uint32_t decoded_rate, void *encoded_data, uint32_t *encoded_data_len, uint32_t *encoded_rate,
|
||||
unsigned int *flag)
|
||||
{
|
||||
g726_state_t *context = codec->private_info;
|
||||
|
||||
if (!context) {
|
||||
return SWITCH_STATUS_FALSE;
|
||||
}
|
||||
|
||||
*encoded_data_len = g726_encode(context, (uint8_t *) encoded_data, (int16_t *) decoded_data, decoded_data_len / 2);
|
||||
|
||||
return SWITCH_STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
static switch_status_t switch_g726_decode(switch_codec_t *codec,
|
||||
switch_codec_t *other_codec,
|
||||
void *encoded_data,
|
||||
uint32_t encoded_data_len,
|
||||
uint32_t encoded_rate, void *decoded_data, uint32_t *decoded_data_len, uint32_t *decoded_rate,
|
||||
unsigned int *flag)
|
||||
{
|
||||
g726_state_t *context = codec->private_info;
|
||||
|
||||
if (!context) {
|
||||
return SWITCH_STATUS_FALSE;
|
||||
}
|
||||
|
||||
*decoded_data_len = (2 * g726_decode(context, (int16_t *) decoded_data, (uint8_t *) encoded_data, encoded_data_len));
|
||||
|
||||
return SWITCH_STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
/* G726 - START */
|
||||
|
||||
/* IMA_ADPCM - START */
|
||||
|
||||
struct ima_adpcm_context {
|
||||
ima_adpcm_state_t *decoder_object;
|
||||
ima_adpcm_state_t *encoder_object;
|
||||
};
|
||||
|
||||
static switch_status_t switch_adpcm_init(switch_codec_t *codec, switch_codec_flag_t flags, const switch_codec_settings_t *codec_settings)
|
||||
{
|
||||
uint32_t encoding, decoding;
|
||||
struct ima_adpcm_context *context = NULL;
|
||||
|
||||
encoding = (flags & SWITCH_CODEC_FLAG_ENCODE);
|
||||
decoding = (flags & SWITCH_CODEC_FLAG_DECODE);
|
||||
|
||||
if (!(encoding || decoding) || (!(context = switch_core_alloc(codec->memory_pool, sizeof(*context))))) {
|
||||
return SWITCH_STATUS_FALSE;
|
||||
} else {
|
||||
if (encoding) {
|
||||
context->encoder_object = ima_adpcm_init(context->encoder_object, IMA_ADPCM_DVI4, 0);
|
||||
}
|
||||
if (decoding) {
|
||||
context->decoder_object = ima_adpcm_init(context->decoder_object, IMA_ADPCM_DVI4, 0);
|
||||
}
|
||||
|
||||
codec->private_info = context;
|
||||
return SWITCH_STATUS_SUCCESS;
|
||||
}
|
||||
}
|
||||
|
||||
static switch_status_t switch_adpcm_encode(switch_codec_t *codec,
|
||||
switch_codec_t *other_codec,
|
||||
void *decoded_data,
|
||||
uint32_t decoded_data_len,
|
||||
uint32_t decoded_rate, void *encoded_data, uint32_t *encoded_data_len, uint32_t *encoded_rate,
|
||||
unsigned int *flag)
|
||||
{
|
||||
struct ima_adpcm_context *context = codec->private_info;
|
||||
|
||||
if (!context) {
|
||||
return SWITCH_STATUS_FALSE;
|
||||
}
|
||||
|
||||
*encoded_data_len = ima_adpcm_encode(context->encoder_object, (uint8_t *) encoded_data, (int16_t *) decoded_data, decoded_data_len / 2);
|
||||
|
||||
return SWITCH_STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
static switch_status_t switch_adpcm_decode(switch_codec_t *codec,
|
||||
switch_codec_t *other_codec,
|
||||
void *encoded_data,
|
||||
uint32_t encoded_data_len,
|
||||
uint32_t encoded_rate, void *decoded_data, uint32_t *decoded_data_len, uint32_t *decoded_rate,
|
||||
unsigned int *flag)
|
||||
{
|
||||
struct ima_adpcm_context *context = codec->private_info;
|
||||
|
||||
if (!context) {
|
||||
return SWITCH_STATUS_FALSE;
|
||||
}
|
||||
|
||||
*decoded_data_len = (2 * ima_adpcm_decode(context->decoder_object, (int16_t *) decoded_data, (uint8_t *) encoded_data, encoded_data_len));
|
||||
|
||||
return SWITCH_STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
static switch_status_t switch_adpcm_destroy(switch_codec_t *codec)
|
||||
{
|
||||
struct ima_adpcm_context *context = codec->private_info;
|
||||
|
||||
codec->private_info = NULL;
|
||||
|
||||
if (!context) {
|
||||
return SWITCH_STATUS_FALSE;
|
||||
}
|
||||
|
||||
if (context->decoder_object)
|
||||
ima_adpcm_free(context->decoder_object);
|
||||
context->decoder_object = NULL;
|
||||
if (context->encoder_object)
|
||||
ima_adpcm_free(context->encoder_object);
|
||||
context->encoder_object = NULL;
|
||||
|
||||
return SWITCH_STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
/* IMA_ADPCM - END */
|
||||
|
||||
|
||||
SWITCH_MODULE_LOAD_FUNCTION(mod_voipcodecs_load)
|
||||
{
|
||||
switch_codec_interface_t *codec_interface;
|
||||
int mpf, spf, bpf, ebpf, count;
|
||||
|
||||
/* connect my internal structure to the blank pointer passed to me */
|
||||
*module_interface = switch_loadable_module_create_module_interface(pool, modname);
|
||||
|
||||
/* IMA_ADPCM */
|
||||
mpf = 10000, spf = 80, bpf = 160, ebpf = 80;
|
||||
SWITCH_ADD_CODEC(codec_interface, "ADPCM (IMA)");
|
||||
for (count = 12; count > 0; count--) {
|
||||
switch_core_codec_add_implementation(pool, codec_interface, SWITCH_CODEC_TYPE_AUDIO, /* enumeration defining the type of the codec */
|
||||
5, /* the IANA code number */
|
||||
"DVI4", /* the IANA code name */
|
||||
NULL, /* default fmtp to send (can be overridden by the init function) */
|
||||
8000, /* samples transferred per second */
|
||||
8000, /* actual samples transferred per second */
|
||||
32000, /* bits transferred per second */
|
||||
mpf * count, /* number of microseconds per frame */
|
||||
spf * count, /* number of samples per frame */
|
||||
bpf * count, /* number of bytes per frame decompressed */
|
||||
(ebpf * count) + 4, /* number of bytes per frame compressed */
|
||||
1, /* number of channels represented */
|
||||
spf * count, /* number of frames per network packet */
|
||||
switch_adpcm_init, /* function to initialize a codec handle using this implementation */
|
||||
switch_adpcm_encode, /* function to encode raw data into encoded data */
|
||||
switch_adpcm_decode, /* function to decode encoded data into raw data */
|
||||
switch_adpcm_destroy); /* deinitalize a codec handle using this implementation */
|
||||
}
|
||||
mpf = 10000, spf = 160, bpf = 320, ebpf = 160;
|
||||
for (count = 6; count > 0; count--) {
|
||||
switch_core_codec_add_implementation(pool, codec_interface, SWITCH_CODEC_TYPE_AUDIO, /* enumeration defining the type of the codec */
|
||||
6, /* the IANA code number */
|
||||
"DVI4", /* the IANA code name */
|
||||
NULL, /* default fmtp to send (can be overridden by the init function) */
|
||||
16000, /* samples transferred per second */
|
||||
16000, /* actual samples transferred per second */
|
||||
64000, /* bits transferred per second */
|
||||
mpf * count, /* number of microseconds per frame */
|
||||
spf * count, /* number of samples per frame */
|
||||
bpf * count, /* number of bytes per frame decompressed */
|
||||
(ebpf * count) + 4, /* number of bytes per frame compressed */
|
||||
1, /* number of channels represented */
|
||||
spf * count, /* number of frames per network packet */
|
||||
switch_adpcm_init, /* function to initialize a codec handle using this implementation */
|
||||
switch_adpcm_encode, /* function to encode raw data into encoded data */
|
||||
switch_adpcm_decode, /* function to decode encoded data into raw data */
|
||||
switch_adpcm_destroy); /* deinitalize a codec handle using this implementation */
|
||||
}
|
||||
|
||||
/* G726 */
|
||||
mpf = 10000, spf = 80, bpf = 160, ebpf = 20;
|
||||
SWITCH_ADD_CODEC(codec_interface, "G.726 16k (AAL2)");
|
||||
for (count = 12; count > 0; count--) {
|
||||
switch_core_codec_add_implementation(pool, codec_interface, SWITCH_CODEC_TYPE_AUDIO, /* enumeration defining the type of the codec */
|
||||
124, /* the IANA code number */
|
||||
"AAL2-G726-16", /* the IANA code name */
|
||||
NULL, /* default fmtp to send (can be overridden by the init function) */
|
||||
8000, /* samples transferred per second */
|
||||
8000, /* actual samples transferred per second */
|
||||
16000, /* bits transferred per second */
|
||||
mpf * count, /* number of microseconds per frame */
|
||||
spf * count, /* number of samples per frame */
|
||||
bpf * count, /* number of bytes per frame decompressed */
|
||||
ebpf * count, /* number of bytes per frame compressed */
|
||||
1, /* number of channels represented */
|
||||
count * 10, /* number of frames per network packet */
|
||||
switch_g726_init, /* function to initialize a codec handle using this implementation */
|
||||
switch_g726_encode, /* function to encode raw data into encoded data */
|
||||
switch_g726_decode, /* function to decode encoded data into raw data */
|
||||
switch_g726_destroy); /* deinitalize a codec handle using this implementation */
|
||||
}
|
||||
SWITCH_ADD_CODEC(codec_interface, "G.726 16k");
|
||||
for (count = 12; count > 0; count--) {
|
||||
switch_core_codec_add_implementation(pool, codec_interface, SWITCH_CODEC_TYPE_AUDIO, /* enumeration defining the type of the codec */
|
||||
124, /* the IANA code number */
|
||||
"G726-16", /* the IANA code name */
|
||||
NULL, /* default fmtp to send (can be overridden by the init function) */
|
||||
8000, /* samples transferred per second */
|
||||
8000, /* actual samples transferred per second */
|
||||
16000, /* bits transferred per second */
|
||||
mpf * count, /* number of microseconds per frame */
|
||||
spf * count, /* number of samples per frame */
|
||||
bpf * count, /* number of bytes per frame decompressed */
|
||||
ebpf * count, /* number of bytes per frame compressed */
|
||||
1, /* number of channels represented */
|
||||
count * 10, /* number of frames per network packet */
|
||||
switch_g726_init, /* function to initialize a codec handle using this implementation */
|
||||
switch_g726_encode, /* function to encode raw data into encoded data */
|
||||
switch_g726_decode, /* function to decode encoded data into raw data */
|
||||
switch_g726_destroy); /* deinitalize a codec handle using this implementation */
|
||||
}
|
||||
/* Increase encoded bytes per frame by 10 */
|
||||
ebpf = ebpf + 10;
|
||||
|
||||
SWITCH_ADD_CODEC(codec_interface, "G.726 24k (AAL2)");
|
||||
for (count = 12; count > 0; count--) {
|
||||
switch_core_codec_add_implementation(pool, codec_interface, SWITCH_CODEC_TYPE_AUDIO, /* enumeration defining the type of the codec */
|
||||
123, /* the IANA code number */
|
||||
"AAL2-G726-24", /* the IANA code name */
|
||||
NULL, /* default fmtp to send (can be overridden by the init function) */
|
||||
8000, /* samples transferred per second */
|
||||
8000, /* actual samples transferred per second */
|
||||
24000, /* bits transferred per second */
|
||||
mpf * count, /* number of microseconds per frame */
|
||||
spf * count, /* number of samples per frame */
|
||||
bpf * count, /* number of bytes per frame decompressed */
|
||||
ebpf * count, /* number of bytes per frame compressed */
|
||||
1, /* number of channels represented */
|
||||
count * 10, /* number of frames per network packet */
|
||||
switch_g726_init, /* function to initialize a codec handle using this implementation */
|
||||
switch_g726_encode, /* function to encode raw data into encoded data */
|
||||
switch_g726_decode, /* function to decode encoded data into raw data */
|
||||
switch_g726_destroy); /* deinitalize a codec handle using this implementation */
|
||||
}
|
||||
|
||||
SWITCH_ADD_CODEC(codec_interface, "G.726 24k");
|
||||
for (count = 12; count > 0; count--) {
|
||||
switch_core_codec_add_implementation(pool, codec_interface, SWITCH_CODEC_TYPE_AUDIO, /* enumeration defining the type of the codec */
|
||||
123, /* the IANA code number */
|
||||
"G726-24", /* the IANA code name */
|
||||
NULL, /* default fmtp to send (can be overridden by the init function) */
|
||||
8000, /* samples transferred per second */
|
||||
8000, /* actual samples transferred per second */
|
||||
24000, /* bits transferred per second */
|
||||
mpf * count, /* number of microseconds per frame */
|
||||
spf * count, /* number of samples per frame */
|
||||
bpf * count, /* number of bytes per frame decompressed */
|
||||
ebpf * count, /* number of bytes per frame compressed */
|
||||
1, /* number of channels represented */
|
||||
count * 10, /* number of frames per network packet */
|
||||
switch_g726_init, /* function to initialize a codec handle using this implementation */
|
||||
switch_g726_encode, /* function to encode raw data into encoded data */
|
||||
switch_g726_decode, /* function to decode encoded data into raw data */
|
||||
switch_g726_destroy); /* deinitalize a codec handle using this implementation */
|
||||
}
|
||||
/* Increase encoded bytes per frame by 10 */
|
||||
ebpf = ebpf + 10;
|
||||
|
||||
SWITCH_ADD_CODEC(codec_interface, "G.726 32k (AAL2)");
|
||||
for (count = 12; count > 0; count--) {
|
||||
switch_core_codec_add_implementation(pool, codec_interface, SWITCH_CODEC_TYPE_AUDIO, /* enumeration defining the type of the codec */
|
||||
122, /* the IANA code number */
|
||||
"AAL2-G726-32", /* the IANA code name */
|
||||
NULL, /* default fmtp to send (can be overridden by the init function) */
|
||||
8000, /* samples transferred per second */
|
||||
8000, /* actual samples transferred per second */
|
||||
32000, /* bits transferred per second */
|
||||
mpf * count, /* number of microseconds per frame */
|
||||
spf * count, /* number of samples per frame */
|
||||
bpf * count, /* number of bytes per frame decompressed */
|
||||
ebpf * count, /* number of bytes per frame compressed */
|
||||
1, /* number of channels represented */
|
||||
count * 10, /* number of frames per network packet */
|
||||
switch_g726_init, /* function to initialize a codec handle using this implementation */
|
||||
switch_g726_encode, /* function to encode raw data into encoded data */
|
||||
switch_g726_decode, /* function to decode encoded data into raw data */
|
||||
switch_g726_destroy); /* deinitalize a codec handle using this implementation */
|
||||
}
|
||||
SWITCH_ADD_CODEC(codec_interface, "G.726 32k");
|
||||
for (count = 12; count > 0; count--) {
|
||||
switch_core_codec_add_implementation(pool, codec_interface, SWITCH_CODEC_TYPE_AUDIO, /* enumeration defining the type of the codec */
|
||||
122, /* the IANA code number */
|
||||
"G726-32", /* the IANA code name */
|
||||
NULL, /* default fmtp to send (can be overridden by the init function) */
|
||||
8000, /* samples transferred per second */
|
||||
8000, /* actual samples transferred per second */
|
||||
32000, /* bits transferred per second */
|
||||
mpf * count, /* number of microseconds per frame */
|
||||
spf * count, /* number of samples per frame */
|
||||
bpf * count, /* number of bytes per frame decompressed */
|
||||
ebpf * count, /* number of bytes per frame compressed */
|
||||
1, /* number of channels represented */
|
||||
count * 10, /* number of frames per network packet */
|
||||
switch_g726_init, /* function to initialize a codec handle using this implementation */
|
||||
switch_g726_encode, /* function to encode raw data into encoded data */
|
||||
switch_g726_decode, /* function to decode encoded data into raw data */
|
||||
switch_g726_destroy); /* deinitalize a codec handle using this implementation */
|
||||
}
|
||||
/* Increase encoded bytes per frame by 10 */
|
||||
ebpf = ebpf + 10;
|
||||
|
||||
SWITCH_ADD_CODEC(codec_interface, "G.726 40k (AAL2)");
|
||||
for (count = 12; count > 0; count--) {
|
||||
switch_core_codec_add_implementation(pool, codec_interface, SWITCH_CODEC_TYPE_AUDIO, /* enumeration defining the type of the codec */
|
||||
121, /* the IANA code number */
|
||||
"AAL2-G726-40", /* the IANA code name */
|
||||
NULL, /* default fmtp to send (can be overridden by the init function) */
|
||||
8000, /* samples transferred per second */
|
||||
8000, /* actual samples transferred per second */
|
||||
40000, /* bits transferred per second */
|
||||
mpf * count, /* number of microseconds per frame */
|
||||
spf * count, /* number of samples per frame */
|
||||
bpf * count, /* number of bytes per frame decompressed */
|
||||
ebpf * count, /* number of bytes per frame compressed */
|
||||
1, /* number of channels represented */
|
||||
count * 10, /* number of frames per network packet */
|
||||
switch_g726_init, /* function to initialize a codec handle using this implementation */
|
||||
switch_g726_encode, /* function to encode raw data into encoded data */
|
||||
switch_g726_decode, /* function to decode encoded data into raw data */
|
||||
switch_g726_destroy); /* deinitalize a codec handle using this implementation */
|
||||
}
|
||||
SWITCH_ADD_CODEC(codec_interface, "G.726 40k");
|
||||
for (count = 12; count > 0; count--) {
|
||||
switch_core_codec_add_implementation(pool, codec_interface, SWITCH_CODEC_TYPE_AUDIO, /* enumeration defining the type of the codec */
|
||||
121, /* the IANA code number */
|
||||
"G726-40", /* the IANA code name */
|
||||
NULL, /* default fmtp to send (can be overridden by the init function) */
|
||||
8000, /* samples transferred per second */
|
||||
8000, /* actual samples transferred per second */
|
||||
40000, /* bits transferred per second */
|
||||
mpf * count, /* number of microseconds per frame */
|
||||
spf * count, /* number of samples per frame */
|
||||
bpf * count, /* number of bytes per frame decompressed */
|
||||
ebpf * count, /* number of bytes per frame compressed */
|
||||
1, /* number of channels represented */
|
||||
count * 10, /* number of frames per network packet */
|
||||
switch_g726_init, /* function to initialize a codec handle using this implementation */
|
||||
switch_g726_encode, /* function to encode raw data into encoded data */
|
||||
switch_g726_decode, /* function to decode encoded data into raw data */
|
||||
switch_g726_destroy); /* deinitalize a codec handle using this implementation */
|
||||
}
|
||||
/* G722 */
|
||||
mpf = 10000, spf = 80, bpf = 320, ebpf = 80;
|
||||
SWITCH_ADD_CODEC(codec_interface, "G.722");
|
||||
for (count = 6; count > 0; count--) {
|
||||
switch_core_codec_add_implementation(pool, codec_interface, SWITCH_CODEC_TYPE_AUDIO, /* enumeration defining the type of the codec */
|
||||
9, /* the IANA code number */
|
||||
"G722", /* the IANA code name */
|
||||
NULL, /* default fmtp to send (can be overridden by the init function) */
|
||||
8000, /* samples transferred per second */
|
||||
16000, /* actual samples transferred per second */
|
||||
64000, /* bits transferred per second */
|
||||
mpf * count, /* number of microseconds per frame */
|
||||
spf * count, /* number of samples per frame */
|
||||
bpf * count, /* number of bytes per frame decompressed */
|
||||
ebpf * count, /* number of bytes per frame compressed */
|
||||
1, /* number of channels represented */
|
||||
spf * count, /* number of frames per network packet */
|
||||
switch_g722_init, /* function to initialize a codec handle using this implementation */
|
||||
switch_g722_encode, /* function to encode raw data into encoded data */
|
||||
switch_g722_decode, /* function to decode encoded data into raw data */
|
||||
switch_g722_destroy); /* deinitalize a codec handle using this implementation */
|
||||
}
|
||||
|
||||
#ifdef ENABLE_G711
|
||||
/* G711 */
|
||||
mpf = 10000, spf = 80, bpf = 160, ebpf = 80;
|
||||
SWITCH_ADD_CODEC(codec_interface, "G.711 ulaw");
|
||||
for (count = 12; count > 0; count--) {
|
||||
switch_core_codec_add_implementation(pool, codec_interface, SWITCH_CODEC_TYPE_AUDIO, /* enumeration defining the type of the codec */
|
||||
0, /* the IANA code number */
|
||||
"PCMU", /* the IANA code name */
|
||||
NULL, /* default fmtp to send (can be overridden by the init function) */
|
||||
8000, /* samples transferred per second */
|
||||
8000, /* actual samples transferred per second */
|
||||
64000, /* bits transferred per second */
|
||||
mpf * count, /* number of microseconds per frame */
|
||||
spf * count, /* number of samples per frame */
|
||||
bpf * count, /* number of bytes per frame decompressed */
|
||||
ebpf * count, /* number of bytes per frame compressed */
|
||||
1, /* number of channels represented */
|
||||
spf * count, /* number of frames per network packet */
|
||||
switch_g711u_init, /* function to initialize a codec handle using this implementation */
|
||||
switch_g711u_encode, /* function to encode raw data into encoded data */
|
||||
switch_g711u_decode, /* function to decode encoded data into raw data */
|
||||
switch_g711u_destroy); /* deinitalize a codec handle using this implementation */
|
||||
}
|
||||
|
||||
SWITCH_ADD_CODEC(codec_interface, "G.711 alaw");
|
||||
for (count = 12; count > 0; count--) {
|
||||
switch_core_codec_add_implementation(pool, codec_interface, SWITCH_CODEC_TYPE_AUDIO, /* enumeration defining the type of the codec */
|
||||
8, /* the IANA code number */
|
||||
"PCMA", /* the IANA code name */
|
||||
NULL, /* default fmtp to send (can be overridden by the init function) */
|
||||
8000, /* samples transferred per second */
|
||||
8000, /* actual samples transferred per second */
|
||||
64000, /* bits transferred per second */
|
||||
mpf * count, /* number of microseconds per frame */
|
||||
spf * count, /* number of samples per frame */
|
||||
bpf * count, /* number of bytes per frame decompressed */
|
||||
ebpf * count, /* number of bytes per frame compressed */
|
||||
1, /* number of channels represented */
|
||||
spf * count, /* number of frames per network packet */
|
||||
switch_g711a_init, /* function to initialize a codec handle using this implementation */
|
||||
switch_g711a_encode, /* function to encode raw data into encoded data */
|
||||
switch_g711a_decode, /* function to decode encoded data into raw data */
|
||||
switch_g711a_destroy); /* deinitalize a codec handle using this implementation */
|
||||
}
|
||||
#endif
|
||||
|
||||
/* GSM */
|
||||
mpf = 20000, spf = 160, bpf = 320, ebpf = 33;
|
||||
SWITCH_ADD_CODEC(codec_interface, "GSM");
|
||||
for (count = 6; count > 0; count--) {
|
||||
switch_core_codec_add_implementation(pool, codec_interface, SWITCH_CODEC_TYPE_AUDIO, /* enumeration defining the type of the codec */
|
||||
3, /* the IANA code number */
|
||||
"GSM", /* the IANA code name */
|
||||
NULL, /* default fmtp to send (can be overridden by the init function) */
|
||||
8000, /* samples transferred per second */
|
||||
8000, /* actual samples transferred per second */
|
||||
13200, /* bits transferred per second */
|
||||
mpf * count, /* number of microseconds per frame */
|
||||
spf * count, /* number of samples per frame */
|
||||
bpf * count, /* number of bytes per frame decompressed */
|
||||
ebpf * count, /* number of bytes per frame compressed */
|
||||
1, /* number of channels represented */
|
||||
count, /* number of frames per network packet */
|
||||
switch_gsm_init, /* function to initialize a codec handle using this implementation */
|
||||
switch_gsm_encode, /* function to encode raw data into encoded data */
|
||||
switch_gsm_decode, /* function to decode encoded data into raw data */
|
||||
switch_gsm_destroy); /* deinitalize a codec handle using this implementation */
|
||||
}
|
||||
/* LPC10 */
|
||||
#if SWITCH_MAX_INTERVAL >= 90
|
||||
SWITCH_ADD_CODEC(codec_interface, "LPC-10");
|
||||
switch_core_codec_add_implementation(pool, codec_interface, SWITCH_CODEC_TYPE_AUDIO, /* enumeration defining the type of the codec */
|
||||
7, /* the IANA code number */
|
||||
"LPC", /* the IANA code name */
|
||||
NULL, /* default fmtp to send (can be overridden by the init function) */
|
||||
8000, /* samples transferred per second */
|
||||
8000, /* actual samples transferred per second */
|
||||
2400, /* bits transferred per second */
|
||||
90000, /* number of microseconds per frame */
|
||||
720, /* number of samples per frame */
|
||||
1440, /* number of bytes per frame decompressed */
|
||||
28, /* number of bytes per frame compressed */
|
||||
1, /* number of channels represented */
|
||||
4, /* number of frames per network packet */
|
||||
switch_lpc10_init, /* function to initialize a codec handle using this implementation */
|
||||
switch_lpc10_encode, /* function to encode raw data into encoded data */
|
||||
switch_lpc10_decode, /* function to decode encoded data into raw data */
|
||||
switch_lpc10_destroy); /* deinitalize a codec handle using this implementation */
|
||||
#endif
|
||||
/* indicate that the module should continue to be loaded */
|
||||
return SWITCH_STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
/* For Emacs:
|
||||
* Local Variables:
|
||||
* mode:c
|
||||
* indent-tabs-mode:t
|
||||
* tab-width:4
|
||||
* c-basic-offset:4
|
||||
* End:
|
||||
* For VIM:
|
||||
* vim:set softtabstop=4 shiftwidth=4 tabstop=4 noet:
|
||||
*/
|
||||
@@ -1,155 +0,0 @@
|
||||
<?xml version="1.0" encoding="Windows-1252"?>
|
||||
<VisualStudioProject
|
||||
ProjectType="Visual C++"
|
||||
Version="8.00"
|
||||
Name="mod_voipcodecs"
|
||||
ProjectGUID="{9EED03C8-8315-4214-8D13-8FF5FA46D93C}"
|
||||
RootNamespace="mod_voipcodecs"
|
||||
Keyword="Win32Proj"
|
||||
>
|
||||
<Platforms>
|
||||
<Platform
|
||||
Name="Win32"
|
||||
/>
|
||||
</Platforms>
|
||||
<ToolFiles>
|
||||
</ToolFiles>
|
||||
<Configurations>
|
||||
<Configuration
|
||||
Name="Debug|Win32"
|
||||
ConfigurationType="2"
|
||||
InheritedPropertySheets="..\..\..\..\w32\module_debug.vsprops"
|
||||
CharacterSet="2"
|
||||
>
|
||||
<Tool
|
||||
Name="VCPreBuildEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXMLDataGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCWebServiceProxyGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCMIDLTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
AdditionalIncludeDirectories=""$(InputDir)..\..\..\..\libs\spandsp\src\msvc";"$(InputDir)..\..\..\..\libs\spandsp\src";"$(InputDir)..\..\..\..\libs\tiff-4.0.2\libtiff""
|
||||
UsePrecompiledHeader="0"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManagedResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCALinkTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManifestTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXDCMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCBscMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCFxCopTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCAppVerifierTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCWebDeploymentTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPostBuildEventTool"
|
||||
/>
|
||||
</Configuration>
|
||||
<Configuration
|
||||
Name="Release|Win32"
|
||||
ConfigurationType="2"
|
||||
InheritedPropertySheets="..\..\..\..\w32\module_release.vsprops"
|
||||
CharacterSet="2"
|
||||
>
|
||||
<Tool
|
||||
Name="VCPreBuildEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXMLDataGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCWebServiceProxyGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCMIDLTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
AdditionalIncludeDirectories=""$(InputDir)..\..\..\..\libs\spandsp\src\msvc";"$(InputDir)..\..\..\..\libs\spandsp\src";"$(InputDir)..\..\..\..\libs\tiff-4.0.2\libtiff""
|
||||
UsePrecompiledHeader="0"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManagedResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCALinkTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManifestTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXDCMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCBscMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCFxCopTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCAppVerifierTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCWebDeploymentTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPostBuildEventTool"
|
||||
/>
|
||||
</Configuration>
|
||||
</Configurations>
|
||||
<References>
|
||||
</References>
|
||||
<Files>
|
||||
<File
|
||||
RelativePath=".\mod_voipcodecs.c"
|
||||
>
|
||||
</File>
|
||||
</Files>
|
||||
<Globals>
|
||||
</Globals>
|
||||
</VisualStudioProject>
|
||||
@@ -0,0 +1,8 @@
|
||||
include $(top_srcdir)/build/modmake.rulesam
|
||||
MODNAME=mod_vp8
|
||||
|
||||
mod_LTLIBRARIES = mod_vp8.la
|
||||
mod_vp8_la_SOURCES = mod_vp8.c
|
||||
mod_vp8_la_CFLAGS = $(AM_CFLAGS)
|
||||
mod_vp8_la_LIBADD = $(switch_builddir)/libfreeswitch.la
|
||||
mod_vp8_la_LDFLAGS = -avoid-version -module -no-undefined -shared
|
||||
Reference in New Issue
Block a user