]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
initial bits of ilbc codec mod.
authorMichael Jerris <mike@jerris.com>
Fri, 27 Jan 2006 00:48:15 +0000 (00:48 +0000)
committerMichael Jerris <mike@jerris.com>
Fri, 27 Jan 2006 00:48:15 +0000 (00:48 +0000)
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@452 d0543943-73ff-0310-b7d9-9358b9ac24b2

54 files changed:
libs/codec/ilbc/Makefile
libs/codec/ilbc/Makefile.am [new file with mode: 0644]
libs/codec/ilbc/configure.in [new file with mode: 0644]
libs/codec/ilbc/src/FrameClassify.c [moved from libs/codec/ilbc/FrameClassify.c with 100% similarity]
libs/codec/ilbc/src/FrameClassify.h [moved from libs/codec/ilbc/FrameClassify.h with 100% similarity]
libs/codec/ilbc/src/LPCdecode.c [moved from libs/codec/ilbc/LPCdecode.c with 100% similarity]
libs/codec/ilbc/src/LPCdecode.h [moved from libs/codec/ilbc/LPCdecode.h with 100% similarity]
libs/codec/ilbc/src/LPCencode.c [moved from libs/codec/ilbc/LPCencode.c with 100% similarity]
libs/codec/ilbc/src/LPCencode.h [moved from libs/codec/ilbc/LPCencode.h with 100% similarity]
libs/codec/ilbc/src/StateConstructW.c [moved from libs/codec/ilbc/StateConstructW.c with 100% similarity]
libs/codec/ilbc/src/StateConstructW.h [moved from libs/codec/ilbc/StateConstructW.h with 100% similarity]
libs/codec/ilbc/src/StateSearchW.c [moved from libs/codec/ilbc/StateSearchW.c with 100% similarity]
libs/codec/ilbc/src/StateSearchW.h [moved from libs/codec/ilbc/StateSearchW.h with 100% similarity]
libs/codec/ilbc/src/anaFilter.c [moved from libs/codec/ilbc/anaFilter.c with 100% similarity]
libs/codec/ilbc/src/anaFilter.h [moved from libs/codec/ilbc/anaFilter.h with 100% similarity]
libs/codec/ilbc/src/constants.c [moved from libs/codec/ilbc/constants.c with 100% similarity]
libs/codec/ilbc/src/constants.h [moved from libs/codec/ilbc/constants.h with 100% similarity]
libs/codec/ilbc/src/createCB.c [moved from libs/codec/ilbc/createCB.c with 100% similarity]
libs/codec/ilbc/src/createCB.h [moved from libs/codec/ilbc/createCB.h with 100% similarity]
libs/codec/ilbc/src/doCPLC.c [moved from libs/codec/ilbc/doCPLC.c with 100% similarity]
libs/codec/ilbc/src/doCPLC.h [moved from libs/codec/ilbc/doCPLC.h with 100% similarity]
libs/codec/ilbc/src/enhancer.c [moved from libs/codec/ilbc/enhancer.c with 100% similarity]
libs/codec/ilbc/src/enhancer.h [moved from libs/codec/ilbc/enhancer.h with 100% similarity]
libs/codec/ilbc/src/extract-cfile.awk [moved from libs/codec/ilbc/extract-cfile.awk with 100% similarity]
libs/codec/ilbc/src/filter.c [moved from libs/codec/ilbc/filter.c with 100% similarity]
libs/codec/ilbc/src/filter.h [moved from libs/codec/ilbc/filter.h with 100% similarity]
libs/codec/ilbc/src/gainquant.c [moved from libs/codec/ilbc/gainquant.c with 100% similarity]
libs/codec/ilbc/src/gainquant.h [moved from libs/codec/ilbc/gainquant.h with 100% similarity]
libs/codec/ilbc/src/getCBvec.c [moved from libs/codec/ilbc/getCBvec.c with 100% similarity]
libs/codec/ilbc/src/getCBvec.h [moved from libs/codec/ilbc/getCBvec.h with 100% similarity]
libs/codec/ilbc/src/helpfun.c [moved from libs/codec/ilbc/helpfun.c with 100% similarity]
libs/codec/ilbc/src/helpfun.h [moved from libs/codec/ilbc/helpfun.h with 100% similarity]
libs/codec/ilbc/src/hpInput.c [moved from libs/codec/ilbc/hpInput.c with 100% similarity]
libs/codec/ilbc/src/hpInput.h [moved from libs/codec/ilbc/hpInput.h with 100% similarity]
libs/codec/ilbc/src/hpOutput.c [moved from libs/codec/ilbc/hpOutput.c with 100% similarity]
libs/codec/ilbc/src/hpOutput.h [moved from libs/codec/ilbc/hpOutput.h with 100% similarity]
libs/codec/ilbc/src/iCBConstruct.c [moved from libs/codec/ilbc/iCBConstruct.c with 100% similarity]
libs/codec/ilbc/src/iCBConstruct.h [moved from libs/codec/ilbc/iCBConstruct.h with 100% similarity]
libs/codec/ilbc/src/iCBSearch.c [moved from libs/codec/ilbc/iCBSearch.c with 100% similarity]
libs/codec/ilbc/src/iCBSearch.h [moved from libs/codec/ilbc/iCBSearch.h with 100% similarity]
libs/codec/ilbc/src/iLBC_decode.c [moved from libs/codec/ilbc/iLBC_decode.c with 100% similarity]
libs/codec/ilbc/src/iLBC_decode.h [moved from libs/codec/ilbc/iLBC_decode.h with 100% similarity]
libs/codec/ilbc/src/iLBC_define.h [moved from libs/codec/ilbc/iLBC_define.h with 100% similarity]
libs/codec/ilbc/src/iLBC_encode.c [moved from libs/codec/ilbc/iLBC_encode.c with 100% similarity]
libs/codec/ilbc/src/iLBC_encode.h [moved from libs/codec/ilbc/iLBC_encode.h with 100% similarity]
libs/codec/ilbc/src/lsf.c [moved from libs/codec/ilbc/lsf.c with 100% similarity]
libs/codec/ilbc/src/lsf.h [moved from libs/codec/ilbc/lsf.h with 100% similarity]
libs/codec/ilbc/src/packing.c [moved from libs/codec/ilbc/packing.c with 100% similarity]
libs/codec/ilbc/src/packing.h [moved from libs/codec/ilbc/packing.h with 100% similarity]
libs/codec/ilbc/src/syntFilter.c [moved from libs/codec/ilbc/syntFilter.c with 100% similarity]
libs/codec/ilbc/src/syntFilter.h [moved from libs/codec/ilbc/syntFilter.h with 100% similarity]
src/mod/codecs/mod_ilbc/Makefile [new file with mode: 0644]
src/mod/codecs/mod_ilbc/mod_ilbc.c [new file with mode: 0644]
src/mod/codecs/mod_ilbc/mod_ilbc.vcproj [new file with mode: 0644]

