亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? gsm_bits_convert.c

?? PA1688網絡電話機全部源程序
?? C
字號:
#define	GSM_MAGIC		0xD		  	/* 13 kbit/s RPE-LTP */
//
//  XM is an RPE sequence containing 13 samples.  There is one
//  RPE sequence per sub-frame.	 This is typedefed in order to
//  facilitate passing the array thru function calls.
//

static short g_LARc[8], g_Nc[4], g_Mc[4], g_bc[4], g_xmaxc[4], g_xmc[52];

void PackFrame0
(
    unsigned char   ab[],
    short  LAR[],
    short  N[],
    short  b[],
    short  M[],
    short  Xmax[],
    short     X[]
)
{
    int i;
    
    // Pack the LAR[1..8] into the first 4.5 bytes
    ab[0] = ((LAR[0]	 ) & 0x3F) | ((LAR[1] << 6) & 0xC0);
    ab[1] = ((LAR[1] >> 2) & 0x0F) | ((LAR[2] << 4) & 0xF0);
    ab[2] = ((LAR[2] >> 4) & 0x01) | ((LAR[3] << 1) & 0x3E) | ((LAR[4] << 6) & 0xC0);
    ab[3] = ((LAR[4] >> 2) & 0x03) | ((LAR[5] << 2) & 0x3C) | ((LAR[6] << 6) & 0xC0);
    ab[4] = ((LAR[6] >> 2) & 0x01) | ((LAR[7] << 1) & 0x0E);
    
    // Pack N, b, M, Xmax, and X for each of the 4 sub-frames
    for (i=0; i<4; i++)
    {
    
	ab[4+i*7+0] |= ((N[i] << 4) & 0xF0);
	ab[4+i*7+1] = ((N[i] >> 4) & 0x07) | ((b[i] << 3) & 0x18) | ((M[i] << 5) & 0x60) | ((Xmax[i] << 7) & 0x80);
	ab[4+i*7+2] = ((Xmax[i] >> 1) & 0x1F) | ((X[i*13+0] << 5) & 0xE0);
	ab[4+i*7+3] = (X[i*13+1] & 0x07) | ((X[i*13+2] << 3) & 0x38) | ((X[i*13+3] << 6) & 0xC0);
	ab[4+i*7+4] = ((X[i*13+3] >> 2) & 0x01) | ((X[i*13+4] << 1) & 0x0E) | ((X[i*13+5] << 4) & 0x70) | ((X[i*13+6] << 7) & 0x80);
	ab[4+i*7+5] = ((X[i*13+6] >> 1) & 0x03) | ((X[i*13+7] << 2) & 0x1C) | ((X[i*13+8] << 5) & 0xE0);
	ab[4+i*7+6] = (X[i*13+9] & 0x07) | ((X[i*13+10] << 3) & 0x38) | ((X[i*13+11] << 6) & 0xC0);
	ab[4+i*7+7] = ((X[i*13+11] >> 2) & 0x01) | ((X[i*13+12] << 1) & 0x0E);
    
    }
    
    return;
}	

