diff --git a/build_tools/strip_nonapi b/build_tools/strip_nonapi
index 5a52eef1e8..8a8d06fccb 100755
--- a/build_tools/strip_nonapi
+++ b/build_tools/strip_nonapi
@@ -14,8 +14,9 @@
# __ast_
# astman_
# pbx_
+# resample_
-FILTER="${GREP} -v -e ^ast_ -e ^_ast_ -e ^__ast_ -e ^astman_ -e ^pbx_"
+FILTER="${GREP} -v -e ^ast_ -e ^_ast_ -e ^__ast_ -e ^astman_ -e ^pbx_ -e ^resample_"
case "${OSARCH}" in
linux-gnu|FreeBSD)
diff --git a/codecs/Makefile b/codecs/Makefile
index ef76962e5f..a09f67149e 100644
--- a/codecs/Makefile
+++ b/codecs/Makefile
@@ -55,4 +55,4 @@ $(LIBG722):
$(if $(filter codec_g722,$(EMBEDDED_MODS)),modules.link,codec_g722.so): $(LIBG722)
-codec_resample.o: ASTCFLAGS+=-I$(ASTTOPDIR)/res/libresample/include
+codec_resample.o: ASTCFLAGS+=-I$(ASTTOPDIR)/main/libresample/include
diff --git a/codecs/codec_resample.c b/codecs/codec_resample.c
index 718ab88ae0..66d60169d9 100644
--- a/codecs/codec_resample.c
+++ b/codecs/codec_resample.c
@@ -24,10 +24,6 @@
* \ingroup codecs
*/
-/*** MODULEINFO
- res_resample
- ***/
-
#include "asterisk.h"
ASTERISK_FILE_VERSION(__FILE__, "$Revision$")
diff --git a/main/Makefile b/main/Makefile
index ffbd4bf7fa..304d48614a 100644
--- a/main/Makefile
+++ b/main/Makefile
@@ -111,6 +111,9 @@ editline/libedit.a: CHECK_SUBDIR
db1-ast/libdb1.a: CHECK_SUBDIR
CFLAGS="$(ASTCFLAGS)" LDFLAGS="$(ASTLDFLAGS)" $(MAKE) -C db1-ast libdb1.a
+libresample/libresample.a: CHECK_SUBDIR
+ $(MAKE) -f Makefile.asterisk -C libresample libresample.a
+
ast_expr2.c ast_expr2.h:
bison -o $@ -d --name-prefix=ast_yy ast_expr2.y
@@ -127,6 +130,8 @@ testexpr2: ast_expr2f.c ast_expr2.c ast_expr2.h
channel.o: ASTCFLAGS+=$(ZAPTEL_INCLUDE)
+translate.o: ASTCFLAGS+=-Ilibresample/include
+
AST_EMBED_LDSCRIPTS:=$(sort $(EMBED_LDSCRIPTS))
AST_EMBED_LDFLAGS:=$(foreach dep,$(EMBED_LDFLAGS),$(value $(dep)))
AST_EMBED_LIBS:=$(foreach dep,$(EMBED_LIBS),$(value $(dep)))
@@ -152,7 +157,7 @@ else
MAIN_TGT:=asterisk
endif
-$(MAIN_TGT): $(OBJS) editline/libedit.a db1-ast/libdb1.a minimime/libmmime.a $(AST_EMBED_LDSCRIPTS)
+$(MAIN_TGT): $(OBJS) editline/libedit.a db1-ast/libdb1.a minimime/libmmime.a $(AST_EMBED_LDSCRIPTS) libresample/libresample.a
@$(CC) -c -o buildinfo.o $(ASTCFLAGS) buildinfo.c
$(ECHO_PREFIX) echo " [LD] $^ -> $@"
ifneq ($(findstring chan_h323,$(MENUSELECT_CHANNELS)),)
@@ -169,3 +174,4 @@ clean::
@$(MAKE) -C db1-ast clean
@$(MAKE) -C stdtime clean
@$(MAKE) -C minimime clean
+ @$(MAKE) -f Makefile.asterisk -C libresample clean
diff --git a/res/libresample/LICENSE.txt b/main/libresample/LICENSE.txt
similarity index 100%
rename from res/libresample/LICENSE.txt
rename to main/libresample/LICENSE.txt
diff --git a/res/libresample/Makefile.asterisk b/main/libresample/Makefile.asterisk
similarity index 100%
rename from res/libresample/Makefile.asterisk
rename to main/libresample/Makefile.asterisk
diff --git a/res/libresample/Makefile.in b/main/libresample/Makefile.in
similarity index 100%
rename from res/libresample/Makefile.in
rename to main/libresample/Makefile.in
diff --git a/res/libresample/README.txt b/main/libresample/README.txt
similarity index 100%
rename from res/libresample/README.txt
rename to main/libresample/README.txt
diff --git a/res/libresample/config.guess b/main/libresample/config.guess
similarity index 100%
rename from res/libresample/config.guess
rename to main/libresample/config.guess
diff --git a/res/libresample/config.sub b/main/libresample/config.sub
similarity index 100%
rename from res/libresample/config.sub
rename to main/libresample/config.sub
diff --git a/res/libresample/configure b/main/libresample/configure
similarity index 100%
rename from res/libresample/configure
rename to main/libresample/configure
diff --git a/res/libresample/configure.in b/main/libresample/configure.in
similarity index 100%
rename from res/libresample/configure.in
rename to main/libresample/configure.in
diff --git a/res/libresample/include/libresample.h b/main/libresample/include/libresample.h
similarity index 100%
rename from res/libresample/include/libresample.h
rename to main/libresample/include/libresample.h
diff --git a/res/libresample/install-sh b/main/libresample/install-sh
similarity index 100%
rename from res/libresample/install-sh
rename to main/libresample/install-sh
diff --git a/res/libresample/src/configtemplate.h b/main/libresample/src/configtemplate.h
similarity index 100%
rename from res/libresample/src/configtemplate.h
rename to main/libresample/src/configtemplate.h
diff --git a/res/libresample/src/filterkit.c b/main/libresample/src/filterkit.c
similarity index 100%
rename from res/libresample/src/filterkit.c
rename to main/libresample/src/filterkit.c
diff --git a/res/libresample/src/filterkit.h b/main/libresample/src/filterkit.h
similarity index 100%
rename from res/libresample/src/filterkit.h
rename to main/libresample/src/filterkit.h
diff --git a/res/libresample/src/resample.c b/main/libresample/src/resample.c
similarity index 98%
rename from res/libresample/src/resample.c
rename to main/libresample/src/resample.c
index 9dba5af961..85ff75f766 100644
--- a/res/libresample/src/resample.c
+++ b/main/libresample/src/resample.c
@@ -87,7 +87,7 @@ void *resample_open(int highQuality, double minFactor, double maxFactor)
/* Just exit if we get invalid factors */
if (minFactor <= 0.0 || maxFactor <= 0.0 || maxFactor < minFactor) {
- #ifdef DEBUG
+ #if defined(DEBUG)
fprintf(stderr,
"libresample: "
"minFactor and maxFactor must be positive real numbers,\n"
@@ -187,7 +187,7 @@ int resample_process(void *handle,
int Nx;
int i, len;
- #ifdef DEBUG
+ #if defined(DEBUG)
fprintf(stderr, "resample_process: in=%d, out=%d lastFlag=%d\n",
inBufferLen, outBufferLen, lastFlag);
#endif
@@ -197,7 +197,7 @@ int resample_process(void *handle,
outSampleCount = 0;
if (factor < hp->minFactor || factor > hp->maxFactor) {
- #ifdef DEBUG
+ #if defined(DEBUG)
fprintf(stderr,
"libresample: factor %f is not between "
"minFactor=%f and maxFactor=%f",
@@ -232,7 +232,7 @@ int resample_process(void *handle,
/* This is the maximum number of samples we can process
per loop iteration */
- #ifdef DEBUG
+ #if defined(DEBUG)
printf("XSize: %d Xoff: %d Xread: %d Xp: %d lastFlag: %d\n",
hp->XSize, hp->Xoff, hp->Xread, hp->Xp, lastFlag);
#endif
@@ -260,7 +260,7 @@ int resample_process(void *handle,
else
Nx = hp->Xread - 2 * hp->Xoff;
- #ifdef DEBUG
+ #if defined(DEBUG)
fprintf(stderr, "new len=%d Nx=%d\n", len, Nx);
#endif
@@ -277,7 +277,7 @@ int resample_process(void *handle,
Nwing, LpScl, Imp, ImpD, interpFilt);
}
- #ifdef DEBUG
+ #if defined(DEBUG)
printf("Nout: %d\n", Nout);
#endif
@@ -297,7 +297,7 @@ int resample_process(void *handle,
for (i=0; iX[i] = hp->X[i + (hp->Xp - hp->Xoff)];
- #ifdef DEBUG
+ #if defined(DEBUG)
printf("New Xread=%d\n", Nreuse);
#endif
@@ -306,7 +306,7 @@ int resample_process(void *handle,
/* Check to see if output buff overflowed (shouldn't happen!) */
if (Nout > hp->YSize) {
- #ifdef DEBUG
+ #if defined(DEBUG)
printf("Nout: %d YSize: %d\n", Nout, hp->YSize);
#endif
fprintf(stderr, "libresample: Output array overflow!\n");
diff --git a/res/libresample/src/resample_defs.h b/main/libresample/src/resample_defs.h
similarity index 100%
rename from res/libresample/src/resample_defs.h
rename to main/libresample/src/resample_defs.h
diff --git a/res/libresample/src/resamplesubs.c b/main/libresample/src/resamplesubs.c
similarity index 100%
rename from res/libresample/src/resamplesubs.c
rename to main/libresample/src/resamplesubs.c
diff --git a/res/libresample/tests/compareresample.c b/main/libresample/tests/compareresample.c
similarity index 100%
rename from res/libresample/tests/compareresample.c
rename to main/libresample/tests/compareresample.c
diff --git a/res/libresample/tests/resample-sndfile.c b/main/libresample/tests/resample-sndfile.c
similarity index 100%
rename from res/libresample/tests/resample-sndfile.c
rename to main/libresample/tests/resample-sndfile.c
diff --git a/res/libresample/tests/testresample.c b/main/libresample/tests/testresample.c
similarity index 100%
rename from res/libresample/tests/testresample.c
rename to main/libresample/tests/testresample.c
diff --git a/res/libresample/win/libresample.dsp b/main/libresample/win/libresample.dsp
similarity index 100%
rename from res/libresample/win/libresample.dsp
rename to main/libresample/win/libresample.dsp
diff --git a/res/libresample/win/libresample.vcproj b/main/libresample/win/libresample.vcproj
similarity index 100%
rename from res/libresample/win/libresample.vcproj
rename to main/libresample/win/libresample.vcproj
diff --git a/main/translate.c b/main/translate.c
index d9270e9078..617e46552c 100644
--- a/main/translate.c
+++ b/main/translate.c
@@ -39,8 +39,14 @@ ASTERISK_FILE_VERSION(__FILE__, "$Revision$")
#include "asterisk/cli.h"
#include "asterisk/term.h"
+#include "libresample.h"
+
#define MAX_RECALC 1000 /* max sample recalc */
+/* hack to ensure that the libresample code gets linked in */
+
+static attribute_unused void (*resample_hack)(void *) = resample_close;
+
/*! \brief the list of translators */
static AST_RWLIST_HEAD_STATIC(translators, ast_translator);
diff --git a/res/Makefile b/res/Makefile
index 496264f0b9..cfac3183a7 100644
--- a/res/Makefile
+++ b/res/Makefile
@@ -47,9 +47,6 @@ ael/ael.tab.c ael/ael.tab.h:
ael/pval.o: ael/pval.c
-res_resample.so: libresample/src/resample.o libresample/src/resamplesubs.o libresample/src/filterkit.o
-
clean::
rm -f snmp/*.o
rm -f ael/*.o
- rm -f libresample/src/*.o
diff --git a/res/res_resample.c b/res/res_resample.c
deleted file mode 100644
index ac85c3f43a..0000000000
--- a/res/res_resample.c
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- * Asterisk -- A telephony toolkit for Linux.
- *
- * Copyright (C) 2007, Digium, Inc.
- *
- * Russell Bryant
- *
- * See http://www.asterisk.org for more information about
- * the Asterisk project. Please do not directly contact
- * any of the maintainers of this project for assistance;
- * the project provides a web site, mailing lists and IRC
- * channels for your use.
- *
- * This program is free software, distributed under the terms of
- * the GNU General Public License Version 2. See the LICENSE file
- * at the top of the source tree.
- */
-
-/*!
- * \file
- *
- * \author Russell Bryant
- */
-
-#include "asterisk.h"
-
-ASTERISK_FILE_VERSION(__FILE__, "$Revision$")
-
-#include "asterisk/module.h"
-
-static int load_module(void)
-{
- return 0;
-}
-
-static int unload_module(void)
-{
- return -1;
-}
-
-AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_GLOBAL_SYMBOLS, "Resampling Support via libresample",
- .load = load_module,
- .unload = unload_module,
- );