package org.mobicents.media.server.impl.codec.g729;
public class PParity {
/*-----------------------------------------------------*
* parity_pitch - compute parity bit for first 6 MSBs *
*-----------------------------------------------------*/
public static int parity_pitch( /* output: parity bit (XOR of 6 MSB bits) */
int pitch_index /* input : index for which parity is computed */
)
{
int temp, sum, i, bit;
temp = pitch_index >> 1;
sum = 1;
for (i = 0; i <= 5; i++) {
temp >>= 1;
bit = temp & 1;
sum = sum + bit;
}
sum = sum & 1;
return (sum);
}
/*--------------------------------------------------------------------*
* check_parity_pitch - check parity of index with transmitted parity *
*--------------------------------------------------------------------*/
public static int check_parity_pitch( /* output: 0 = no error, 1= error */
int pitch_index, /* input : index of parameter */
int parity /* input : parity bit */
)
{
int temp, sum, i, bit;
temp = pitch_index >> 1;
sum = 1;
for (i = 0; i <= 5; i++) {
temp >>= 1;
bit = temp & 1;
sum = sum + bit;
}
sum += parity;
sum = sum & 1;
return (sum);
}
}