void PackFrame1
(
    unsigned char   ab[],
    short  LAR[],
    short  N[],
    short  b[],
    short  M[],
    short  Xmax[],
    short     X[]
)
{
    int i;
    
    // Pack the LAR[1..8] into the first 4.5 bytes, starting with the
    // more significant nibble of the first byte.
    ab[32] |= ((LAR[0] << 4) & 0xF0);
    ab[33] = ((LAR[0] >> 4) & 0x03) | ((LAR[1] << 2) & 0xFC);
    ab[34] = ((LAR[2]	  ) & 0x1F) | ((LAR[3] << 5) & 0xE0);
    ab[35] = ((LAR[3] >> 3) & 0x03) | ((LAR[4] << 2) & 0x3C) | ((LAR[5] << 6) & 0xC0);
    ab[36] = ((LAR[5] >> 2) & 0x03) | ((LAR[6] << 2) & 0x1C) | ((LAR[7] << 5) & 0xE0);
    
    // Pack N, b, M, Xmax, and X for each of the 4 sub-frames
    for (i=0; i<4; i++)
    {
	ab[37+i*7+0] = (N[i] & 0x7F) | ((b[i] << 7) & 0x80);
	ab[37+i*7+1] = ((b[i] >> 1) & 0x01) | ((M[i] << 1) & 0x06) | ((Xmax[i] << 3) & 0xF8);
	ab[37+i*7+2] = ((Xmax[i] >> 5) & 0x01) | ((X[i*13+0] << 1) & 0x0E) | ((X[i*13+1] << 4) & 0x70) | ((X[i*13+2] << 7) & 0x80);
	ab[37+i*7+3] = ((X[i*13+2] >> 1) & 0x03) | ((X[i*13+3] << 2) & 0x1C) | ((X[i*13+4] << 5) & 0xE0);
	ab[37+i*7+4] = ((X[i*13+5]     ) & 0x07) | ((X[i*13+6] << 3) & 0x38) | ((X[i*13+7] << 6) & 0xC0);
	ab[37+i*7+5] = ((X[i*13+7] >> 2) & 0x01) | ((X[i*13+8] << 1) & 0x0E) | ((X[i*13+9] << 4) & 0x70) | ((X[i*13+10] << 7) & 0x80);
	ab[37+i*7+6] = ((X[i*13+10] >> 1) & 0x03) | ((X[i*13+11] << 2) & 0x1C) | ((X[i*13+12] << 5) & 0xE0);
    }
    
    return;
}	

void UnpackFrame0
(
    const unsigned char   ab[],
    short  LAR[],
    short  N[],
    short  b[],
    short  M[],
    short  Xmax[],
    short     X[]
)
{
    unsigned int i;
    
    // Unpack the LAR[1..8] from the first 4.5 bytes
    LAR[0] =  (ab[0] & 0x3F);
    LAR[1] = ((ab[0] & 0xC0) >> 6) | ((ab[1] & 0x0F) << 2);
    LAR[2] = ((ab[1] & 0xF0) >> 4) | ((ab[2] & 0x01) << 4);
    LAR[3] = ((ab[2] & 0x3E) >> 1);
    LAR[4] = ((ab[2] & 0xC0) >> 6) | ((ab[3] & 0x03) << 2);
    LAR[5] = ((ab[3] & 0x3C) >> 2);
    LAR[6] = ((ab[3] & 0xC0) >> 6) | ((ab[4] & 0x01) << 2);
    LAR[7] = ((ab[4] & 0x0E) >> 1);

    // Unpack N, b, M, Xmax, and X for each of the four sub-frames
    for (i=0; i<4; i++)
    {
	// A convenient macro for getting bytes out of the array for
	// construction of the subframe parameters
#define sfb(x) (ab[4+i*7+x])

	N[i] = ((sfb(0) & 0xF0) >> 4) | ((sfb(1) & 0x07) << 4);
	b[i] = ((sfb(1) & 0x18) >> 3);
	M[i] = ((sfb(1) & 0x60) >> 5);
	Xmax[i] = ((sfb(1) & 0x80) >> 7) | ((sfb(2) & 0x1F) << 1);
	X[i*13+0] = ((sfb(2) & 0xE0) >> 5);
	X[i*13+1] =  (sfb(3) & 0x07);
	X[i*13+2] = ((sfb(3) & 0x3C) >> 3);
	X[i*13+3] = ((sfb(3) & 0xC0) >> 6) | ((sfb(4) & 0x01) << 2);
	X[i*13+4] = ((sfb(4) & 0x0E) >> 1);
	X[i*13+5] = ((sfb(4) & 0x70) >> 4);
	X[i*13+6] = ((sfb(4) & 0x80) >> 7) | ((sfb(5) & 0x03) << 1);
	X[i*13+7] = ((sfb(5) & 0x1C) >> 2);
	X[i*13+8] = ((sfb(5) & 0xE0) >> 5);
	X[i*13+9] =  (sfb(6) & 0x07);
	X[i*13+10] = ((sfb(6) & 0x38) >> 3);
	X[i*13+11] = ((sfb(6) & 0xC0) >> 6) | ((sfb(7) & 0x01) << 2);
	X[i*13+12] = ((sfb(7) & 0x0E) >> 1);

#undef sfb
    }
    
    return;
}	

