diff --git a/codecs/gsm/inc/private.h b/codecs/gsm/inc/private.h index b7115ae51081f5b014232145e659666d565d608c..24f0b42b28791627ba935ef81c964eb120d9bd21 100644 --- a/codecs/gsm/inc/private.h +++ b/codecs/gsm/inc/private.h @@ -136,6 +136,11 @@ static __inline__ short GSM_SUB(short a, short b) #else +#ifdef WIN32 +#define inline __inline +#define __inline__ __inline +#endif + # define GSM_L_ADD(a, b) \ ( (a) < 0 ? ( (b) >= 0 ? (a) + (b) \ : (utmp = (ulongword)-((a) + 1) + (ulongword)-((b) + 1)) \ @@ -144,25 +149,19 @@ static __inline__ short GSM_SUB(short a, short b) : (utmp = (ulongword)(a) + (ulongword)(b)) >= MAX_LONGWORD \ ? MAX_LONGWORD : utmp)) -/* - * # define GSM_ADD(a, b) \ - * ((ltmp = (longword)(a) + (longword)(b)) >= MAX_WORD \ - * ? MAX_WORD : ltmp <= MIN_WORD ? MIN_WORD : ltmp) - */ -/* Nonportable, but faster: */ - -# define GSM_ADD(a, b) ({ \ - register longword ltmp; \ - ltmp = (longword) (a) + (longword) (b); \ - ((ulongword) (ltmp - MIN_WORD) > MAX_WORD - MIN_WORD ? \ - (ltmp > 0 ? MAX_WORD : MIN_WORD) : ltmp); \ - }) - -#define GSM_SUB(a, b) ({ \ - register longword ltmp; \ - ltmp = (longword) (a) - (longword) (b); \ - (ltmp >= MAX_WORD ? MAX_WORD : ltmp <= MIN_WORD ? MIN_WORD : ltmp); \ - }) +static inline word GSM_ADD(a, b) +{ + register longword ltmp; + ltmp = (longword) (a) + (longword) (b); + return (word)((ulongword) (ltmp - MIN_WORD) > MAX_WORD - MIN_WORD ? (ltmp > 0 ? MAX_WORD : MIN_WORD) : ltmp); +}; + +static inline word GSM_SUB(a, b) +{ + register longword ltmp; + ltmp = (longword) (a) - (longword) (b); + return (word)(ltmp >= MAX_WORD ? MAX_WORD : ltmp <= MIN_WORD ? MIN_WORD : ltmp); +}; #endif diff --git a/codecs/gsm/libgsm.vcproj b/codecs/gsm/libgsm.vcproj new file mode 100644 index 0000000000000000000000000000000000000000..025c913051643ac69ee7f1d84c76cd979af1b849 --- /dev/null +++ b/codecs/gsm/libgsm.vcproj @@ -0,0 +1,253 @@ +<?xml version="1.0" encoding="Windows-1252"?> +<VisualStudioProject + ProjectType="Visual C++" + Version="8.00" + Name="libgsm" + ProjectGUID="{8FD2E297-4096-47E5-9258-C48FF1841523}" + RootNamespace="libgsm" + Keyword="Win32Proj" + > + <Platforms> + <Platform + Name="Win32" + /> + </Platforms> + <ToolFiles> + </ToolFiles> + <Configurations> + <Configuration + Name="Debug|Win32" + OutputDirectory="$(SolutionDir)$(ConfigurationName)" + IntermediateDirectory="$(ConfigurationName)" + ConfigurationType="4" + CharacterSet="1" + > + <Tool + Name="VCPreBuildEventTool" + /> + <Tool + Name="VCCustomBuildTool" + /> + <Tool + Name="VCXMLDataGeneratorTool" + /> + <Tool + Name="VCWebServiceProxyGeneratorTool" + /> + <Tool + Name="VCMIDLTool" + /> + <Tool + Name="VCCLCompilerTool" + Optimization="0" + AdditionalIncludeDirectories="inc" + PreprocessorDefinitions="WIN32;_DEBUG;_LIB" + MinimalRebuild="true" + BasicRuntimeChecks="3" + RuntimeLibrary="3" + UsePrecompiledHeader="0" + WarningLevel="3" + Detect64BitPortabilityProblems="true" + DebugInformationFormat="4" + /> + <Tool + Name="VCManagedResourceCompilerTool" + /> + <Tool + Name="VCResourceCompilerTool" + /> + <Tool + Name="VCPreLinkEventTool" + /> + <Tool + Name="VCLibrarianTool" + /> + <Tool + Name="VCALinkTool" + /> + <Tool + Name="VCXDCMakeTool" + /> + <Tool + Name="VCBscMakeTool" + /> + <Tool + Name="VCFxCopTool" + /> + <Tool + Name="VCPostBuildEventTool" + /> + </Configuration> + <Configuration + Name="Release|Win32" + OutputDirectory="$(SolutionDir)$(ConfigurationName)" + IntermediateDirectory="$(ConfigurationName)" + ConfigurationType="4" + CharacterSet="1" + WholeProgramOptimization="1" + > + <Tool + Name="VCPreBuildEventTool" + /> + <Tool + Name="VCCustomBuildTool" + /> + <Tool + Name="VCXMLDataGeneratorTool" + /> + <Tool + Name="VCWebServiceProxyGeneratorTool" + /> + <Tool + Name="VCMIDLTool" + /> + <Tool + Name="VCCLCompilerTool" + AdditionalIncludeDirectories="inc" + PreprocessorDefinitions="WIN32;NDEBUG;_LIB" + RuntimeLibrary="2" + UsePrecompiledHeader="0" + WarningLevel="3" + Detect64BitPortabilityProblems="true" + DebugInformationFormat="3" + /> + <Tool + Name="VCManagedResourceCompilerTool" + /> + <Tool + Name="VCResourceCompilerTool" + /> + <Tool + Name="VCPreLinkEventTool" + /> + <Tool + Name="VCLibrarianTool" + /> + <Tool + Name="VCALinkTool" + /> + <Tool + Name="VCXDCMakeTool" + /> + <Tool + Name="VCBscMakeTool" + /> + <Tool + Name="VCFxCopTool" + /> + <Tool + Name="VCPostBuildEventTool" + /> + </Configuration> + </Configurations> + <References> + </References> + <Files> + <Filter + Name="Source Files" + Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx" + UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}" + > + <File + RelativePath=".\src\add.c" + > + </File> + <File + RelativePath=".\src\code.c" + > + </File> + <File + RelativePath=".\src\debug.c" + > + </File> + <File + RelativePath=".\src\decode.c" + > + </File> + <File + RelativePath=".\src\gsm_create.c" + > + </File> + <File + RelativePath=".\src\gsm_decode.c" + > + </File> + <File + RelativePath=".\src\gsm_destroy.c" + > + </File> + <File + RelativePath=".\src\gsm_encode.c" + > + </File> + <File + RelativePath=".\src\gsm_explode.c" + > + </File> + <File + RelativePath=".\src\gsm_implode.c" + > + </File> + <File + RelativePath=".\src\gsm_option.c" + > + </File> + <File + RelativePath=".\src\gsm_print.c" + > + </File> + <File + RelativePath=".\src\long_term.c" + > + </File> + <File + RelativePath=".\src\lpc.c" + > + </File> + <File + RelativePath=".\src\preprocess.c" + > + </File> + <File + RelativePath=".\src\rpe.c" + > + </File> + <File + RelativePath=".\src\short_term.c" + > + </File> + <File + RelativePath=".\src\table.c" + > + </File> + </Filter> + <Filter + Name="Header Files" + Filter="h;hpp;hxx;hm;inl;inc;xsd" + UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}" + > + <File + RelativePath=".\inc\config.h" + > + </File> + <File + RelativePath=".\inc\gsm.h" + > + </File> + <File + RelativePath=".\inc\private.h" + > + </File> + <File + RelativePath=".\inc\proto.h" + > + </File> + <File + RelativePath=".\inc\unproto.h" + > + </File> + </Filter> + </Files> + <Globals> + </Globals> +</VisualStudioProject> diff --git a/codecs/gsm/src/add.c b/codecs/gsm/src/add.c index 21ccfabe7b6fb663e739cd7bc08ba45d92151acd..f23d27f160980e44a46ec8220ea90b15ce04963b 100644 --- a/codecs/gsm/src/add.c +++ b/codecs/gsm/src/add.c @@ -23,19 +23,19 @@ word gsm_add P2((a,b), word a, word b) { longword sum = (longword)a + (longword)b; - return saturate(sum); + return (word)saturate(sum); } word gsm_sub P2((a,b), word a, word b) { longword diff = (longword)a - (longword)b; - return saturate(diff); + return (word)saturate(diff); } word gsm_mult P2((a,b), word a, word b) { if (a == MIN_WORD && b == MIN_WORD) return MAX_WORD; - else return SASR( (longword)a * (longword)b, 15 ); + else return (word)SASR( (longword)a * (longword)b, 15 ); } word gsm_mult_r P2((a,b), word a, word b) @@ -44,7 +44,7 @@ word gsm_mult_r P2((a,b), word a, word b) else { longword prod = (longword)a * (longword)b + 16384; prod >>= 15; - return prod & 0xFFFF; + return (word)(prod & 0xFFFF); } } diff --git a/codecs/gsm/src/code.c b/codecs/gsm/src/code.c index 6358330e5621412b5aa28f22bf7a3e1bbc6aeeb2..4d195dfbd09174ce59c53e0540ae2c7fef0e09c9 100644 --- a/codecs/gsm/src/code.c +++ b/codecs/gsm/src/code.c @@ -62,10 +62,6 @@ void Gsm_Coder P8((S,s,LARc,Nc,bc,Mc,xmaxc,xMc), word so[160]; -#if !(defined(__GNUC__) && defined(__i386__)) - longword ltmp; -#endif - Gsm_Preprocess (S, s, so); Gsm_LPC_Analysis (S, so, LARc); Gsm_Short_Term_Analysis_Filter (S, LARc, so); diff --git a/codecs/gsm/src/decode.c b/codecs/gsm/src/decode.c index 7d56bf96c7c4d593e4253837eef39c79daf4a49b..093ac64df84bbb3304c2f7e6b51c394b7ba1f5a3 100644 --- a/codecs/gsm/src/decode.c +++ b/codecs/gsm/src/decode.c @@ -25,7 +25,7 @@ static void Postprocessing P2((S,s), register word tmp; for (k = 160; k--; s++) { - tmp = GSM_MULT_R( msr, 28180 ); + tmp = (word)GSM_MULT_R( msr, 28180 ); msr = GSM_ADD(*s, tmp); /* Deemphasis */ *s = GSM_ADD(msr, msr) & 0xFFF8; /* Truncation & Upscaling */ } diff --git a/codecs/gsm/src/long_term.c b/codecs/gsm/src/long_term.c index 98f64aa2aa5e968de1422513a2c0aacf376115fd..50594ffd71cd94037623f7519b1b756ce90ecb54 100644 --- a/codecs/gsm/src/long_term.c +++ b/codecs/gsm/src/long_term.c @@ -278,8 +278,8 @@ static void Calculation_of_the_LTP_parameters P4((d,dp,bc_out,Nc_out), temp = gsm_norm( L_power ); - R = SASR( L_max << temp, 16 ); - S = SASR( L_power << temp, 16 ); + R = (word)SASR( L_max << temp, 16 ); + S = (word)SASR( L_power << temp, 16 ); /* Coding of the LTP gain */ @@ -856,7 +856,7 @@ static void Long_term_analysis_filtering P6((bc,Nc,dp,d,dpp,e), # undef STEP # define STEP(BP) \ for (k = 0; k <= 39; k++) { \ - dpp[k] = GSM_MULT_R( BP, dp[k - Nc]); \ + dpp[k] = (word)GSM_MULT_R( BP, dp[k - Nc]); \ e[k] = GSM_SUB( d[k], dpp[k] ); \ } @@ -939,7 +939,7 @@ void Gsm_Long_Term_Synthesis_Filtering P5((S,Ncr,bcr,erp,drp), assert(brp != MIN_WORD); for (k = 0; k <= 39; k++) { - drpp = GSM_MULT_R( brp, drp[ k - Nr ] ); + drpp = (word)GSM_MULT_R( brp, drp[ k - Nr ] ); drp[k] = GSM_ADD( erp[k], drpp ); } diff --git a/codecs/gsm/src/lpc.c b/codecs/gsm/src/lpc.c index a8e9192ba7842af0dc8971da6600b019ff110b7b..49145f86e1ab8d6f32539ba13389ba988c9c6f98 100644 --- a/codecs/gsm/src/lpc.c +++ b/codecs/gsm/src/lpc.c @@ -84,7 +84,7 @@ static void Autocorrelation P2((s, L_ACF), # else # define SCALE(n) \ case n: for (k = 0; k <= 159; k++) \ - s[k] = GSM_MULT_R( s[k], 16384 >> (n-1) );\ + s[k] = (word)GSM_MULT_R( s[k], 16384 >> (n-1) );\ break; # endif /* USE_FLOAT_MUL */ @@ -229,7 +229,7 @@ static void Reflection_coefficients P2( (L_ACF, r), assert(temp >= 0 && temp < 32); /* ? overflow ? */ - for (i = 0; i <= 8; i++) ACF[i] = SASR( L_ACF[i] << temp, 16 ); + for (i = 0; i <= 8; i++) ACF[i] = (word)SASR( L_ACF[i] << temp, 16 ); /* Initialize array P[..] and K[..] for the recursion. */ @@ -257,14 +257,14 @@ static void Reflection_coefficients P2( (L_ACF, r), /* Schur recursion */ - temp = GSM_MULT_R( P[1], *r ); + temp = (word)GSM_MULT_R( P[1], *r ); P[0] = GSM_ADD( P[0], temp ); for (m = 1; m <= 8 - n; m++) { - temp = GSM_MULT_R( K[ m ], *r ); + temp = (word)GSM_MULT_R( K[ m ], *r ); P[m] = GSM_ADD( P[ m+1 ], temp ); - temp = GSM_MULT_R( P[ m+1 ], *r ); + temp = (word)GSM_MULT_R( P[ m+1 ], *r ); K[m] = GSM_ADD( K[ m ], temp ); } } @@ -331,10 +331,10 @@ static void Quantization_and_coding P1((LAR), # undef STEP # define STEP( A, B, MAC, MIC ) \ - temp = GSM_MULT( A, *LAR ); \ + temp = (word)GSM_MULT( A, *LAR ); \ temp = GSM_ADD( temp, B ); \ temp = GSM_ADD( temp, 256 ); \ - temp = SASR( temp, 9 ); \ + temp = (word)SASR( temp, 9 ); \ *LAR = temp>MAC ? MAC - MIC : (temp<MIC ? 0 : temp - MIC); \ LAR++; diff --git a/codecs/gsm/src/preprocess.c b/codecs/gsm/src/preprocess.c index 03746f9c3b7768696af3405a2f4be6443be65b99..bbfe3146ab5d01a689590b3a7cb998b0712fd7d5 100644 --- a/codecs/gsm/src/preprocess.c +++ b/codecs/gsm/src/preprocess.c @@ -95,8 +95,8 @@ void Gsm_Preprocess P3((S, s, so), L_s2 = s1; L_s2 <<= 15; #ifndef __GNUC__ - msp = SASR( L_z2, 15 ); - lsp = L_z2 & 0x7fff; /* gsm_L_sub(L_z2,(msp<<15)); */ + msp = (word)SASR( L_z2, 15 ); + lsp = (word)(L_z2 & 0x7fff); /* gsm_L_sub(L_z2,(msp<<15)); */ L_s2 += GSM_MULT_R( lsp, 32735 ); L_temp = (longword)msp * 32735; /* GSM_L_MULT(msp,32735) >> 1;*/ @@ -119,8 +119,8 @@ void Gsm_Preprocess P3((S, s, so), /* 4.2.3 Preemphasis */ - msp = GSM_MULT_R( mp, -28180 ); - mp = SASR( L_temp, 15 ); + msp = (word)GSM_MULT_R( mp, -28180 ); + mp = (word)SASR( L_temp, 15 ); *so++ = GSM_ADD( mp, msp ); } } diff --git a/codecs/gsm/src/rpe.c b/codecs/gsm/src/rpe.c index 8be0c07723587cd7a9375e8864734217dac92aaa..1c354795d3aa1bbdb2c0b13602f03c0c7d5896ec 100644 --- a/codecs/gsm/src/rpe.c +++ b/codecs/gsm/src/rpe.c @@ -108,7 +108,7 @@ static void Weighting_filter P2((e, x), */ L_result = SASR( L_result, 13 ); - x[k] = ( L_result < MIN_WORD ? MIN_WORD + x[k] = (word)( L_result < MIN_WORD ? MIN_WORD : (L_result > MAX_WORD ? MAX_WORD : L_result )); } } @@ -334,7 +334,7 @@ static void APCM_quantization P5((xM,xMc,mant_out,exp_out,xmaxc_out), assert(temp1 >= 0 && temp1 < 16); temp = xM[i] << temp1; - temp = GSM_MULT( temp, temp2 ); + temp = (word)GSM_MULT( temp, temp2 ); temp = SASR(temp, 12); xMc[i] = temp + 4; /* see note below */ } @@ -378,7 +378,7 @@ static void APCM_inverse_quantization P4((xMc,mant,exp,xMp), assert( temp <= 7 && temp >= -7 ); /* 4 bit signed */ temp <<= 12; /* 16 bit signed */ - temp = GSM_MULT_R( temp1, temp ); + temp = (word)GSM_MULT_R( temp1, temp ); temp = GSM_ADD( temp, temp3 ); *xMp++ = gsm_asr( temp, temp2 ); } diff --git a/codecs/gsm/src/short_term.c b/codecs/gsm/src/short_term.c index c8c0c1b2b1f2cf189cef20c4ee174ef7d35d2e74..43c592c04de3e1c0c775150b65d97a8afdca08d9 100644 --- a/codecs/gsm/src/short_term.c +++ b/codecs/gsm/src/short_term.c @@ -58,7 +58,7 @@ static void Decoding_of_the_coded_Log_Area_Ratios P2((LARc,LARpp), #define STEP( B, MIC, INVA ) \ temp1 = GSM_ADD( *LARc++, MIC ) << 10; \ temp1 = GSM_SUB( temp1, B << 1 ); \ - temp1 = GSM_MULT_R( INVA, temp1 ); \ + temp1 = (word)GSM_MULT_R( INVA, temp1 ); \ *LARpp++ = GSM_ADD( temp1, temp1 ); STEP( 0, -32, 13107 ); @@ -214,7 +214,7 @@ static void Short_term_analysis_filtering P4((u0,rp0,k_n,s), for (rp=rp0, u=u0; u<u_top;) { register longword ui, rpi; ui = *u; - *u++ = u_out; + *u++ = (word)u_out; rpi = *rp++; u_out = ui + (((rpi*di)+0x4000)>>15); di = di + (((rpi*ui)+0x4000)>>15); @@ -226,7 +226,7 @@ static void Short_term_analysis_filtering P4((u0,rp0,k_n,s), if (di>MAX_WORD) di=MAX_WORD; else if (di<MIN_WORD) di=MIN_WORD; } - *s++ = di; + *s++ = (word)di; } } #endif @@ -315,9 +315,9 @@ static void Short_term_synthesis_filtering P5((S,rrp,k,wt,sr), if (tmp1 != (word)tmp1) { tmp1 = (tmp1<0)? MIN_WORD:MAX_WORD; } - v[i+1] = tmp1; + v[i+1] = (word)tmp1; } - *sr++ = v[0] = sri; + *sr++ = v[0] = (word)sri; } } @@ -373,7 +373,7 @@ void Gsm_Short_Term_Analysis_Filter P3((S,LARc,s), word * LARpp_j_1 = S->LARpp[ S->j ^= 1 ]; word LARp[8]; -int i; + #undef FILTER #if defined(FAST) && defined(USE_FLOAT_MUL) # define FILTER (* (S->fast \ diff --git a/codecs/ilbc/libilbc.vcproj b/codecs/ilbc/libilbc.vcproj new file mode 100644 index 0000000000000000000000000000000000000000..b6cfff0a4ae3c0e81684eaea6f15c5676f5e8d0e --- /dev/null +++ b/codecs/ilbc/libilbc.vcproj @@ -0,0 +1,353 @@ +<?xml version="1.0" encoding="Windows-1252"?> +<VisualStudioProject + ProjectType="Visual C++" + Version="8.00" + Name="libilbc" + ProjectGUID="{989BB874-7AF1-44CB-8E5C-CC8113D267E8}" + RootNamespace="libilbc" + Keyword="Win32Proj" + > + <Platforms> + <Platform + Name="Win32" + /> + </Platforms> + <ToolFiles> + </ToolFiles> + <Configurations> + <Configuration + Name="Debug|Win32" + OutputDirectory="$(SolutionDir)$(ConfigurationName)" + IntermediateDirectory="$(ConfigurationName)" + ConfigurationType="4" + CharacterSet="1" + > + <Tool + Name="VCPreBuildEventTool" + /> + <Tool + Name="VCCustomBuildTool" + /> + <Tool + Name="VCXMLDataGeneratorTool" + /> + <Tool + Name="VCWebServiceProxyGeneratorTool" + /> + <Tool + Name="VCMIDLTool" + /> + <Tool + Name="VCCLCompilerTool" + Optimization="0" + PreprocessorDefinitions="WIN32;_DEBUG;_LIB" + MinimalRebuild="true" + BasicRuntimeChecks="3" + RuntimeLibrary="3" + UsePrecompiledHeader="0" + WarningLevel="3" + Detect64BitPortabilityProblems="true" + DebugInformationFormat="4" + /> + <Tool + Name="VCManagedResourceCompilerTool" + /> + <Tool + Name="VCResourceCompilerTool" + /> + <Tool + Name="VCPreLinkEventTool" + /> + <Tool + Name="VCLibrarianTool" + /> + <Tool + Name="VCALinkTool" + /> + <Tool + Name="VCXDCMakeTool" + /> + <Tool + Name="VCBscMakeTool" + /> + <Tool + Name="VCFxCopTool" + /> + <Tool + Name="VCPostBuildEventTool" + /> + </Configuration> + <Configuration + Name="Release|Win32" + OutputDirectory="$(SolutionDir)$(ConfigurationName)" + IntermediateDirectory="$(ConfigurationName)" + ConfigurationType="4" + CharacterSet="1" + WholeProgramOptimization="1" + > + <Tool + Name="VCPreBuildEventTool" + /> + <Tool + Name="VCCustomBuildTool" + /> + <Tool + Name="VCXMLDataGeneratorTool" + /> + <Tool + Name="VCWebServiceProxyGeneratorTool" + /> + <Tool + Name="VCMIDLTool" + /> + <Tool + Name="VCCLCompilerTool" + PreprocessorDefinitions="WIN32;NDEBUG;_LIB" + RuntimeLibrary="2" + UsePrecompiledHeader="0" + WarningLevel="3" + Detect64BitPortabilityProblems="true" + DebugInformationFormat="3" + /> + <Tool + Name="VCManagedResourceCompilerTool" + /> + <Tool + Name="VCResourceCompilerTool" + /> + <Tool + Name="VCPreLinkEventTool" + /> + <Tool + Name="VCLibrarianTool" + /> + <Tool + Name="VCALinkTool" + /> + <Tool + Name="VCXDCMakeTool" + /> + <Tool + Name="VCBscMakeTool" + /> + <Tool + Name="VCFxCopTool" + /> + <Tool + Name="VCPostBuildEventTool" + /> + </Configuration> + </Configurations> + <References> + </References> + <Files> + <Filter + Name="Source Files" + Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx" + UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}" + > + <File + RelativePath=".\anaFilter.c" + > + </File> + <File + RelativePath=".\constants.c" + > + </File> + <File + RelativePath=".\createCB.c" + > + </File> + <File + RelativePath=".\doCPLC.c" + > + </File> + <File + RelativePath=".\enhancer.c" + > + </File> + <File + RelativePath=".\filter.c" + > + </File> + <File + RelativePath=".\FrameClassify.c" + > + </File> + <File + RelativePath=".\gainquant.c" + > + </File> + <File + RelativePath=".\getCBvec.c" + > + </File> + <File + RelativePath=".\helpfun.c" + > + </File> + <File + RelativePath=".\hpInput.c" + > + </File> + <File + RelativePath=".\hpOutput.c" + > + </File> + <File + RelativePath=".\iCBConstruct.c" + > + </File> + <File + RelativePath=".\iCBSearch.c" + > + </File> + <File + RelativePath=".\iLBC_decode.c" + > + </File> + <File + RelativePath=".\iLBC_encode.c" + > + </File> + <File + RelativePath=".\LPCdecode.c" + > + </File> + <File + RelativePath=".\LPCencode.c" + > + </File> + <File + RelativePath=".\lsf.c" + > + </File> + <File + RelativePath=".\packing.c" + > + </File> + <File + RelativePath=".\StateConstructW.c" + > + </File> + <File + RelativePath=".\StateSearchW.c" + > + </File> + <File + RelativePath=".\syntFilter.c" + > + </File> + </Filter> + <Filter + Name="Header Files" + Filter="h;hpp;hxx;hm;inl;inc;xsd" + UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}" + > + <File + RelativePath=".\anaFilter.h" + > + </File> + <File + RelativePath=".\constants.h" + > + </File> + <File + RelativePath=".\createCB.h" + > + </File> + <File + RelativePath=".\doCPLC.h" + > + </File> + <File + RelativePath=".\enhancer.h" + > + </File> + <File + RelativePath=".\filter.h" + > + </File> + <File + RelativePath=".\FrameClassify.h" + > + </File> + <File + RelativePath=".\gainquant.h" + > + </File> + <File + RelativePath=".\getCBvec.h" + > + </File> + <File + RelativePath=".\helpfun.h" + > + </File> + <File + RelativePath=".\hpInput.h" + > + </File> + <File + RelativePath=".\hpOutput.h" + > + </File> + <File + RelativePath=".\iCBConstruct.h" + > + </File> + <File + RelativePath=".\iCBSearch.h" + > + </File> + <File + RelativePath=".\iLBC_decode.h" + > + </File> + <File + RelativePath=".\iLBC_define.h" + > + </File> + <File + RelativePath=".\iLBC_encode.h" + > + </File> + <File + RelativePath=".\LPCdecode.h" + > + </File> + <File + RelativePath=".\LPCencode.h" + > + </File> + <File + RelativePath=".\lsf.h" + > + </File> + <File + RelativePath=".\packing.h" + > + </File> + <File + RelativePath=".\StateConstructW.h" + > + </File> + <File + RelativePath=".\StateSearchW.h" + > + </File> + <File + RelativePath=".\syntFilter.h" + > + </File> + </Filter> + <Filter + Name="Resource Files" + Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav" + UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}" + > + </Filter> + </Files> + <Globals> + </Globals> +</VisualStudioProject> diff --git a/codecs/lpc10/bsynz.c b/codecs/lpc10/bsynz.c index 5971a1a223241ae1043445878c6cc1ff4bd623a3..89e978de67389e6323de826ae21ce23df5db5857 100644 --- a/codecs/lpc10/bsynz.c +++ b/codecs/lpc10/bsynz.c @@ -372,7 +372,7 @@ e */ exc[px] -= pulse; /* Load voiced excitation */ } else { - sscale = sqrt((real) (*ip)) / 6.928f; + sscale = (real)sqrt((real) (*ip)) / 6.928f; i__1 = *ip; for (i__ = 1; i__ <= i__1; ++i__) { exc[contrl_1.order + i__ - 1] = 0.f; @@ -438,7 +438,7 @@ e */ /* Apply gain to match RMS */ r__1 = *rms * *rms; ssq = r__1 * *ip; - gain = sqrt(ssq / xssq); + gain = (real)sqrt(ssq / xssq); i__1 = *ip; for (i__ = 1; i__ <= i__1; ++i__) { sout[i__] = gain * exc2[contrl_1.order + i__ - 1]; diff --git a/codecs/lpc10/decode.c b/codecs/lpc10/decode.c index 8a16616479d44cbf0daf2d8e7c63e2a0b673080c..460c61d761e0f8373fa8341d8610b8009b75cd36 100644 --- a/codecs/lpc10/decode.c +++ b/codecs/lpc10/decode.c @@ -518,7 +518,7 @@ static integer c__2 = 2; drc[(5 - i__) * 3 - 2] = iout; } /* Determine error rate */ - *erate = *erate * .96875f + errcnt * 102; + *erate = (integer)(*erate * .96875f + errcnt * 102); } /* Get unsmoothed RMS, RC's, and PITCH */ *irms = drms[1]; @@ -611,7 +611,7 @@ L900: ishift = 15 - nbit[i__ - 1]; i2 *= pow_ii(&c__2, &ishift); i2 += qb[i__ - 3]; - irc[i__] = i2 * descl[i__ - 3] + deadd[i__ - 3]; + irc[i__] = (integer)(i2 * descl[i__ - 3] + deadd[i__ - 3]); } /* IF (LISTL.GE.3) WRITE(FDEBUG,811) IRMS, (IRC(I),I=1,ORDER) */ /* 811 FORMAT(1X,'<<DECODE OUT>>',T45,I4,1X,10I8) */ diff --git a/codecs/lpc10/encode.c b/codecs/lpc10/encode.c index 109a42264c3a26130872a57e590878841a52f98a..ed48cbf6643d0e63fa798f009c8cc30c7f7c5e94 100644 --- a/codecs/lpc10/encode.c +++ b/codecs/lpc10/encode.c @@ -279,10 +279,10 @@ static integer c__2 = 2; /* Function Body */ /* Scale RMS and RC's to integers */ - *irms = *rms; + *irms = (integer)*rms; i__1 = contrl_1.order; for (i__ = 1; i__ <= i__1; ++i__) { - irc[i__] = rc[i__] * 32768.f; + irc[i__] = (integer)(rc[i__] * 32768.f); } /* IF(LISTL.GE.3)WRITE(FDEBUG,800)VOICE,PITCH,IRMS,(IRC(I),I=1,ORDER) */ /* 800 FORMAT(1X,/,' <<ENCODE IN>>',T32,2I3,I6,I5,T50,10I8) */ @@ -336,8 +336,8 @@ static integer c__2 = 2; i__1 = contrl_1.order; for (i__ = 3; i__ <= i__1; ++i__) { i2 = irc[i__] / 2; - i2 = (i2 + enadd[contrl_1.order + 1 - i__ - 1]) * enscl[ - contrl_1.order + 1 - i__ - 1]; + i2 = (integer)((i2 + enadd[contrl_1.order + 1 - i__ - 1]) * enscl[ + contrl_1.order + 1 - i__ - 1]); /* Computing MIN */ i__2 = max(i2,-127); i2 = min(i__2,127); diff --git a/codecs/lpc10/energy.c b/codecs/lpc10/energy.c index baa6f57ca5d3de9b0e24bdb17af856a7998e260c..fcc93fd00c29fefa3534b923a14c8f2ba0382618 100644 --- a/codecs/lpc10/energy.c +++ b/codecs/lpc10/energy.c @@ -97,7 +97,7 @@ extern int energy_(integer *len, real *speech, real *rms); for (i__ = 1; i__ <= i__1; ++i__) { *rms += speech[i__] * speech[i__]; } - *rms = sqrt(*rms / *len); + *rms = (real)sqrt(*rms / *len); return 0; } /* energy_ */ diff --git a/codecs/lpc10/f2clib.c b/codecs/lpc10/f2clib.c index e72c307c6a1ead7d31259127788d48bfed124892..03717282887f511c5544a0ad421e56a3190f8ab1 100644 --- a/codecs/lpc10/f2clib.c +++ b/codecs/lpc10/f2clib.c @@ -40,7 +40,7 @@ integer pow_ii(integer *ap, integer *bp) if (n == 0 || x == 1) return 1; if (x != -1) - return x == 0 ? 1/x : 0; + return x == 0 ? 0 : 1/x; n = -n; } u = n; @@ -80,6 +80,6 @@ integer i_nint(x) real *x; integer i_nint(real *x) #endif { -return( (*x)>=0 ? - floor(*x + .5) : -floor(.5 - *x) ); +return( (integer)((*x)>=0 ? + floor(*x + .5) : -floor(.5 - *x)) ); } diff --git a/codecs/lpc10/irc2pc.c b/codecs/lpc10/irc2pc.c index 412feb72a60eb5b2a3f194b3cce7b22908400ecf..8150c930d088fec7b2f24c5579b5b664aef5386e 100644 --- a/codecs/lpc10/irc2pc.c +++ b/codecs/lpc10/irc2pc.c @@ -132,7 +132,7 @@ extern int irc2pc_(real *rc, real *pc, integer *order, real *gprime, real *g2pas for (i__ = 1; i__ <= i__1; ++i__) { *g2pass *= 1.f - rc[i__] * rc[i__]; } - *g2pass = *gprime * sqrt(*g2pass); + *g2pass = *gprime * (real)sqrt(*g2pass); pc[1] = rc[1]; i__1 = *order; for (i__ = 2; i__ <= i__1; ++i__) { diff --git a/codecs/lpc10/liblpc10.vcproj b/codecs/lpc10/liblpc10.vcproj new file mode 100644 index 0000000000000000000000000000000000000000..56bb2ea188affa6ffbfaffaf20a982f85d96e39b --- /dev/null +++ b/codecs/lpc10/liblpc10.vcproj @@ -0,0 +1,305 @@ +<?xml version="1.0" encoding="UTF-8"?> +<VisualStudioProject + ProjectType="Visual C++" + Version="8.00" + Name="liblpc10" + ProjectGUID="{FF1D238A-9D59-4850-838E-78182E05736B}" + Keyword="Win32Proj" + > + <Platforms> + <Platform + Name="Win32" + /> + </Platforms> + <ToolFiles> + </ToolFiles> + <Configurations> + <Configuration + Name="Debug|Win32" + OutputDirectory="Debug" + IntermediateDirectory="Debug" + ConfigurationType="4" + > + <Tool + Name="VCPreBuildEventTool" + /> + <Tool + Name="VCCustomBuildTool" + /> + <Tool + Name="VCXMLDataGeneratorTool" + /> + <Tool + Name="VCWebServiceProxyGeneratorTool" + /> + <Tool + Name="VCMIDLTool" + /> + <Tool + Name="VCCLCompilerTool" + Optimization="0" + PreprocessorDefinitions="WIN32;_DEBUG;_LIB;P_R_O_T_O_T_Y_P_E_S" + MinimalRebuild="true" + BasicRuntimeChecks="3" + RuntimeLibrary="3" + UsePrecompiledHeader="0" + WarningLevel="3" + Detect64BitPortabilityProblems="true" + DebugInformationFormat="4" + /> + <Tool + Name="VCManagedResourceCompilerTool" + /> + <Tool + Name="VCResourceCompilerTool" + /> + <Tool + Name="VCPreLinkEventTool" + /> + <Tool + Name="VCLibrarianTool" + /> + <Tool + Name="VCALinkTool" + /> + <Tool + Name="VCXDCMakeTool" + /> + <Tool + Name="VCBscMakeTool" + /> + <Tool + Name="VCFxCopTool" + /> + <Tool + Name="VCPostBuildEventTool" + /> + </Configuration> + <Configuration + Name="Release|Win32" + OutputDirectory="Release" + IntermediateDirectory="Release" + ConfigurationType="4" + > + <Tool + Name="VCPreBuildEventTool" + /> + <Tool + Name="VCCustomBuildTool" + /> + <Tool + Name="VCXMLDataGeneratorTool" + /> + <Tool + Name="VCWebServiceProxyGeneratorTool" + /> + <Tool + Name="VCMIDLTool" + /> + <Tool + Name="VCCLCompilerTool" + PreprocessorDefinitions="WIN32;NDEBUG;_LIB;P_R_O_T_O_T_Y_P_E_S" + RuntimeLibrary="2" + UsePrecompiledHeader="0" + WarningLevel="3" + Detect64BitPortabilityProblems="true" + DebugInformationFormat="3" + /> + <Tool + Name="VCManagedResourceCompilerTool" + /> + <Tool + Name="VCResourceCompilerTool" + /> + <Tool + Name="VCPreLinkEventTool" + /> + <Tool + Name="VCLibrarianTool" + /> + <Tool + Name="VCALinkTool" + /> + <Tool + Name="VCXDCMakeTool" + /> + <Tool + Name="VCBscMakeTool" + /> + <Tool + Name="VCFxCopTool" + /> + <Tool + Name="VCPostBuildEventTool" + /> + </Configuration> + </Configurations> + <References> + </References> + <Files> + <Filter + Name="Header Files" + Filter="h;hpp;hxx;hm;inl;inc;xsd" + UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}" + > + <File + RelativePath=".\f2c.h" + > + </File> + <File + RelativePath=".\lpc10.h" + > + </File> + </Filter> + <Filter + Name="Resource Files" + Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx" + UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}" + > + </Filter> + <Filter + Name="Source Files" + Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx" + UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}" + > + <File + RelativePath=".\analys.c" + > + </File> + <File + RelativePath=".\bsynz.c" + > + </File> + <File + RelativePath=".\chanwr.c" + > + </File> + <File + RelativePath=".\dcbias.c" + > + </File> + <File + RelativePath=".\decode.c" + > + </File> + <File + RelativePath=".\deemp.c" + > + </File> + <File + RelativePath=".\difmag.c" + > + </File> + <File + RelativePath=".\dyptrk.c" + > + </File> + <File + RelativePath=".\encode.c" + > + </File> + <File + RelativePath=".\energy.c" + > + </File> + <File + RelativePath=".\f2clib.c" + > + </File> + <File + RelativePath=".\ham84.c" + > + </File> + <File + RelativePath=".\hp100.c" + > + </File> + <File + RelativePath=".\invert.c" + > + </File> + <File + RelativePath=".\irc2pc.c" + > + </File> + <File + RelativePath=".\ivfilt.c" + > + </File> + <File + RelativePath=".\lpcdec.c" + > + </File> + <File + RelativePath=".\lpcenc.c" + > + </File> + <File + RelativePath=".\lpcini.c" + > + </File> + <File + RelativePath=".\lpfilt.c" + > + </File> + <File + RelativePath=".\median.c" + > + </File> + <File + RelativePath=".\mload.c" + > + </File> + <File + RelativePath=".\onset.c" + > + </File> + <File + RelativePath=".\pitsyn.c" + > + </File> + <File + RelativePath=".\placea.c" + > + </File> + <File + RelativePath=".\placev.c" + > + </File> + <File + RelativePath=".\preemp.c" + > + </File> + <File + RelativePath=".\prepro.c" + > + </File> + <File + RelativePath=".\random.c" + > + </File> + <File + RelativePath=".\rcchk.c" + > + </File> + <File + RelativePath=".\synths.c" + > + </File> + <File + RelativePath=".\tbdm.c" + > + </File> + <File + RelativePath=".\voicin.c" + > + </File> + <File + RelativePath=".\vparms.c" + > + </File> + </Filter> + </Files> + <Globals> + </Globals> +</VisualStudioProject> diff --git a/codecs/lpc10/lpc10.h b/codecs/lpc10/lpc10.h index 99c64c624bcec2cd2ad04a9af82ac2ccdff41368..db7c25ad9156e5be073eb509126fd0175c8222a9 100644 --- a/codecs/lpc10/lpc10.h +++ b/codecs/lpc10/lpc10.h @@ -46,18 +46,24 @@ Add broken lpc10 code... It's not too far from working I don't think... #if defined(unix) || defined(__unix__) || defined(__NetBSD__) typedef short INT16; -typedef int INT32; +typedef int INT32; #endif #if defined(__MSDOS__) || defined(MSDOS) -typedef int INT16; +typedef int INT16; typedef long INT32; #endif #if defined(__APPLE__) typedef short INT16; -typedef int INT32; +typedef int INT32; +#endif + +#if defined(WIN32) && defined(_MSC_VER) +typedef __int16 INT16; +typedef __int32 INT32; +#pragma warning(disable: 4005) #endif diff --git a/codecs/lpc10/onset.c b/codecs/lpc10/onset.c index b8037a84d85e89af00b4b37ed600979c8b6ac466..8cb82f82267cf4f403618465c59f32740b9e6dd8 100644 --- a/codecs/lpc10/onset.c +++ b/codecs/lpc10/onset.c @@ -272,7 +272,7 @@ static real c_b2 = 1.f; *d__ = (r__1 * r__1 + (*d__) * 63.f) / 64.f; if ((*d__) != 0.f) { if (abs(*n) > (*d__)) { - *fpc = r_sign(&c_b2, n); + *fpc = (real)r_sign(&c_b2, n); } else { *fpc = (*n) / (*d__); } diff --git a/codecs/lpc10/pitsyn.c b/codecs/lpc10/pitsyn.c index 3152ce44b86ff06a018b533ad01e7396978df0b5..2d9c161b9a637e6ad08f5c492a107cd10101f1b4 100644 --- a/codecs/lpc10/pitsyn.c +++ b/codecs/lpc10/pitsyn.c @@ -465,9 +465,9 @@ after */ i__1 = lsamp; for (i__ = istart; i__ <= i__1; ++i__) { r__1 = *ipito + slope * i__; - ip = r__1 + .5f; + ip = (integer)(r__1 + .5f); if (uvpit != 0.f) { - ip = uvpit; + ip = (integer)uvpit; } if (ip <= i__ - jused) { ++(*nout); @@ -487,14 +487,14 @@ over 16. */ prop = (jused - ip / 2) / (real) lsamp; i__2 = *order; for (j = 1; j <= i__2; ++j) { - alro = log((rco[j - 1] + 1) / (1 - rco[j - 1])); - alrn = log((rc[j] + 1) / (1 - rc[j])); + alro = (real)log((rco[j - 1] + 1) / (1 - rco[j - 1])); + alrn = (real)log((rc[j] + 1) / (1 - rc[j])); xxy = alro + prop * (alrn - alro); - xxy = exp(xxy); + xxy = (real)exp(xxy); rci[j + *nout * rci_dim1] = (xxy - 1) / (xxy + 1); } - rmsi[*nout] = log(*rmso) + prop * (log(*rms) - log(*rmso)); - rmsi[*nout] = exp(rmsi[*nout]); + rmsi[*nout] = (real)(log(*rmso) + prop * (log(*rms) - log(*rmso))); + rmsi[*nout] = (real)exp(rmsi[*nout]); } } if (vflag != 1) { diff --git a/codecs/lpc10/tbdm.c b/codecs/lpc10/tbdm.c index 2ed6e34cfc512aa86d0c6908dc1cd5ce514bb7a1..3e206de34be8f0a837a8c75b5acc81f72d8af28f 100644 --- a/codecs/lpc10/tbdm.c +++ b/codecs/lpc10/tbdm.c @@ -121,7 +121,7 @@ extern int tbdm_(real *speech, integer *lpita, integer *tau, integer *ltau, real difmag_(&speech[1], lpita, &tau[1], ltau, &tau[*ltau], &amdf[1], minptr, maxptr); *mintau = tau[*minptr]; - minamd = amdf[*minptr]; + minamd = (integer)amdf[*minptr]; /* Build table containing all lags within +/- 3 of the AMDF minimum */ /* excluding all that have already been computed */ ltau2 = 0; @@ -147,7 +147,7 @@ extern int tbdm_(real *speech, integer *lpita, integer *tau, integer *ltau, real maxp2); if (amdf2[minp2 - 1] < (real) minamd) { *mintau = tau2[minp2 - 1]; - minamd = amdf2[minp2 - 1]; + minamd = (integer)amdf2[minp2 - 1]; } } /* Check one octave up, if there are any lags not yet computed */ @@ -165,7 +165,7 @@ extern int tbdm_(real *speech, integer *lpita, integer *tau, integer *ltau, real maxp2); if (amdf2[minp2 - 1] < (real) minamd) { *mintau = tau2[minp2 - 1]; - minamd = amdf2[minp2 - 1]; + minamd = (integer)amdf2[minp2 - 1]; *minptr += -20; } } diff --git a/codecs/lpc10/voicin.c b/codecs/lpc10/voicin.c index 45bb5d0d36b3d9472d5df2eb333800041870b1be..02e4d409c098da03af756cf2766a2c431a0c7314 100644 --- a/codecs/lpc10/voicin.c +++ b/codecs/lpc10/voicin.c @@ -778,7 +778,7 @@ d*/ /* NOTE: The divisor is a function of REF, the expected energies. */ /* Computing MIN */ /* Computing MAX */ - r__2 = sqrt((real) (*lbue * *lbve)) * 64 / 3000; + r__2 = (real)(sqrt((real) (*lbue * *lbve)) * 64 / 3000); r__1 = max(r__2,1.f); *dither = min(r__1,20.f); /* Voicing decisions are returned in VOIBUF. */ diff --git a/codecs/lpc10/vparms.c b/codecs/lpc10/vparms.c index b9e60293024577d93d80cdb33a7558e3da5ef696..fe80f876779dcd9e9c4a34e1973b5faec07fa577 100644 --- a/codecs/lpc10/vparms.c +++ b/codecs/lpc10/vparms.c @@ -194,7 +194,7 @@ static real c_b2 = 1.f; /* is undefined. */ r__1 = inbuf[start - 1] - *dither; - oldsgn = r_sign(&c_b2, &r__1); + oldsgn = (real)r_sign(&c_b2, &r__1); i__1 = stop; for (i__ = start; i__ <= i__1; ++i__) { lp_rms__ += (r__1 = lpbuf[i__], abs(r__1));