[Freeswitch-svn] [commit] r3081 - freeswitch/trunk/libs/codec/gsm/src
Freeswitch SVN
mikej at freeswitch.org
Wed Oct 18 17:09:36 EDT 2006
Author: mikej
Date: Wed Oct 18 17:09:35 2006
New Revision: 3081
Modified:
freeswitch/trunk/libs/codec/gsm/src/add.c
freeswitch/trunk/libs/codec/gsm/src/gsm_encode.c
Log:
some proper casts after bit shifts to force to the right data type.
Modified: freeswitch/trunk/libs/codec/gsm/src/add.c
==============================================================================
--- freeswitch/trunk/libs/codec/gsm/src/add.c (original)
+++ freeswitch/trunk/libs/codec/gsm/src/add.c Wed Oct 18 17:09:35 2006
@@ -161,9 +161,9 @@
word gsm_asl P2((a,n), word a, int n)
{
if (n >= 16) return 0;
- if (n <= -16) return -(a < 0);
+ if (n <= -16) return -(word)(a < 0);
if (n < 0) return gsm_asr(a, -n);
- return a << n;
+ return (word)(a << n);
}
longword gsm_L_asr P2((a,n), longword a, int n)
@@ -182,12 +182,12 @@
word gsm_asr P2((a,n), word a, int n)
{
- if (n >= 16) return -(a < 0);
+ if (n >= 16) return -(word)(a < 0);
if (n <= -16) return 0;
- if (n < 0) return a << -n;
+ if (n < 0) return (word)(a << -n);
# ifdef SASR
- return a >> n;
+ return (word)(a >> n);
# else
if (a >= 0) return a >> n;
else return -(word)( -(uword)a >> n );
Modified: freeswitch/trunk/libs/codec/gsm/src/gsm_encode.c
==============================================================================
--- freeswitch/trunk/libs/codec/gsm/src/gsm_encode.c (original)
+++ freeswitch/trunk/libs/codec/gsm/src/gsm_encode.c Wed Oct 18 17:09:35 2006
@@ -347,106 +347,106 @@
#endif /* WAV49 */
{
- *c++ = ((GSM_MAGIC & 0xF) << 4) /* 1 */
- | ((LARc[0] >> 2) & 0xF);
- *c++ = ((LARc[0] & 0x3) << 6)
- | (LARc[1] & 0x3F);
- *c++ = ((LARc[2] & 0x1F) << 3)
- | ((LARc[3] >> 2) & 0x7);
- *c++ = ((LARc[3] & 0x3) << 6)
+ *c++ = (gsm_byte)(((GSM_MAGIC & 0xF) << 4) /* 1 */
+ | ((LARc[0] >> 2) & 0xF));
+ *c++ = (gsm_byte)(((LARc[0] & 0x3) << 6)
+ | (LARc[1] & 0x3F));
+ *c++ = (gsm_byte)(((LARc[2] & 0x1F) << 3)
+ | ((LARc[3] >> 2) & 0x7));
+ *c++ = (gsm_byte)(((LARc[3] & 0x3) << 6)
| ((LARc[4] & 0xF) << 2)
- | ((LARc[5] >> 2) & 0x3);
- *c++ = ((LARc[5] & 0x3) << 6)
+ | ((LARc[5] >> 2) & 0x3));
+ *c++ = (gsm_byte)(((LARc[5] & 0x3) << 6)
| ((LARc[6] & 0x7) << 3)
- | (LARc[7] & 0x7);
- *c++ = ((Nc[0] & 0x7F) << 1)
- | ((bc[0] >> 1) & 0x1);
- *c++ = ((bc[0] & 0x1) << 7)
+ | (LARc[7] & 0x7));
+ *c++ = (gsm_byte)(((Nc[0] & 0x7F) << 1)
+ | ((bc[0] >> 1) & 0x1));
+ *c++ = (gsm_byte)(((bc[0] & 0x1) << 7)
| ((Mc[0] & 0x3) << 5)
- | ((xmaxc[0] >> 1) & 0x1F);
- *c++ = ((xmaxc[0] & 0x1) << 7)
+ | ((xmaxc[0] >> 1) & 0x1F));
+ *c++ = (gsm_byte)(((xmaxc[0] & 0x1) << 7)
| ((xmc[0] & 0x7) << 4)
| ((xmc[1] & 0x7) << 1)
- | ((xmc[2] >> 2) & 0x1);
- *c++ = ((xmc[2] & 0x3) << 6)
+ | ((xmc[2] >> 2) & 0x1));
+ *c++ = (gsm_byte)(((xmc[2] & 0x3) << 6)
| ((xmc[3] & 0x7) << 3)
- | (xmc[4] & 0x7);
- *c++ = ((xmc[5] & 0x7) << 5) /* 10 */
+ | (xmc[4] & 0x7));
+ *c++ = (gsm_byte)(((xmc[5] & 0x7) << 5) /* 10 */
| ((xmc[6] & 0x7) << 2)
- | ((xmc[7] >> 1) & 0x3);
- *c++ = ((xmc[7] & 0x1) << 7)
+ | ((xmc[7] >> 1) & 0x3));
+ *c++ = (gsm_byte)(((xmc[7] & 0x1) << 7)
| ((xmc[8] & 0x7) << 4)
| ((xmc[9] & 0x7) << 1)
- | ((xmc[10] >> 2) & 0x1);
- *c++ = ((xmc[10] & 0x3) << 6)
+ | ((xmc[10] >> 2) & 0x1));
+ *c++ = (gsm_byte)(((xmc[10] & 0x3) << 6)
| ((xmc[11] & 0x7) << 3)
- | (xmc[12] & 0x7);
- *c++ = ((Nc[1] & 0x7F) << 1)
- | ((bc[1] >> 1) & 0x1);
- *c++ = ((bc[1] & 0x1) << 7)
+ | (xmc[12] & 0x7));
+ *c++ = (gsm_byte)(((Nc[1] & 0x7F) << 1)
+ | ((bc[1] >> 1) & 0x1));
+ *c++ = (gsm_byte)(((bc[1] & 0x1) << 7)
| ((Mc[1] & 0x3) << 5)
- | ((xmaxc[1] >> 1) & 0x1F);
- *c++ = ((xmaxc[1] & 0x1) << 7)
+ | ((xmaxc[1] >> 1) & 0x1F));
+ *c++ = (gsm_byte)(((xmaxc[1] & 0x1) << 7)
| ((xmc[13] & 0x7) << 4)
| ((xmc[14] & 0x7) << 1)
- | ((xmc[15] >> 2) & 0x1);
- *c++ = ((xmc[15] & 0x3) << 6)
+ | ((xmc[15] >> 2) & 0x1));
+ *c++ = (gsm_byte)(((xmc[15] & 0x3) << 6)
| ((xmc[16] & 0x7) << 3)
- | (xmc[17] & 0x7);
- *c++ = ((xmc[18] & 0x7) << 5)
+ | (xmc[17] & 0x7));
+ *c++ = (gsm_byte)(((xmc[18] & 0x7) << 5)
| ((xmc[19] & 0x7) << 2)
- | ((xmc[20] >> 1) & 0x3);
- *c++ = ((xmc[20] & 0x1) << 7)
+ | ((xmc[20] >> 1) & 0x3));
+ *c++ = (gsm_byte)(((xmc[20] & 0x1) << 7)
| ((xmc[21] & 0x7) << 4)
| ((xmc[22] & 0x7) << 1)
- | ((xmc[23] >> 2) & 0x1);
- *c++ = ((xmc[23] & 0x3) << 6)
+ | ((xmc[23] >> 2) & 0x1));
+ *c++ = (gsm_byte)(((xmc[23] & 0x3) << 6)
| ((xmc[24] & 0x7) << 3)
- | (xmc[25] & 0x7);
- *c++ = ((Nc[2] & 0x7F) << 1) /* 20 */
- | ((bc[2] >> 1) & 0x1);
- *c++ = ((bc[2] & 0x1) << 7)
+ | (xmc[25] & 0x7));
+ *c++ = (gsm_byte)(((Nc[2] & 0x7F) << 1) /* 20 */
+ | ((bc[2] >> 1) & 0x1));
+ *c++ = (gsm_byte)(((bc[2] & 0x1) << 7)
| ((Mc[2] & 0x3) << 5)
- | ((xmaxc[2] >> 1) & 0x1F);
- *c++ = ((xmaxc[2] & 0x1) << 7)
+ | ((xmaxc[2] >> 1) & 0x1F));
+ *c++ = (gsm_byte)(((xmaxc[2] & 0x1) << 7)
| ((xmc[26] & 0x7) << 4)
| ((xmc[27] & 0x7) << 1)
- | ((xmc[28] >> 2) & 0x1);
- *c++ = ((xmc[28] & 0x3) << 6)
+ | ((xmc[28] >> 2) & 0x1));
+ *c++ = (gsm_byte)(((xmc[28] & 0x3) << 6)
| ((xmc[29] & 0x7) << 3)
- | (xmc[30] & 0x7);
- *c++ = ((xmc[31] & 0x7) << 5)
+ | (xmc[30] & 0x7));
+ *c++ = (gsm_byte)(((xmc[31] & 0x7) << 5)
| ((xmc[32] & 0x7) << 2)
- | ((xmc[33] >> 1) & 0x3);
- *c++ = ((xmc[33] & 0x1) << 7)
+ | ((xmc[33] >> 1) & 0x3));
+ *c++ = (gsm_byte)(((xmc[33] & 0x1) << 7)
| ((xmc[34] & 0x7) << 4)
| ((xmc[35] & 0x7) << 1)
- | ((xmc[36] >> 2) & 0x1);
- *c++ = ((xmc[36] & 0x3) << 6)
+ | ((xmc[36] >> 2) & 0x1));
+ *c++ = (gsm_byte)(((xmc[36] & 0x3) << 6)
| ((xmc[37] & 0x7) << 3)
- | (xmc[38] & 0x7);
- *c++ = ((Nc[3] & 0x7F) << 1)
- | ((bc[3] >> 1) & 0x1);
- *c++ = ((bc[3] & 0x1) << 7)
+ | (xmc[38] & 0x7));
+ *c++ = (gsm_byte)(((Nc[3] & 0x7F) << 1)
+ | ((bc[3] >> 1) & 0x1));
+ *c++ = (gsm_byte)(((bc[3] & 0x1) << 7)
| ((Mc[3] & 0x3) << 5)
- | ((xmaxc[3] >> 1) & 0x1F);
- *c++ = ((xmaxc[3] & 0x1) << 7)
+ | ((xmaxc[3] >> 1) & 0x1F));
+ *c++ = (gsm_byte)(((xmaxc[3] & 0x1) << 7)
| ((xmc[39] & 0x7) << 4)
| ((xmc[40] & 0x7) << 1)
- | ((xmc[41] >> 2) & 0x1);
- *c++ = ((xmc[41] & 0x3) << 6) /* 30 */
+ | ((xmc[41] >> 2) & 0x1));
+ *c++ = (gsm_byte)(((xmc[41] & 0x3) << 6) /* 30 */
| ((xmc[42] & 0x7) << 3)
- | (xmc[43] & 0x7);
- *c++ = ((xmc[44] & 0x7) << 5)
+ | (xmc[43] & 0x7));
+ *c++ = (gsm_byte)(((xmc[44] & 0x7) << 5)
| ((xmc[45] & 0x7) << 2)
- | ((xmc[46] >> 1) & 0x3);
- *c++ = ((xmc[46] & 0x1) << 7)
+ | ((xmc[46] >> 1) & 0x3));
+ *c++ = (gsm_byte)(((xmc[46] & 0x1) << 7)
| ((xmc[47] & 0x7) << 4)
| ((xmc[48] & 0x7) << 1)
- | ((xmc[49] >> 2) & 0x1);
- *c++ = ((xmc[49] & 0x3) << 6)
+ | ((xmc[49] >> 2) & 0x1));
+ *c++ = (gsm_byte)(((xmc[49] & 0x3) << 6)
| ((xmc[50] & 0x7) << 3)
- | (xmc[51] & 0x7);
+ | (xmc[51] & 0x7));
}
}
More information about the Freeswitch-svn
mailing list