void UnpackFrame1
(
    const unsigned char   ab[],
    short  LAR[],
    short  N[],
    short  b[],
    short  M[],
    short  Xmax[],
    short     X[]
)
{
    unsigned int i;
    
    // Unpack the LAR[1..8] from the first 4.5 bytes
    LAR[0] = ((ab[32] & 0xF0) >> 4) | ((ab[33] & 0x03) << 4);
    LAR[1] = ((ab[33] & 0xFC) >> 2);
    LAR[2] = ((ab[34] & 0x1F)	  );
    LAR[3] = ((ab[34] & 0xE0) >> 5) | ((ab[35] & 0x03) << 3);
    LAR[4] = ((ab[35] & 0x3C) >> 2);
    LAR[5] = ((ab[35] & 0xC0) >> 6) | ((ab[36] & 0x03) << 2);
    LAR[6] = ((ab[36] & 0x1C) >> 2);
    LAR[7] = ((ab[36] & 0xE0) >> 5);

    // Unpack N, b, M, Xmax, and X for each of the four sub-frames
    for (i=0; i<4; i++)
    {
	// A convenient macro for getting bytes out of the array for
	// construction of the subframe parameters
#define sfb(x) (ab[37+i*7+x])

	N[i] = sfb(0) & 0x7F;
	b[i] = ((sfb(0) & 0x80) >> 7) | ((sfb(1) & 0x01) << 1);
	M[i] = ((sfb(1) & 0x06) >> 1);
	Xmax[i] = ((sfb(1) & 0xF8) >> 3) | ((sfb(2) & 0x01) << 5);

	X[i*13+0] = ((sfb(2) & 0x0E) >> 1);
	X[i*13+1] = ((sfb(2) & 0x70) >> 4);
	X[i*13+2] = ((sfb(2) & 0x80) >> 7) | ((sfb(3) & 0x03) << 1);
	X[i*13+3] = ((sfb(3) & 0x1C) >> 2);
	X[i*13+4] = ((sfb(3) & 0xE0) >> 5);
	X[i*13+5] = ((sfb(4) & 0x07)     );
	X[i*13+6] = ((sfb(4) & 0x38) >> 3);
	X[i*13+7] = ((sfb(4) & 0xC0) >> 6) | ((sfb(5) & 0x01) << 2);
	X[i*13+8] = ((sfb(5) & 0x0E) >> 1);
	X[i*13+9] = ((sfb(5) & 0x70) >> 4);
	X[i*13+10] = ((sfb(5) & 0x80) >> 7) | ((sfb(6) & 0x03) << 1);
	X[i*13+11] = ((sfb(6) & 0x1C) >> 2);
	X[i*13+12] = ((sfb(6) & 0xE0) >> 5);

#undef sfb

    }
    
    return;
}	