index 5ef581ebe7a13d3aadb105adbbec15d520c22f90..78fda418f9500b33165a00bb5e63ae09b9c04dd9 100644 (file)
@@ -5,11 +5,11 @@ CFLAGS += -fPIC
 endif\r
 LIB=libilbc.a\r
 \r
-OBJS= anaFilter.o iCBSearch.o packing.o \\r
-        constants.o gainquant.o iLBC_decode.o StateConstructW.o \\r
-        createCB.o getCBvec.o iLBC_encode.o StateSearchW.o doCPLC.o \\r
-        helpfun.o syntFilter.o enhancer.o hpInput.o LPCdecode.o \\r
-        filter.o hpOutput.o LPCencode.o FrameClassify.o  iCBConstruct.o lsf.o\r
+OBJS= src/anaFilter.o src/iCBSearch.o src/packing.o \\r
+        src/constants.o src/gainquant.o src/iLBC_decode.o src/StateConstructW.o \\r
+        src/createCB.o src/getCBvec.o src/iLBC_encode.o src/StateSearchW.o src/doCPLC.o \\r
+        src/helpfun.o src/syntFilter.o src/enhancer.o src/hpInput.o src/LPCdecode.o \\r
+        src/filter.o src/hpOutput.o src/LPCencode.o src/FrameClassify.o  src/iCBConstruct.o src/lsf.o\r
 \r
 all: $(LIB)\r
 \r
