move applications to use automake

This commit is contained in:
Michael Jerris
2014-02-27 14:16:54 -05:00
parent 07272e864e
commit bcd9f49fbe
234 changed files with 1729 additions and 2421 deletions
-11
View File
@@ -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
+21
View File
@@ -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
-11
View File
@@ -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
+21
View File
@@ -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
+8
View File
@@ -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
-13
View File
@@ -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)
+17
View File
@@ -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
-14
View File
@@ -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)
+19
View File
@@ -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
-9
View File
@@ -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
+19
View File
@@ -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
-9
View File
@@ -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
+19
View File
@@ -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
-2
View File
@@ -1,2 +0,0 @@
BASE=../../../..
include $(BASE)/build/modmake.rules
+8
View File
@@ -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
-12
View File
@@ -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)
+18
View File
@@ -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)
-71
View File
@@ -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
+17
View File
@@ -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
-2
View File
@@ -1,2 +0,0 @@
BASE=../../../..
include $(BASE)/build/modmake.rules
+8
View File
@@ -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
-12
View File
@@ -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)
+18
View File
@@ -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)
-11
View File
@@ -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)
+16
View File
@@ -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
-2
View File
@@ -1,2 +0,0 @@
BASE=../../../..
include $(BASE)/build/modmake.rules
+8
View File
@@ -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
-23
View File
@@ -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="&quot;$(InputDir)..\..\..\..\libs\spandsp\src\msvc&quot;;&quot;$(InputDir)..\..\..\..\libs\spandsp\src&quot;;&quot;$(InputDir)..\..\..\..\libs\tiff-4.0.2\libtiff&quot;"
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="&quot;$(InputDir)..\..\..\..\libs\spandsp\src\msvc&quot;;&quot;$(InputDir)..\..\..\..\libs\spandsp\src&quot;;&quot;$(InputDir)..\..\..\..\libs\tiff-4.0.2\libtiff&quot;"
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="&quot;$(InputDir)..\..\..\..\libs\spandsp\src\msvc&quot;;&quot;$(InputDir)..\..\..\..\libs\spandsp\src&quot;;&quot;$(InputDir)..\..\..\..\libs\tiff-4.0.2\libtiff&quot;"
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="&quot;$(InputDir)..\..\..\..\libs\spandsp\src\msvc&quot;;&quot;$(InputDir)..\..\..\..\libs\spandsp\src&quot;;&quot;$(InputDir)..\..\..\..\libs\tiff-4.0.2\libtiff&quot;"
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="&quot;$(InputDir)..\..\..\..\libs\spandsp\src\msvc&quot;;&quot;$(InputDir)..\..\..\..\libs\spandsp\src&quot;;&quot;$(InputDir)..\..\..\..\libs\tiff-4.0.2\libtiff&quot;"
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="&quot;$(InputDir)..\..\..\..\libs\spandsp\src\msvc&quot;;&quot;$(InputDir)..\..\..\..\libs\spandsp\src&quot;;&quot;$(InputDir)..\..\..\..\libs\tiff-4.0.2\libtiff&quot;"
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>
+8
View File
@@ -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