void Gsm_PackFrame(unsigned char * c, short LARc[8], short Nc[4], short Mc[4], short bc[4], short xmaxc[4], short  xmc[52])
{
	/*	variable	size

		GSM_MAGIC	4

		LARc[0]		6
		LARc[1]		6
		LARc[2]		5
		LARc[3]		5
		LARc[4]		4
		LARc[5]		4
		LARc[6]		3
		LARc[7]		3

		Nc[0]		7
		bc[0]		2
		Mc[0]		2
		xmaxc[0]	6
		xmc[0]		3
		xmc[1]		3
		xmc[2]		3
		xmc[3]		3
		xmc[4]		3
		xmc[5]		3
		xmc[6]		3
		xmc[7]		3
		xmc[8]		3
		xmc[9]		3
		xmc[10]		3
		xmc[11]		3
		xmc[12]		3

		Nc[1]		7
		bc[1]		2
		Mc[1]		2
		xmaxc[1]	6
		xmc[13]		3
		xmc[14]		3
		xmc[15]		3
		xmc[16]		3
		xmc[17]		3
		xmc[18]		3
		xmc[19]		3
		xmc[20]		3
		xmc[21]		3
		xmc[22]		3
		xmc[23]		3
		xmc[24]		3
		xmc[25]		3

		Nc[2]		7
		bc[2]		2
		Mc[2]		2
		xmaxc[2]	6
		xmc[26]		3
		xmc[27]		3
		xmc[28]		3
		xmc[29]		3
		xmc[30]		3
		xmc[31]		3
		xmc[32]		3
		xmc[33]		3
		xmc[34]		3
		xmc[35]		3
		xmc[36]		3
		xmc[37]		3
		xmc[38]		3

		Nc[3]		7
		bc[3]		2
		Mc[3]		2
		xmaxc[3]	6
		xmc[39]		3
		xmc[40]		3
		xmc[41]		3
		xmc[42]		3
		xmc[43]		3
		xmc[44]		3
		xmc[45]		3
		xmc[46]		3
		xmc[47]		3
		xmc[48]		3
		xmc[49]		3
		xmc[50]		3
		xmc[51]		3
	*/


		*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)
		       | ((LARc[4] & 0xF) << 2)
		       | ((LARc[5] >> 2) & 0x3);
		*c++ =   ((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)
		       | ((Mc[0] & 0x3) << 5)
		       | ((xmaxc[0] >> 1) & 0x1F);
		*c++ =   ((xmaxc[0] & 0x1) << 7)
		       | ((xmc[0] & 0x7) << 4)
		       | ((xmc[1] & 0x7) << 1)
		       | ((xmc[2] >> 2) & 0x1);
		*c++ =   ((xmc[2] & 0x3) << 6)
		       | ((xmc[3] & 0x7) << 3)
		       | (xmc[4] & 0x7);
		*c++ =   ((xmc[5] & 0x7) << 5)			/* 10 */
		       | ((xmc[6] & 0x7) << 2)
		       | ((xmc[7] >> 1) & 0x3);
		*c++ =   ((xmc[7] & 0x1) << 7)
		       | ((xmc[8] & 0x7) << 4)
		       | ((xmc[9] & 0x7) << 1)
		       | ((xmc[10] >> 2) & 0x1);
		*c++ =   ((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)
		       | ((Mc[1] & 0x3) << 5)
		       | ((xmaxc[1] >> 1) & 0x1F);
		*c++ =   ((xmaxc[1] & 0x1) << 7)
		       | ((xmc[13] & 0x7) << 4)
		       | ((xmc[14] & 0x7) << 1)
		       | ((xmc[15] >> 2) & 0x1);
		*c++ =   ((xmc[15] & 0x3) << 6)
		       | ((xmc[16] & 0x7) << 3)
		       | (xmc[17] & 0x7);
		*c++ =   ((xmc[18] & 0x7) << 5)
		       | ((xmc[19] & 0x7) << 2)
		       | ((xmc[20] >> 1) & 0x3);
		*c++ =   ((xmc[20] & 0x1) << 7)
		       | ((xmc[21] & 0x7) << 4)
		       | ((xmc[22] & 0x7) << 1)
		       | ((xmc[23] >> 2) & 0x1);
		*c++ =   ((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)
		       | ((Mc[2] & 0x3) << 5)
		       | ((xmaxc[2] >> 1) & 0x1F);
		*c++ =   ((xmaxc[2] & 0x1) << 7)
		       | ((xmc[26] & 0x7) << 4)
		       | ((xmc[27] & 0x7) << 1)
		       | ((xmc[28] >> 2) & 0x1);
		*c++ =   ((xmc[28] & 0x3) << 6)
		       | ((xmc[29] & 0x7) << 3)
		       | (xmc[30] & 0x7);
		*c++ =   ((xmc[31] & 0x7) << 5)
		       | ((xmc[32] & 0x7) << 2)
		       | ((xmc[33] >> 1) & 0x3);
		*c++ =   ((xmc[33] & 0x1) << 7)
		       | ((xmc[34] & 0x7) << 4)
		       | ((xmc[35] & 0x7) << 1)
		       | ((xmc[36] >> 2) & 0x1);
		*c++ =   ((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)
		       | ((Mc[3] & 0x3) << 5)
		       | ((xmaxc[3] >> 1) & 0x1F);
		*c++ =   ((xmaxc[3] & 0x1) << 7)
		       | ((xmc[39] & 0x7) << 4)
		       | ((xmc[40] & 0x7) << 1)
		       | ((xmc[41] >> 2) & 0x1);
		*c++ =   ((xmc[41] & 0x3) << 6)			/* 30 */
		       | ((xmc[42] & 0x7) << 3)
		       | (xmc[43] & 0x7);
		*c++ =   ((xmc[44] & 0x7) << 5)
		       | ((xmc[45] & 0x7) << 2)
		       | ((xmc[46] >> 1) & 0x3);
		*c++ =   ((xmc[46] & 0x1) << 7)
		       | ((xmc[47] & 0x7) << 4)
		       | ((xmc[48] & 0x7) << 1)
		       | ((xmc[49] >> 2) & 0x1);
		*c++ =   ((xmc[49] & 0x3) << 6)
		       | ((xmc[50] & 0x7) << 3)
		       | (xmc[51] & 0x7);
}

void Gsm_UnpackFrame(const unsigned char * c, short LARc[8], short Nc[4], short Mc[4], short bc[4], short xmaxc[4], short xmc[52])
{
		LARc[0]  = (*c++ & 0xF) << 2;		/* 1 */
		LARc[0] |= (*c >> 6) & 0x3;
		LARc[1]  = *c++ & 0x3F;
		LARc[2]  = (*c >> 3) & 0x1F;
		LARc[3]  = (*c++ & 0x7) << 2;
		LARc[3] |= (*c >> 6) & 0x3;
		LARc[4]  = (*c >> 2) & 0xF;
		LARc[5]  = (*c++ & 0x3) << 2;
		LARc[5] |= (*c >> 6) & 0x3;
		LARc[6]  = (*c >> 3) & 0x7;
		LARc[7]  = *c++ & 0x7;
		Nc[0]  = (*c >> 1) & 0x7F;
		bc[0]  = (*c++ & 0x1) << 1;
		bc[0] |= (*c >> 7) & 0x1;
		Mc[0]  = (*c >> 5) & 0x3;
		xmaxc[0]  = (*c++ & 0x1F) << 1;
		xmaxc[0] |= (*c >> 7) & 0x1;
		xmc[0]  = (*c >> 4) & 0x7;
		xmc[1]  = (*c >> 1) & 0x7;
		xmc[2]  = (*c++ & 0x1) << 2;
		xmc[2] |= (*c >> 6) & 0x3;
		xmc[3]  = (*c >> 3) & 0x7;
		xmc[4]  = *c++ & 0x7;
		xmc[5]  = (*c >> 5) & 0x7;
		xmc[6]  = (*c >> 2) & 0x7;
		xmc[7]  = (*c++ & 0x3) << 1;		/* 10 */
		xmc[7] |= (*c >> 7) & 0x1;
		xmc[8]  = (*c >> 4) & 0x7;
		xmc[9]  = (*c >> 1) & 0x7;
		xmc[10]  = (*c++ & 0x1) << 2;
		xmc[10] |= (*c >> 6) & 0x3;
		xmc[11]  = (*c >> 3) & 0x7;
		xmc[12]  = *c++ & 0x7;
		Nc[1]  = (*c >> 1) & 0x7F;
		bc[1]  = (*c++ & 0x1) << 1;
		bc[1] |= (*c >> 7) & 0x1;
		Mc[1]  = (*c >> 5) & 0x3;
		xmaxc[1]  = (*c++ & 0x1F) << 1;
		xmaxc[1] |= (*c >> 7) & 0x1;
		xmc[13]  = (*c >> 4) & 0x7;
		xmc[14]  = (*c >> 1) & 0x7;
		xmc[15]  = (*c++ & 0x1) << 2;
		xmc[15] |= (*c >> 6) & 0x3;
		xmc[16]  = (*c >> 3) & 0x7;
		xmc[17]  = *c++ & 0x7;
		xmc[18]  = (*c >> 5) & 0x7;
		xmc[19]  = (*c >> 2) & 0x7;
		xmc[20]  = (*c++ & 0x3) << 1;
		xmc[20] |= (*c >> 7) & 0x1;
		xmc[21]  = (*c >> 4) & 0x7;
		xmc[22]  = (*c >> 1) & 0x7;
		xmc[23]  = (*c++ & 0x1) << 2;
		xmc[23] |= (*c >> 6) & 0x3;
		xmc[24]  = (*c >> 3) & 0x7;
		xmc[25]  = *c++ & 0x7;
		Nc[2]  = (*c >> 1) & 0x7F;
		bc[2]  = (*c++ & 0x1) << 1;		/* 20 */
		bc[2] |= (*c >> 7) & 0x1;
		Mc[2]  = (*c >> 5) & 0x3;
		xmaxc[2]  = (*c++ & 0x1F) << 1;
		xmaxc[2] |= (*c >> 7) & 0x1;
		xmc[26]  = (*c >> 4) & 0x7;
		xmc[27]  = (*c >> 1) & 0x7;
		xmc[28]  = (*c++ & 0x1) << 2;
		xmc[28] |= (*c >> 6) & 0x3;
		xmc[29]  = (*c >> 3) & 0x7;
		xmc[30]  = *c++ & 0x7;
		xmc[31]  = (*c >> 5) & 0x7;
		xmc[32]  = (*c >> 2) & 0x7;
		xmc[33]  = (*c++ & 0x3) << 1;
		xmc[33] |= (*c >> 7) & 0x1;
		xmc[34]  = (*c >> 4) & 0x7;
		xmc[35]  = (*c >> 1) & 0x7;
		xmc[36]  = (*c++ & 0x1) << 2;
		xmc[36] |= (*c >> 6) & 0x3;
		xmc[37]  = (*c >> 3) & 0x7;
		xmc[38]  = *c++ & 0x7;
		Nc[3]  = (*c >> 1) & 0x7F;
		bc[3]  = (*c++ & 0x1) << 1;
		bc[3] |= (*c >> 7) & 0x1;
		Mc[3]  = (*c >> 5) & 0x3;
		xmaxc[3]  = (*c++ & 0x1F) << 1;
		xmaxc[3] |= (*c >> 7) & 0x1;
		xmc[39]  = (*c >> 4) & 0x7;
		xmc[40]  = (*c >> 1) & 0x7;
		xmc[41]  = (*c++ & 0x1) << 2;
		xmc[41] |= (*c >> 6) & 0x3;
		xmc[42]  = (*c >> 3) & 0x7;
		xmc[43]  = *c++ & 0x7;			/* 30  */
		xmc[44]  = (*c >> 5) & 0x7;
		xmc[45]  = (*c >> 2) & 0x7;
		xmc[46]  = (*c++ & 0x3) << 1;
		xmc[46] |= (*c >> 7) & 0x1;
		xmc[47]  = (*c >> 4) & 0x7;
		xmc[48]  = (*c >> 1) & 0x7;
		xmc[49]  = (*c++ & 0x1) << 2;
		xmc[49] |= (*c >> 6) & 0x3;
		xmc[50]  = (*c >> 3) & 0x7;
		xmc[51]  = *c & 0x7;			/* 33 */
}

void gsm_bits_ms2normal(const unsigned char * pMS, unsigned char * pNormal1, unsigned char * pNormal2)
{
	UnpackFrame0(pMS, g_LARc, g_Nc, g_bc, g_Mc, g_xmaxc, g_xmc);
	Gsm_PackFrame(pNormal1, g_LARc, g_Nc, g_Mc, g_bc, g_xmaxc, g_xmc);
	UnpackFrame1(pMS, g_LARc, g_Nc, g_bc, g_Mc, g_xmaxc, g_xmc);
	Gsm_PackFrame(pNormal2, g_LARc, g_Nc, g_Mc, g_bc, g_xmaxc, g_xmc);
}

void gsm_bits_normal2ms(const unsigned char * pNormal1, const unsigned char * pNormal2, unsigned char * pMS)
{
	Gsm_UnpackFrame(pNormal1, g_LARc, g_Nc, g_Mc, g_bc, g_xmaxc, g_xmc);
	PackFrame0(pMS, g_LARc, g_Nc, g_bc, g_Mc, g_xmaxc, g_xmc);
	Gsm_UnpackFrame(pNormal2, g_LARc, g_Nc, g_Mc, g_bc, g_xmaxc, g_xmc);
	PackFrame1(pMS, g_LARc, g_Nc, g_bc, g_Mc, g_xmaxc, g_xmc);
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲成人自拍偷拍| 久久99最新地址| 日韩精品中文字幕一区二区三区| 国产精品一区二区久激情瑜伽| 亚洲一区在线免费观看| 中文字幕av免费专区久久| 日韩一级完整毛片| 欧美性生活久久| 99免费精品在线观看| 久久国产成人午夜av影院| 亚洲国产视频a| 亚洲欧洲制服丝袜| 国产精品久久福利| 精品福利视频一区二区三区| 在线区一区二视频| 99久久精品国产麻豆演员表| 国产精品一卡二| 国产在线精品免费| 日本伊人午夜精品| 亚洲国产精品久久艾草纯爱 | 国产精品视频在线看| 欧美mv日韩mv国产网站| 欧美精品xxxxbbbb| 欧美影院一区二区三区| 日本丰满少妇一区二区三区| va亚洲va日韩不卡在线观看| 国产乱淫av一区二区三区 | 成人av电影在线播放| 国产自产高清不卡| 毛片av一区二区三区| 日本女优在线视频一区二区| 午夜精品久久久久久久久| 亚洲制服丝袜在线| 伊人色综合久久天天| 最新高清无码专区| 亚洲视频一区二区在线观看| 国产精品久久久久久福利一牛影视| 久久精品一区二区三区不卡| 久久久精品天堂| 国产欧美视频一区二区| 久久精品日韩一区二区三区| 国产日韩欧美综合在线| 日本一区二区三区四区| 欧美国产日韩精品免费观看| 国产精品美女久久久久久久久 | 亚洲成人先锋电影| 亚洲1区2区3区4区| 蜜桃视频在线观看一区二区| 久久国产精品99久久人人澡| 国产精品99久久久久久有的能看| 国产美女在线精品| 91香蕉视频mp4| 色老汉一区二区三区| 欧美日韩成人综合天天影院 | 久久综合色之久久综合| 国产精品欧美精品| 亚洲欧美另类久久久精品2019 | 国产盗摄精品一区二区三区在线| 丁香六月久久综合狠狠色| 97精品久久久久中文字幕 | 91黄视频在线| 555夜色666亚洲国产免| 精品国产露脸精彩对白| 中文av一区二区| 亚洲精品免费在线观看| 香蕉影视欧美成人| 国模套图日韩精品一区二区| 不卡影院免费观看| 欧美日韩黄色一区二区| 2017欧美狠狠色| 亚洲欧美日韩综合aⅴ视频| 香蕉加勒比综合久久| 精品一区二区三区在线观看 | av一二三不卡影片| 欧美日韩国产成人在线免费| 久久久亚洲综合| 亚洲另类一区二区| 麻豆一区二区三| 91免费国产在线| 欧美成人精品二区三区99精品| 国产精品国产三级国产三级人妇| 国模冰冰炮一区二区| 色综合天天综合给合国产| 日韩午夜在线影院| 成人一区在线看| 色av一区二区| 久久先锋影音av鲁色资源网| 亚洲欧美在线另类| 亚洲成国产人片在线观看| 国产一区二区在线观看视频| 91视频你懂的| 久久色成人在线| 视频在线观看一区二区三区| 国产盗摄一区二区| 欧美一区二区女人| 亚洲精品亚洲人成人网| 狠狠狠色丁香婷婷综合久久五月| 色8久久人人97超碰香蕉987| 国产视频在线观看一区二区三区| 香蕉久久夜色精品国产使用方法 | 亚洲免费观看高清完整版在线| 极品少妇一区二区三区精品视频| 色婷婷av一区| 国产精品欧美经典| 国产一区二区三区精品视频| 欧美日韩午夜在线| 亚洲视频1区2区| 国产成+人+日韩+欧美+亚洲| 欧美成人女星排行榜| 亚洲国产视频一区二区| 一本色道久久综合亚洲精品按摩| 国产日韩精品视频一区| 国产最新精品免费| 日韩精品一区二区三区老鸭窝| 性久久久久久久| 91激情在线视频| 亚洲欧美国产高清| 成人动漫一区二区在线| 国产性做久久久久久| 国产一区二区三区免费播放| 欧美一区二区三区公司| 亚洲18影院在线观看| 欧美三级日韩三级国产三级| 一区二区三区四区激情| 色综合天天狠狠| 亚洲激情综合网| 色综合久久久久综合体桃花网| 亚洲天堂精品在线观看| www.一区二区| 国产精品久久久久久福利一牛影视 | 婷婷综合久久一区二区三区| 欧美在线色视频| 亚洲国产裸拍裸体视频在线观看乱了| 92精品国产成人观看免费 | 韩国中文字幕2020精品| 日韩午夜激情免费电影| 日本少妇一区二区| 日韩欧美色综合| 麻豆精品久久久| 精品国精品国产| 国产一区二区毛片| 国产清纯美女被跳蛋高潮一区二区久久w | 一区二区三区久久| 欧美专区亚洲专区| 日韩电影免费一区| 日韩一区二区三区电影在线观看 | jlzzjlzz国产精品久久| 亚洲天天做日日做天天谢日日欢| 91视频.com| 亚洲一卡二卡三卡四卡无卡久久| 欧美色图12p| 毛片不卡一区二区| 日本一区二区三区四区| 99国产精品久久久久久久久久久 | 国产精品久久久久久久久免费桃花 | 天天综合色天天| 欧美sm美女调教| caoporn国产一区二区| 亚洲激情在线播放| 日韩亚洲欧美在线观看| 国产精品亚洲一区二区三区妖精| 亚洲日本在线看| 欧美日韩精品欧美日韩精品一 | 国产一二精品视频| 日韩码欧中文字| 欧美日韩国产综合久久| 麻豆传媒一区二区三区| 国产精品国产三级国产普通话99| 在线观看日韩精品| 国产一区二区三区最好精华液| 国产精品久久久久久久久动漫| 欧美日免费三级在线| 激情国产一区二区| 亚洲日本成人在线观看| 欧美一区二区三区免费在线看 | 亚洲精品免费在线观看| 日韩精品中午字幕| 91蜜桃网址入口| 麻豆成人久久精品二区三区红| 国产精品国产馆在线真实露脸 | 中文字幕精品一区二区精品绿巨人| 97se亚洲国产综合自在线| 蜜桃精品视频在线| 亚洲精品成人在线| 久久天天做天天爱综合色| 91国产成人在线| 国产精品99久久久久久久vr| 亚洲一区免费视频| 国产亚洲一区二区三区| 欧美人体做爰大胆视频| 成人污视频在线观看| 美女视频免费一区| 亚洲在线视频一区| 国产精品女人毛片| 欧美xxxxx裸体时装秀| 欧美日韩精品福利| 色诱视频网站一区| 成人久久久精品乱码一区二区三区| 日本视频一区二区三区| 亚洲电影在线播放|