diff --git a/libs/codec/ilbc/Makefile.am b/libs/codec/ilbc/Makefile.am
new file mode 100644 (file)
index 0000000..3c00211
--- /dev/null
@@ -0,0 +1,25 @@
+EXTRA_DIST =
+SUBDIRS = 
+AUTOMAKE_OPTS= gnu
+MAKE=gmake
+NAME=libilbc
+
+AM_CC=gcc
+AM_CFLAGS      = -Wall -O3 -funroll-loops
+AM_CPPFLAGS = $(AM_CFLAGS)
+
+lib_LTLIBRARIES                = libilbc.la
+libgsm_la_SOURCES      = src/anaFilter.o src/iCBSearch.o src/packing.o \
+        src/constants.o src/gainquant.o src/iLBC_decode.o src/StateConstructW.o \
+        src/createCB.o src/getCBvec.o src/iLBC_encode.o src/StateSearchW.o src/doCPLC.o \
+        src/helpfun.o src/syntFilter.o src/enhancer.o src/hpInput.o src/LPCdecode.o \
+        src/filter.o src/hpOutput.o src/LPCencode.o src/FrameClassify.o  src/iCBConstruct.o src/lsf.o
+
+libgsm_la_CFLAGS       = $(AM_CFLAGS)
+libgsm_la_LDFLAGS      = 
+
+
+
+
+
+
diff --git a/libs/codec/ilbc/configure.in b/libs/codec/ilbc/configure.in
new file mode 100644 (file)
index 0000000..1af6dbe
--- /dev/null
@@ -0,0 +1,34 @@
+#                                               -*- Autoconf -*-
+# Process this file with autoconf to produce a configure script.
+
+AC_PREREQ(2.59)
+AC_INIT(FULL-PACKAGE-NAME, VERSION, BUG-REPORT-ADDRESS)
+AM_INIT_AUTOMAKE(libilbc,0.1)
+AC_CONFIG_SRCDIR([src])
+
+# Checks for programs.
+AC_PROG_CC
+AC_PROG_MAKE_SET
+AC_PROG_LIBTOOL
+AC_PROG_INSTALL
+
+# Checks for header files.
+AC_HEADER_DIRENT
+AC_HEADER_STDC
+
+# Checks for typedefs, structures, and compiler characteristics.
+AC_C_CONST
+AC_C_INLINE
+AC_TYPE_SIZE_T
+AC_HEADER_TIME
+AC_STRUCT_TM
+
+# Checks for library functions.
+AC_PROG_GCC_TRADITIONAL
+AC_FUNC_MALLOC
+AC_TYPE_SIGNAL
+AC_FUNC_STRFTIME
+
+AC_CONFIG_FILES([Makefile])
+
+AC_OUTPUT
diff --git a/src/mod/codecs/mod_ilbc/Makefile b/src/mod/codecs/mod_ilbc/Makefile
new file mode 100644 (file)
index 0000000..d989760
--- /dev/null
@@ -0,0 +1,16 @@
+LDFLAGS +=-lilbc
+
+all:   depends $(MODNAME).so
+
+depends:
+       $(BASE)/buildlib.sh $(BASE) install codec/ilbc --prefix=$(PREFIX)
+
+$(MODNAME).so: $(MODNAME).c
+       $(CC) $(CFLAGS) -fPIC -c $(MODNAME).c -o $(MODNAME).o
+       $(CC) $(SOLINK) $(MODNAME).o -o $(MODNAME).so $(LDFLAGS)
+
+clean:
+       rm -fr *.so *.o *~
+
+install:
+       cp -f $(MODNAME).so $(PREFIX)/mod
diff --git a/src/mod/codecs/mod_ilbc/mod_ilbc.c b/src/mod/codecs/mod_ilbc/mod_ilbc.c
new file mode 100644 (file)
index 0000000..8e5b819
--- /dev/null
@@ -0,0 +1,175 @@
+/* \r
+ * FreeSWITCH Modular Media Switching Software Library / Soft-Switch Application\r
+ * Copyright (C) 2005/2006, Anthony Minessale II <anthmct@yahoo.com>\r
+ *\r
+ * Version: MPL 1.1\r
+ *\r
+ * The contents of this file are subject to the Mozilla Public License Version\r
+ * 1.1 (the "License"); you may not use this file except in compliance with\r
+ * the License. You may obtain a copy of the License at\r
+ * http://www.mozilla.org/MPL/\r
+ *\r
+ * Software distributed under the License is distributed on an "AS IS" basis,\r
+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License\r
+ * for the specific language governing rights and limitations under the\r
+ * License.\r
+ *\r
+ * The Original Code is FreeSWITCH Modular Media Switching Software Library / Soft-Switch Application\r
+ *\r
+ * The Initial Developer of the Original Code is\r
+ * Anthony Minessale II <anthmct@yahoo.com>\r
+ * Portions created by the Initial Developer are Copyright (C)\r
+ * the Initial Developer. All Rights Reserved.\r
+ *\r
+ * Contributor(s):\r
+ * \r
+ * Anthony Minessale II <anthmct@yahoo.com>\r
+ * Michael Jerris <mike@jerris.com>\r
+ *\r
+ * mod_codec_gsm.c -- gsm Codec Module\r
+ *\r
+ */  \r
+#include "switch.h"\r
+#include "gsm.h"\r
+\rstatic const char modname[] = "mod_codec_gsm";
+\r\rstruct gsm_context {
+       \rgsm encoder;
+       \rgsm decoder;
+\r};
+\r\rstatic switch_status switch_gsm_init(switch_codec *codec, switch_codec_flag flags,
+                                                                          const struct switch_codec_settings *codec_settings) \r
+{
+       \rstruct gsm_context *context;
+       \rint encoding, decoding;
+       \r\rencoding = (flags & SWITCH_CODEC_FLAG_ENCODE);
+       \rdecoding = (flags & SWITCH_CODEC_FLAG_DECODE);
+       \r\rif (!(encoding || decoding)) {
+               \rreturn SWITCH_STATUS_FALSE;
+       \r} else {
+               \rcontext = switch_core_alloc(codec->memory_pool, sizeof(*context));
+               \rif (encoding)
+                       context->encoder = gsm_create();
+               \rif (decoding)
+                       context->decoder = gsm_create();
+       \r}
+       \r\rcodec->private = context;
+       \r\rreturn SWITCH_STATUS_SUCCESS;
+\r\r}
+\r\rstatic switch_status switch_gsm_destroy(switch_codec *codec) \r
+{
+       \rstruct gsm_context *context = codec->private;
+       \rint encoding = (codec->flags & SWITCH_CODEC_FLAG_ENCODE);
+       \rint decoding = (codec->flags & SWITCH_CODEC_FLAG_DECODE);
+       \r\rif (encoding)
+               gsm_destroy(context->encoder);
+       \rif (decoding)
+               gsm_destroy(context->decoder);
+       \r\rcodec->private = NULL;
+       \rreturn SWITCH_STATUS_SUCCESS;
+\r}
+\r\r\rstatic switch_status switch_gsm_encode(switch_codec *codec, \rswitch_codec *other_codec, \rvoid *decoded_data,
+                                                                                 \rsize_t decoded_data_len, \rint decoded_rate, \rvoid *encoded_data,
+                                                                                 \rsize_t *encoded_data_len, \rint *encoded_rate, \runsigned int *flag) \r
+{
+       \rstruct gsm_context *context = codec->private;
+       \rint cbret = 0;
+       \r\rif (!context) {
+               \rreturn SWITCH_STATUS_FALSE;
+       \r}
+       \rif (decoded_data_len % 320 == 0) {
+               \runsigned int new_len = 0;
+               \rgsm_signal * ddp = decoded_data;
+               \rgsm_byte * edp = encoded_data;
+               \rint x;
+               \rint loops = (int) decoded_data_len / 320;
+               \rfor (x = 0; x < loops && new_len < *encoded_data_len; x++) {
+                       \rgsm_encode(context->encoder, ddp, edp);
+                       \redp += 33;
+                       \rddp += 160;
+                       \rnew_len += 33;
+               \r}
+               \rif (new_len <= *encoded_data_len) {
+                       \r*encoded_data_len = new_len;
+               \r} else {
+                       \rswitch_console_printf(SWITCH_CHANNEL_CONSOLE, "buffer overflow!!! %u >= %u\n", new_len, *encoded_data_len);
+                       \rreturn SWITCH_STATUS_FALSE;
+               \r}
+       \r}
+       \r\rreturn SWITCH_STATUS_SUCCESS;
+\r}
+\r\r\rstatic switch_status switch_gsm_decode(switch_codec *codec, \rswitch_codec *other_codec, \rvoid *encoded_data,
+                                                                                 \rsize_t encoded_data_len, \rint encoded_rate, \rvoid *decoded_data,
+                                                                                 \rsize_t *decoded_data_len, \rint *decoded_rate, \runsigned int *flag) \r
+{
+       \rstruct gsm_context *context = codec->private;
+       \r\rif (!context) {
+               \rreturn SWITCH_STATUS_FALSE;
+       \r}
+       \r\r\rif (encoded_data_len % 33 == 0) {
+               \rint loops = (int) encoded_data_len / 33;
+               \rgsm_byte * edp = encoded_data;
+               \rgsm_signal * ddp = decoded_data;
+               \rint x;
+               \runsigned int new_len = 0;
+               \rfor (x = 0; x < loops && new_len < *decoded_data_len; x++) {
+                       \rgsm_decode(context->decoder, edp, ddp);
+                       \rddp += 160;
+                       \redp += 33;
+                       \rnew_len += 320;
+               \r}
+               \rif (new_len <= *decoded_data_len) {
+                       \r*decoded_data_len = new_len;
+               \r} else {
+                       \rswitch_console_printf(SWITCH_CHANNEL_CONSOLE, "buffer overflow!!!\n");
+                       \rreturn SWITCH_STATUS_FALSE;
+               \r}
+       \r} else {
+               \rswitch_console_printf(SWITCH_CHANNEL_CONSOLE, "yo this frame is an odd size [%d]\n", encoded_data_len);
+       \r}
+       \r\rreturn SWITCH_STATUS_SUCCESS;
+\r}
+
+\r\r
+/* Registration */ \r
+\rstatic const switch_codec_implementation gsm_8k_implementation = { \r
+               /*.samples_per_second */ 8000, \r
+               /*.bits_per_second */ 13200, \r
+               /*.microseconds_per_frame */ 20000, \r
+               /*.samples_per_frame */ 160, \r
+               /*.bytes_per_frame */ 320, \r
+               /*.encoded_bytes_per_frame */ 33, \r
+               /*.number_of_channels */ 1, \r
+               /*.pref_frames_per_packet */ 1, \r
+               /*.max_frames_per_packet */ 1, \r
+               /*.init */ switch_gsm_init, \r
+               /*.encode */ switch_gsm_encode, \r
+               /*.decode */ switch_gsm_decode, \r
+               /*.destroy */ switch_gsm_destroy, \r
+};
+\r\rstatic const switch_codec_interface gsm_codec_interface = { \r
+               /*.interface_name */ "gsm", \r
+               /*.codec_type */ SWITCH_CODEC_TYPE_AUDIO, \r
+               /*.ianacode */ 3, \r
+               /*.iananame */ "gsm", \r
+               /*.implementations */ &gsm_8k_implementation, \r
+};
+\r\rstatic switch_loadable_module_interface gsm_module_interface = { \r
+               /*.module_name */ modname, \r
+               /*.endpoint_interface */ NULL, \r
+               /*.timer_interface */ NULL, \r
+               /*.dialplan_interface */ NULL, \r
+               /*.codec_interface */ &gsm_codec_interface, \r
+               /*.application_interface */ NULL \r
+};
+\r\r\rSWITCH_MOD_DECLARE(switch_status) switch_module_load(const switch_loadable_module_interface **interface,
+                                                                                                               char *filename)
+{
+       \r
+               /* connect my internal structure to the blank pointer passed to me */ \r
+               *interface = &gsm_module_interface;
+       \r\r
+               /* indicate that the module should continue to be loaded */ \r
+               return SWITCH_STATUS_SUCCESS;
+\r}
+
+\r\r\r\r\r\r
diff --git a/src/mod/codecs/mod_ilbc/mod_ilbc.vcproj b/src/mod/codecs/mod_ilbc/mod_ilbc.vcproj
new file mode 100644 (file)
index 0000000..f59cb1a
--- /dev/null
@@ -0,0 +1,212 @@
+<?xml version="1.0" encoding="Windows-1252"?>\r
+<VisualStudioProject\r
+       ProjectType="Visual C++"\r
+       Version="8.00"\r
+       Name="mod_ilbc"\r
+       ProjectGUID="{4926323F-4EA8-4B7D-A3D3-65488725988F}"\r
+       RootNamespace="mod_ilbc"\r
+       Keyword="Win32Proj"\r
+       >\r
+       <Platforms>\r
+               <Platform\r
+                       Name="Win32"\r
+               />\r
+       </Platforms>\r
+       <ToolFiles>\r
+       </ToolFiles>\r
+       <Configurations>\r
+               <Configuration\r
+                       Name="Debug|Win32"\r
+                       OutputDirectory="Debug"\r
+                       IntermediateDirectory="Debug"\r
+                       ConfigurationType="2"\r
+                       InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"\r
+                       CharacterSet="2"\r
+                       >\r
+                       <Tool\r
+                               Name="VCPreBuildEventTool"\r
+                               CommandLine="cscript /nologo $(InputDir)..\..\..\..\w32\vsnet\getlibs.vbs Mod_Codecilbc Debug"\r
+                       />\r
+                       <Tool\r
+                               Name="VCCustomBuildTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCXMLDataGeneratorTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCWebServiceProxyGeneratorTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCMIDLTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCCLCompilerTool"\r
+                               Optimization="0"\r
+                               AdditionalIncludeDirectories="&quot;$(InputDir)..\..\..\include&quot;;&quot;$(InputDir)..\..\..\..\libs\include&quot;;&quot;$(InputDir)..\..\..\..\libs\codec\ilbc\inc&quot;"\r
+                               PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;MOD_EXPORTS"\r
+                               MinimalRebuild="true"\r
+                               BasicRuntimeChecks="3"\r
+                               RuntimeLibrary="3"\r
+                               UsePrecompiledHeader="0"\r
+                               WarningLevel="3"\r
+                               Detect64BitPortabilityProblems="true"\r
+                               DebugInformationFormat="4"\r
+                       />\r
+                       <Tool\r
+                               Name="VCManagedResourceCompilerTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCResourceCompilerTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCPreLinkEventTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCLinkerTool"\r
+                               AdditionalDependencies="libilbc.lib FreeSwitchCore.lib"\r
+                               OutputFile="..\..\..\..\w32\vsnet\$(OutDir)/mod/mod_ilbc.dll"\r
+                               LinkIncremental="2"\r
+                               AdditionalLibraryDirectories="..\..\..\..\libs\codec\ilbc\Debug;..\..\..\..\w32\vsnet\Debug"\r
+                               GenerateDebugInformation="true"\r
+                               ProgramDatabaseFile="$(OutDir)/mod_ilbc.pdb"\r
+                               SubSystem="2"\r
+                               ImportLibrary="$(OutDir)/mod_ilbc.lib"\r
+                               TargetMachine="1"\r
+                       />\r
+                       <Tool\r
+                               Name="VCALinkTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCManifestTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCXDCMakeTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCBscMakeTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCFxCopTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCAppVerifierTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCWebDeploymentTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCPostBuildEventTool"\r
+                       />\r
+               </Configuration>\r
+               <Configuration\r
+                       Name="Release|Win32"\r
+                       OutputDirectory="Release"\r
+                       IntermediateDirectory="Release"\r
+                       ConfigurationType="2"\r
+                       InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"\r
+                       CharacterSet="2"\r
+                       >\r
+                       <Tool\r
+                               Name="VCPreBuildEventTool"\r
+                               CommandLine="cscript /nologo $(InputDir)..\..\..\..\w32\vsnet\getlibs.vbs Mod_Codecilbc Release"\r
+                       />\r
+                       <Tool\r
+                               Name="VCCustomBuildTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCXMLDataGeneratorTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCWebServiceProxyGeneratorTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCMIDLTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCCLCompilerTool"\r
+                               AdditionalIncludeDirectories="&quot;$(InputDir)..\..\..\include&quot;;&quot;$(InputDir)..\..\..\..\libs\include&quot;;&quot;$(InputDir)..\..\..\..\libs\codec\ilbc\inc&quot;"\r
+                               PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;MOD_EXPORTS"\r
+                               RuntimeLibrary="2"\r
+                               UsePrecompiledHeader="0"\r
+                               WarningLevel="3"\r
+                               Detect64BitPortabilityProblems="true"\r
+                               DebugInformationFormat="3"\r
+                       />\r
+                       <Tool\r
+                               Name="VCManagedResourceCompilerTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCResourceCompilerTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCPreLinkEventTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCLinkerTool"\r
+                               AdditionalDependencies="libilbc.lib FreeSwitchCore.lib"\r
+                               OutputFile="..\..\..\..\w32\vsnet\$(OutDir)/mod/mod_ilbc.dll"\r
+                               LinkIncremental="1"\r
+                               AdditionalLibraryDirectories="..\..\..\..\libs\codec\ilbc\Release;..\..\..\..\w32\vsnet\Release"\r
+                               GenerateDebugInformation="true"\r
+                               SubSystem="2"\r
+                               OptimizeReferences="2"\r
+                               EnableCOMDATFolding="2"\r
+                               LinkTimeCodeGeneration="1"\r
+                               ImportLibrary="$(OutDir)/mod_ilbc.lib"\r
+                               TargetMachine="1"\r
+                       />\r
+                       <Tool\r
+                               Name="VCALinkTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCManifestTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCXDCMakeTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCBscMakeTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCFxCopTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCAppVerifierTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCWebDeploymentTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCPostBuildEventTool"\r
+                       />\r
+               </Configuration>\r
+       </Configurations>\r
+       <References>\r
+       </References>\r
+       <Files>\r
+               <Filter\r
+                       Name="Source Files"\r
+                       Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx"\r
+                       UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"\r
+                       >\r
+                       <File\r
+                               RelativePath="mod_ilbc.c"\r
+                               >\r
+                       </File>\r
+               </Filter>\r
+               <Filter\r
+                       Name="Header Files"\r
+                       Filter="h;hpp;hxx;hm;inl;inc;xsd"\r
+                       UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"\r
+                       >\r
+               </Filter>\r
+               <Filter\r
+                       Name="Resource Files"\r
+                       Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx"\r
+                       UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"\r
+                       >\r
+               </Filter>\r
+       </Files>\r
+       <Globals>\r
+       </Globals>\r
+</VisualStudioProject>\r