Lots of little fixes for doing MSVC compiling codecs in windows (#6022)
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@9450 f38db490-d61c-443f-a65b-d21fe96a405b
This commit is contained in:
parent
864716935a
commit
00dd1704f1
|
@ -136,6 +136,11 @@ static __inline__ short GSM_SUB(short a, short b)
|
||||||
|
|
||||||
#else
|
#else
|
||||||
|
|
||||||
|
#ifdef WIN32
|
||||||
|
#define inline __inline
|
||||||
|
#define __inline__ __inline
|
||||||
|
#endif
|
||||||
|
|
||||||
# define GSM_L_ADD(a, b) \
|
# define GSM_L_ADD(a, b) \
|
||||||
( (a) < 0 ? ( (b) >= 0 ? (a) + (b) \
|
( (a) < 0 ? ( (b) >= 0 ? (a) + (b) \
|
||||||
: (utmp = (ulongword)-((a) + 1) + (ulongword)-((b) + 1)) \
|
: (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 \
|
: (utmp = (ulongword)(a) + (ulongword)(b)) >= MAX_LONGWORD \
|
||||||
? MAX_LONGWORD : utmp))
|
? MAX_LONGWORD : utmp))
|
||||||
|
|
||||||
/*
|
static inline word GSM_ADD(a, b)
|
||||||
* # define GSM_ADD(a, b) \
|
{
|
||||||
* ((ltmp = (longword)(a) + (longword)(b)) >= MAX_WORD \
|
register longword ltmp;
|
||||||
* ? MAX_WORD : ltmp <= MIN_WORD ? MIN_WORD : ltmp)
|
ltmp = (longword) (a) + (longword) (b);
|
||||||
*/
|
return (word)((ulongword) (ltmp - MIN_WORD) > MAX_WORD - MIN_WORD ? (ltmp > 0 ? MAX_WORD : MIN_WORD) : ltmp);
|
||||||
/* Nonportable, but faster: */
|
};
|
||||||
|
|
||||||
# define GSM_ADD(a, b) ({ \
|
static inline word GSM_SUB(a, b)
|
||||||
register longword ltmp; \
|
{
|
||||||
ltmp = (longword) (a) + (longword) (b); \
|
register longword ltmp;
|
||||||
((ulongword) (ltmp - MIN_WORD) > MAX_WORD - MIN_WORD ? \
|
ltmp = (longword) (a) - (longword) (b);
|
||||||
(ltmp > 0 ? MAX_WORD : MIN_WORD) : ltmp); \
|
return (word)(ltmp >= MAX_WORD ? MAX_WORD : ltmp <= MIN_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); \
|
|
||||||
})
|
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
|
@ -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>
|
|
@ -23,19 +23,19 @@
|
||||||
word gsm_add P2((a,b), word a, word b)
|
word gsm_add P2((a,b), word a, word b)
|
||||||
{
|
{
|
||||||
longword sum = (longword)a + (longword)b;
|
longword sum = (longword)a + (longword)b;
|
||||||
return saturate(sum);
|
return (word)saturate(sum);
|
||||||
}
|
}
|
||||||
|
|
||||||
word gsm_sub P2((a,b), word a, word b)
|
word gsm_sub P2((a,b), word a, word b)
|
||||||
{
|
{
|
||||||
longword diff = (longword)a - (longword)b;
|
longword diff = (longword)a - (longword)b;
|
||||||
return saturate(diff);
|
return (word)saturate(diff);
|
||||||
}
|
}
|
||||||
|
|
||||||
word gsm_mult P2((a,b), word a, word b)
|
word gsm_mult P2((a,b), word a, word b)
|
||||||
{
|
{
|
||||||
if (a == MIN_WORD && b == MIN_WORD) return MAX_WORD;
|
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)
|
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 {
|
else {
|
||||||
longword prod = (longword)a * (longword)b + 16384;
|
longword prod = (longword)a * (longword)b + 16384;
|
||||||
prod >>= 15;
|
prod >>= 15;
|
||||||
return prod & 0xFFFF;
|
return (word)(prod & 0xFFFF);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -62,10 +62,6 @@ void Gsm_Coder P8((S,s,LARc,Nc,bc,Mc,xmaxc,xMc),
|
||||||
|
|
||||||
word so[160];
|
word so[160];
|
||||||
|
|
||||||
#if !(defined(__GNUC__) && defined(__i386__))
|
|
||||||
longword ltmp;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
Gsm_Preprocess (S, s, so);
|
Gsm_Preprocess (S, s, so);
|
||||||
Gsm_LPC_Analysis (S, so, LARc);
|
Gsm_LPC_Analysis (S, so, LARc);
|
||||||
Gsm_Short_Term_Analysis_Filter (S, LARc, so);
|
Gsm_Short_Term_Analysis_Filter (S, LARc, so);
|
||||||
|
|
|
@ -25,7 +25,7 @@ static void Postprocessing P2((S,s),
|
||||||
register word tmp;
|
register word tmp;
|
||||||
|
|
||||||
for (k = 160; k--; s++) {
|
for (k = 160; k--; s++) {
|
||||||
tmp = GSM_MULT_R( msr, 28180 );
|
tmp = (word)GSM_MULT_R( msr, 28180 );
|
||||||
msr = GSM_ADD(*s, tmp); /* Deemphasis */
|
msr = GSM_ADD(*s, tmp); /* Deemphasis */
|
||||||
*s = GSM_ADD(msr, msr) & 0xFFF8; /* Truncation & Upscaling */
|
*s = GSM_ADD(msr, msr) & 0xFFF8; /* Truncation & Upscaling */
|
||||||
}
|
}
|
||||||
|
|
|
@ -278,8 +278,8 @@ static void Calculation_of_the_LTP_parameters P4((d,dp,bc_out,Nc_out),
|
||||||
|
|
||||||
temp = gsm_norm( L_power );
|
temp = gsm_norm( L_power );
|
||||||
|
|
||||||
R = SASR( L_max << temp, 16 );
|
R = (word)SASR( L_max << temp, 16 );
|
||||||
S = SASR( L_power << temp, 16 );
|
S = (word)SASR( L_power << temp, 16 );
|
||||||
|
|
||||||
/* Coding of the LTP gain
|
/* Coding of the LTP gain
|
||||||
*/
|
*/
|
||||||
|
@ -856,7 +856,7 @@ static void Long_term_analysis_filtering P6((bc,Nc,dp,d,dpp,e),
|
||||||
# undef STEP
|
# undef STEP
|
||||||
# define STEP(BP) \
|
# define STEP(BP) \
|
||||||
for (k = 0; k <= 39; k++) { \
|
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] ); \
|
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);
|
assert(brp != MIN_WORD);
|
||||||
|
|
||||||
for (k = 0; k <= 39; k++) {
|
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 );
|
drp[k] = GSM_ADD( erp[k], drpp );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -84,7 +84,7 @@ static void Autocorrelation P2((s, L_ACF),
|
||||||
# else
|
# else
|
||||||
# define SCALE(n) \
|
# define SCALE(n) \
|
||||||
case n: for (k = 0; k <= 159; k++) \
|
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;
|
break;
|
||||||
# endif /* USE_FLOAT_MUL */
|
# endif /* USE_FLOAT_MUL */
|
||||||
|
|
||||||
|
@ -229,7 +229,7 @@ static void Reflection_coefficients P2( (L_ACF, r),
|
||||||
assert(temp >= 0 && temp < 32);
|
assert(temp >= 0 && temp < 32);
|
||||||
|
|
||||||
/* ? overflow ? */
|
/* ? 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.
|
/* Initialize array P[..] and K[..] for the recursion.
|
||||||
*/
|
*/
|
||||||
|
@ -257,14 +257,14 @@ static void Reflection_coefficients P2( (L_ACF, r),
|
||||||
|
|
||||||
/* Schur recursion
|
/* Schur recursion
|
||||||
*/
|
*/
|
||||||
temp = GSM_MULT_R( P[1], *r );
|
temp = (word)GSM_MULT_R( P[1], *r );
|
||||||
P[0] = GSM_ADD( P[0], temp );
|
P[0] = GSM_ADD( P[0], temp );
|
||||||
|
|
||||||
for (m = 1; m <= 8 - n; m++) {
|
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 );
|
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 );
|
K[m] = GSM_ADD( K[ m ], temp );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -331,10 +331,10 @@ static void Quantization_and_coding P1((LAR),
|
||||||
|
|
||||||
# undef STEP
|
# undef STEP
|
||||||
# define STEP( A, B, MAC, MIC ) \
|
# 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, B ); \
|
||||||
temp = GSM_ADD( temp, 256 ); \
|
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 = temp>MAC ? MAC - MIC : (temp<MIC ? 0 : temp - MIC); \
|
||||||
LAR++;
|
LAR++;
|
||||||
|
|
||||||
|
|
|
@ -95,8 +95,8 @@ void Gsm_Preprocess P3((S, s, so),
|
||||||
L_s2 = s1;
|
L_s2 = s1;
|
||||||
L_s2 <<= 15;
|
L_s2 <<= 15;
|
||||||
#ifndef __GNUC__
|
#ifndef __GNUC__
|
||||||
msp = SASR( L_z2, 15 );
|
msp = (word)SASR( L_z2, 15 );
|
||||||
lsp = L_z2 & 0x7fff; /* gsm_L_sub(L_z2,(msp<<15)); */
|
lsp = (word)(L_z2 & 0x7fff); /* gsm_L_sub(L_z2,(msp<<15)); */
|
||||||
|
|
||||||
L_s2 += GSM_MULT_R( lsp, 32735 );
|
L_s2 += GSM_MULT_R( lsp, 32735 );
|
||||||
L_temp = (longword)msp * 32735; /* GSM_L_MULT(msp,32735) >> 1;*/
|
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
|
/* 4.2.3 Preemphasis
|
||||||
*/
|
*/
|
||||||
|
|
||||||
msp = GSM_MULT_R( mp, -28180 );
|
msp = (word)GSM_MULT_R( mp, -28180 );
|
||||||
mp = SASR( L_temp, 15 );
|
mp = (word)SASR( L_temp, 15 );
|
||||||
*so++ = GSM_ADD( mp, msp );
|
*so++ = GSM_ADD( mp, msp );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -108,7 +108,7 @@ static void Weighting_filter P2((e, x),
|
||||||
*/
|
*/
|
||||||
|
|
||||||
L_result = SASR( L_result, 13 );
|
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 ));
|
: (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);
|
assert(temp1 >= 0 && temp1 < 16);
|
||||||
|
|
||||||
temp = xM[i] << temp1;
|
temp = xM[i] << temp1;
|
||||||
temp = GSM_MULT( temp, temp2 );
|
temp = (word)GSM_MULT( temp, temp2 );
|
||||||
temp = SASR(temp, 12);
|
temp = SASR(temp, 12);
|
||||||
xMc[i] = temp + 4; /* see note below */
|
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 */
|
assert( temp <= 7 && temp >= -7 ); /* 4 bit signed */
|
||||||
|
|
||||||
temp <<= 12; /* 16 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 );
|
temp = GSM_ADD( temp, temp3 );
|
||||||
*xMp++ = gsm_asr( temp, temp2 );
|
*xMp++ = gsm_asr( temp, temp2 );
|
||||||
}
|
}
|
||||||
|
|
|
@ -58,7 +58,7 @@ static void Decoding_of_the_coded_Log_Area_Ratios P2((LARc,LARpp),
|
||||||
#define STEP( B, MIC, INVA ) \
|
#define STEP( B, MIC, INVA ) \
|
||||||
temp1 = GSM_ADD( *LARc++, MIC ) << 10; \
|
temp1 = GSM_ADD( *LARc++, MIC ) << 10; \
|
||||||
temp1 = GSM_SUB( temp1, B << 1 ); \
|
temp1 = GSM_SUB( temp1, B << 1 ); \
|
||||||
temp1 = GSM_MULT_R( INVA, temp1 ); \
|
temp1 = (word)GSM_MULT_R( INVA, temp1 ); \
|
||||||
*LARpp++ = GSM_ADD( temp1, temp1 );
|
*LARpp++ = GSM_ADD( temp1, temp1 );
|
||||||
|
|
||||||
STEP( 0, -32, 13107 );
|
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;) {
|
for (rp=rp0, u=u0; u<u_top;) {
|
||||||
register longword ui, rpi;
|
register longword ui, rpi;
|
||||||
ui = *u;
|
ui = *u;
|
||||||
*u++ = u_out;
|
*u++ = (word)u_out;
|
||||||
rpi = *rp++;
|
rpi = *rp++;
|
||||||
u_out = ui + (((rpi*di)+0x4000)>>15);
|
u_out = ui + (((rpi*di)+0x4000)>>15);
|
||||||
di = di + (((rpi*ui)+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;
|
if (di>MAX_WORD) di=MAX_WORD;
|
||||||
else if (di<MIN_WORD) di=MIN_WORD;
|
else if (di<MIN_WORD) di=MIN_WORD;
|
||||||
}
|
}
|
||||||
*s++ = di;
|
*s++ = (word)di;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
@ -315,9 +315,9 @@ static void Short_term_synthesis_filtering P5((S,rrp,k,wt,sr),
|
||||||
if (tmp1 != (word)tmp1) {
|
if (tmp1 != (word)tmp1) {
|
||||||
tmp1 = (tmp1<0)? MIN_WORD:MAX_WORD;
|
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 * LARpp_j_1 = S->LARpp[ S->j ^= 1 ];
|
||||||
|
|
||||||
word LARp[8];
|
word LARp[8];
|
||||||
int i;
|
|
||||||
#undef FILTER
|
#undef FILTER
|
||||||
#if defined(FAST) && defined(USE_FLOAT_MUL)
|
#if defined(FAST) && defined(USE_FLOAT_MUL)
|
||||||
# define FILTER (* (S->fast \
|
# define FILTER (* (S->fast \
|
||||||
|
|
|
@ -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>
|
|
@ -372,7 +372,7 @@ e */
|
||||||
exc[px] -= pulse;
|
exc[px] -= pulse;
|
||||||
/* Load voiced excitation */
|
/* Load voiced excitation */
|
||||||
} else {
|
} else {
|
||||||
sscale = sqrt((real) (*ip)) / 6.928f;
|
sscale = (real)sqrt((real) (*ip)) / 6.928f;
|
||||||
i__1 = *ip;
|
i__1 = *ip;
|
||||||
for (i__ = 1; i__ <= i__1; ++i__) {
|
for (i__ = 1; i__ <= i__1; ++i__) {
|
||||||
exc[contrl_1.order + i__ - 1] = 0.f;
|
exc[contrl_1.order + i__ - 1] = 0.f;
|
||||||
|
@ -438,7 +438,7 @@ e */
|
||||||
/* Apply gain to match RMS */
|
/* Apply gain to match RMS */
|
||||||
r__1 = *rms * *rms;
|
r__1 = *rms * *rms;
|
||||||
ssq = r__1 * *ip;
|
ssq = r__1 * *ip;
|
||||||
gain = sqrt(ssq / xssq);
|
gain = (real)sqrt(ssq / xssq);
|
||||||
i__1 = *ip;
|
i__1 = *ip;
|
||||||
for (i__ = 1; i__ <= i__1; ++i__) {
|
for (i__ = 1; i__ <= i__1; ++i__) {
|
||||||
sout[i__] = gain * exc2[contrl_1.order + i__ - 1];
|
sout[i__] = gain * exc2[contrl_1.order + i__ - 1];
|
||||||
|
|
|
@ -518,7 +518,7 @@ static integer c__2 = 2;
|
||||||
drc[(5 - i__) * 3 - 2] = iout;
|
drc[(5 - i__) * 3 - 2] = iout;
|
||||||
}
|
}
|
||||||
/* Determine error rate */
|
/* Determine error rate */
|
||||||
*erate = *erate * .96875f + errcnt * 102;
|
*erate = (integer)(*erate * .96875f + errcnt * 102);
|
||||||
}
|
}
|
||||||
/* Get unsmoothed RMS, RC's, and PITCH */
|
/* Get unsmoothed RMS, RC's, and PITCH */
|
||||||
*irms = drms[1];
|
*irms = drms[1];
|
||||||
|
@ -611,7 +611,7 @@ L900:
|
||||||
ishift = 15 - nbit[i__ - 1];
|
ishift = 15 - nbit[i__ - 1];
|
||||||
i2 *= pow_ii(&c__2, &ishift);
|
i2 *= pow_ii(&c__2, &ishift);
|
||||||
i2 += qb[i__ - 3];
|
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) */
|
/* IF (LISTL.GE.3) WRITE(FDEBUG,811) IRMS, (IRC(I),I=1,ORDER) */
|
||||||
/* 811 FORMAT(1X,'<<DECODE OUT>>',T45,I4,1X,10I8) */
|
/* 811 FORMAT(1X,'<<DECODE OUT>>',T45,I4,1X,10I8) */
|
||||||
|
|
|
@ -279,10 +279,10 @@ static integer c__2 = 2;
|
||||||
|
|
||||||
/* Function Body */
|
/* Function Body */
|
||||||
/* Scale RMS and RC's to integers */
|
/* Scale RMS and RC's to integers */
|
||||||
*irms = *rms;
|
*irms = (integer)*rms;
|
||||||
i__1 = contrl_1.order;
|
i__1 = contrl_1.order;
|
||||||
for (i__ = 1; i__ <= i__1; ++i__) {
|
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) */
|
/* 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) */
|
/* 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;
|
i__1 = contrl_1.order;
|
||||||
for (i__ = 3; i__ <= i__1; ++i__) {
|
for (i__ = 3; i__ <= i__1; ++i__) {
|
||||||
i2 = irc[i__] / 2;
|
i2 = irc[i__] / 2;
|
||||||
i2 = (i2 + enadd[contrl_1.order + 1 - i__ - 1]) * enscl[
|
i2 = (integer)((i2 + enadd[contrl_1.order + 1 - i__ - 1]) * enscl[
|
||||||
contrl_1.order + 1 - i__ - 1];
|
contrl_1.order + 1 - i__ - 1]);
|
||||||
/* Computing MIN */
|
/* Computing MIN */
|
||||||
i__2 = max(i2,-127);
|
i__2 = max(i2,-127);
|
||||||
i2 = min(i__2,127);
|
i2 = min(i__2,127);
|
||||||
|
|
|
@ -97,7 +97,7 @@ extern int energy_(integer *len, real *speech, real *rms);
|
||||||
for (i__ = 1; i__ <= i__1; ++i__) {
|
for (i__ = 1; i__ <= i__1; ++i__) {
|
||||||
*rms += speech[i__] * speech[i__];
|
*rms += speech[i__] * speech[i__];
|
||||||
}
|
}
|
||||||
*rms = sqrt(*rms / *len);
|
*rms = (real)sqrt(*rms / *len);
|
||||||
return 0;
|
return 0;
|
||||||
} /* energy_ */
|
} /* energy_ */
|
||||||
|
|
||||||
|
|
|
@ -40,7 +40,7 @@ integer pow_ii(integer *ap, integer *bp)
|
||||||
if (n == 0 || x == 1)
|
if (n == 0 || x == 1)
|
||||||
return 1;
|
return 1;
|
||||||
if (x != -1)
|
if (x != -1)
|
||||||
return x == 0 ? 1/x : 0;
|
return x == 0 ? 0 : 1/x;
|
||||||
n = -n;
|
n = -n;
|
||||||
}
|
}
|
||||||
u = n;
|
u = n;
|
||||||
|
@ -80,6 +80,6 @@ integer i_nint(x) real *x;
|
||||||
integer i_nint(real *x)
|
integer i_nint(real *x)
|
||||||
#endif
|
#endif
|
||||||
{
|
{
|
||||||
return( (*x)>=0 ?
|
return( (integer)((*x)>=0 ?
|
||||||
floor(*x + .5) : -floor(.5 - *x) );
|
floor(*x + .5) : -floor(.5 - *x)) );
|
||||||
}
|
}
|
||||||
|
|
|
@ -132,7 +132,7 @@ extern int irc2pc_(real *rc, real *pc, integer *order, real *gprime, real *g2pas
|
||||||
for (i__ = 1; i__ <= i__1; ++i__) {
|
for (i__ = 1; i__ <= i__1; ++i__) {
|
||||||
*g2pass *= 1.f - rc[i__] * rc[i__];
|
*g2pass *= 1.f - rc[i__] * rc[i__];
|
||||||
}
|
}
|
||||||
*g2pass = *gprime * sqrt(*g2pass);
|
*g2pass = *gprime * (real)sqrt(*g2pass);
|
||||||
pc[1] = rc[1];
|
pc[1] = rc[1];
|
||||||
i__1 = *order;
|
i__1 = *order;
|
||||||
for (i__ = 2; i__ <= i__1; ++i__) {
|
for (i__ = 2; i__ <= i__1; ++i__) {
|
||||||
|
|
|
@ -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>
|
|
@ -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__)
|
#if defined(unix) || defined(__unix__) || defined(__NetBSD__)
|
||||||
typedef short INT16;
|
typedef short INT16;
|
||||||
typedef int INT32;
|
typedef int INT32;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
#if defined(__MSDOS__) || defined(MSDOS)
|
#if defined(__MSDOS__) || defined(MSDOS)
|
||||||
typedef int INT16;
|
typedef int INT16;
|
||||||
typedef long INT32;
|
typedef long INT32;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(__APPLE__)
|
#if defined(__APPLE__)
|
||||||
typedef short INT16;
|
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
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -272,7 +272,7 @@ static real c_b2 = 1.f;
|
||||||
*d__ = (r__1 * r__1 + (*d__) * 63.f) / 64.f;
|
*d__ = (r__1 * r__1 + (*d__) * 63.f) / 64.f;
|
||||||
if ((*d__) != 0.f) {
|
if ((*d__) != 0.f) {
|
||||||
if (abs(*n) > (*d__)) {
|
if (abs(*n) > (*d__)) {
|
||||||
*fpc = r_sign(&c_b2, n);
|
*fpc = (real)r_sign(&c_b2, n);
|
||||||
} else {
|
} else {
|
||||||
*fpc = (*n) / (*d__);
|
*fpc = (*n) / (*d__);
|
||||||
}
|
}
|
||||||
|
|
|
@ -465,9 +465,9 @@ after */
|
||||||
i__1 = lsamp;
|
i__1 = lsamp;
|
||||||
for (i__ = istart; i__ <= i__1; ++i__) {
|
for (i__ = istart; i__ <= i__1; ++i__) {
|
||||||
r__1 = *ipito + slope * i__;
|
r__1 = *ipito + slope * i__;
|
||||||
ip = r__1 + .5f;
|
ip = (integer)(r__1 + .5f);
|
||||||
if (uvpit != 0.f) {
|
if (uvpit != 0.f) {
|
||||||
ip = uvpit;
|
ip = (integer)uvpit;
|
||||||
}
|
}
|
||||||
if (ip <= i__ - jused) {
|
if (ip <= i__ - jused) {
|
||||||
++(*nout);
|
++(*nout);
|
||||||
|
@ -487,14 +487,14 @@ over 16. */
|
||||||
prop = (jused - ip / 2) / (real) lsamp;
|
prop = (jused - ip / 2) / (real) lsamp;
|
||||||
i__2 = *order;
|
i__2 = *order;
|
||||||
for (j = 1; j <= i__2; ++j) {
|
for (j = 1; j <= i__2; ++j) {
|
||||||
alro = log((rco[j - 1] + 1) / (1 - rco[j - 1]));
|
alro = (real)log((rco[j - 1] + 1) / (1 - rco[j - 1]));
|
||||||
alrn = log((rc[j] + 1) / (1 - rc[j]));
|
alrn = (real)log((rc[j] + 1) / (1 - rc[j]));
|
||||||
xxy = alro + prop * (alrn - alro);
|
xxy = alro + prop * (alrn - alro);
|
||||||
xxy = exp(xxy);
|
xxy = (real)exp(xxy);
|
||||||
rci[j + *nout * rci_dim1] = (xxy - 1) / (xxy + 1);
|
rci[j + *nout * rci_dim1] = (xxy - 1) / (xxy + 1);
|
||||||
}
|
}
|
||||||
rmsi[*nout] = log(*rmso) + prop * (log(*rms) - log(*rmso));
|
rmsi[*nout] = (real)(log(*rmso) + prop * (log(*rms) - log(*rmso)));
|
||||||
rmsi[*nout] = exp(rmsi[*nout]);
|
rmsi[*nout] = (real)exp(rmsi[*nout]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (vflag != 1) {
|
if (vflag != 1) {
|
||||||
|
|
|
@ -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,
|
difmag_(&speech[1], lpita, &tau[1], ltau, &tau[*ltau], &amdf[1], minptr,
|
||||||
maxptr);
|
maxptr);
|
||||||
*mintau = tau[*minptr];
|
*mintau = tau[*minptr];
|
||||||
minamd = amdf[*minptr];
|
minamd = (integer)amdf[*minptr];
|
||||||
/* Build table containing all lags within +/- 3 of the AMDF minimum */
|
/* Build table containing all lags within +/- 3 of the AMDF minimum */
|
||||||
/* excluding all that have already been computed */
|
/* excluding all that have already been computed */
|
||||||
ltau2 = 0;
|
ltau2 = 0;
|
||||||
|
@ -147,7 +147,7 @@ extern int tbdm_(real *speech, integer *lpita, integer *tau, integer *ltau, real
|
||||||
maxp2);
|
maxp2);
|
||||||
if (amdf2[minp2 - 1] < (real) minamd) {
|
if (amdf2[minp2 - 1] < (real) minamd) {
|
||||||
*mintau = tau2[minp2 - 1];
|
*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 */
|
/* 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);
|
maxp2);
|
||||||
if (amdf2[minp2 - 1] < (real) minamd) {
|
if (amdf2[minp2 - 1] < (real) minamd) {
|
||||||
*mintau = tau2[minp2 - 1];
|
*mintau = tau2[minp2 - 1];
|
||||||
minamd = amdf2[minp2 - 1];
|
minamd = (integer)amdf2[minp2 - 1];
|
||||||
*minptr += -20;
|
*minptr += -20;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -778,7 +778,7 @@ d*/
|
||||||
/* NOTE: The divisor is a function of REF, the expected energies. */
|
/* NOTE: The divisor is a function of REF, the expected energies. */
|
||||||
/* Computing MIN */
|
/* Computing MIN */
|
||||||
/* Computing MAX */
|
/* 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);
|
r__1 = max(r__2,1.f);
|
||||||
*dither = min(r__1,20.f);
|
*dither = min(r__1,20.f);
|
||||||
/* Voicing decisions are returned in VOIBUF. */
|
/* Voicing decisions are returned in VOIBUF. */
|
||||||
|
|
|
@ -194,7 +194,7 @@ static real c_b2 = 1.f;
|
||||||
/* is undefined. */
|
/* is undefined. */
|
||||||
|
|
||||||
r__1 = inbuf[start - 1] - *dither;
|
r__1 = inbuf[start - 1] - *dither;
|
||||||
oldsgn = r_sign(&c_b2, &r__1);
|
oldsgn = (real)r_sign(&c_b2, &r__1);
|
||||||
i__1 = stop;
|
i__1 = stop;
|
||||||
for (i__ = start; i__ <= i__1; ++i__) {
|
for (i__ = start; i__ <= i__1; ++i__) {
|
||||||
lp_rms__ += (r__1 = lpbuf[i__], abs(r__1));
|
lp_rms__ += (r__1 = lpbuf[i__], abs(r__1));
|
||||||
|
|
Reference in New Issue