diff --git a/libs/codec/gsm/inc/private.h b/libs/codec/gsm/inc/private.h
index 46071a662d..82efc929ac 100644
--- a/libs/codec/gsm/inc/private.h
+++ b/libs/codec/gsm/inc/private.h
@@ -33,7 +33,7 @@ struct gsm_state {
word v[9]; /* short_term.c, synthesis */
word msr; /* decoder.c, Postprocessing */
- char verbose; /* only used if !NDEBUG */
+ int verbose; /* only used if !NDEBUG */
char fast; /* only used if FAST */
char wav_fmt; /* only used if WAV49 defined */
diff --git a/libs/codec/gsm/libgsm.vcproj b/libs/codec/gsm/libgsm.vcproj
index 1d36add58c..75e3e4398f 100644
--- a/libs/codec/gsm/libgsm.vcproj
+++ b/libs/codec/gsm/libgsm.vcproj
@@ -46,9 +46,10 @@
BasicRuntimeChecks="3"
RuntimeLibrary="3"
UsePrecompiledHeader="0"
- WarningLevel="3"
+ WarningLevel="4"
Detect64BitPortabilityProblems="true"
DebugInformationFormat="3"
+ DisableSpecificWarnings="4131;4100"
/>
L_max) {
- Nc = lambda;
+ Nc = (word)lambda;
L_max = L_result;
}
}
diff --git a/libs/codec/gsm/src/preprocess.c b/libs/codec/gsm/src/preprocess.c
index b1a7089f67..80981b0078 100644
--- a/libs/codec/gsm/src/preprocess.c
+++ b/libs/codec/gsm/src/preprocess.c
@@ -40,7 +40,7 @@ void Gsm_Preprocess P3((S, s, so),
word z1 = S->z1;
longword L_z2 = S->L_z2;
- word mp = S->mp;
+ word mp = (word)S->mp;
word s1;
longword L_s2;
@@ -59,7 +59,7 @@ void Gsm_Preprocess P3((S, s, so),
/* 4.2.1 Downscaling of the input signal
*/
- SO = SASR( *s, 3 ) << 2;
+ SO = (word)SASR( *s, 3 ) << 2;
s++;
assert (SO >= -0x4000); /* downscaled by */
diff --git a/libs/codec/gsm/src/rpe.c b/libs/codec/gsm/src/rpe.c
index c6cb05146f..51ab12634d 100644
--- a/libs/codec/gsm/src/rpe.c
+++ b/libs/codec/gsm/src/rpe.c
@@ -232,7 +232,7 @@ static void APCM_quantization_xmaxc_to_exp_mant P3((xmaxc,exp_out,mant_out),
*/
exp = 0;
- if (xmaxc > 15) exp = SASR(xmaxc, 3) - 1;
+ if (xmaxc > 15) exp = (word)SASR(xmaxc, 3) - 1;
mant = xmaxc - (exp << 3);
if (mant == 0) {
@@ -283,13 +283,13 @@ static void APCM_quantization P5((xM,xMc,mant_out,exp_out,xmaxc_out),
*/
exp = 0;
- temp = SASR( xmax, 9 );
+ temp = (word)SASR( xmax, 9 );
itest = 0;
for (i = 0; i <= 5; i++) {
itest |= (temp <= 0);
- temp = SASR( temp, 1 );
+ temp = (word)SASR( temp, 1 );
assert(exp <= 5);
if (itest == 0) exp++; /* exp = add (exp, 1) */
@@ -333,7 +333,7 @@ static void APCM_quantization P5((xM,xMc,mant_out,exp_out,xmaxc_out),
temp = xM[i] << temp1;
temp = (word) GSM_MULT( temp, temp2 );
- temp = SASR(temp, 12);
+ temp = (word)SASR(temp, 12);
xMc[i] = temp + 4; /* see note below */
}
diff --git a/libs/codec/gsm/src/short_term.c b/libs/codec/gsm/src/short_term.c
index b953d5b262..aeec285899 100644
--- a/libs/codec/gsm/src/short_term.c
+++ b/libs/codec/gsm/src/short_term.c
@@ -167,9 +167,9 @@ static void LARp_to_rp P1((LARp),
if (*LARp < 0) {
temp = *LARp == MIN_WORD ? MAX_WORD : -(*LARp);
- *LARp = - ((temp < 11059) ? temp << 1
- : ((temp < 20070) ? temp + 11059
- : (word) GSM_ADD( temp >> 2, 26112 )));
+ *LARp =(word)( - ((temp < 11059) ? (word)(temp << 1)
+ : ((temp < 20070) ? (word)(temp + 11059)
+ : (word) GSM_ADD( temp >> 2, 26112 ))));
} else {
temp = *LARp;
*LARp = (temp < 11059) ? temp << 1