⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 g711enc.c

📁 linux下的sip voip程序
💻 C
字号:
#include <stdio.h>#define BIAS    132    /* バイアスの猛 */#define CLIP	32635  /* 惧嘎、布嘎の冷滦猛 ( 0x7fff - BIAS ) */void disp_c(unsigned char value);void disp_s(short value);unsigned char g711encode(short audio_sample);int main(int argv, char **argc){    int i;    unsigned char mu_val;    /* テスト脱サンプル猛 */    short a_smp[8] ={                /* 恃垂涟     掐蜗+バイアス   |  XOR涟   | エンコ〖ド猛 */        0,      /* 0 00000001 0000 100        | 00000000 | 11111111 */        140,    /* 0 0000001  0001 0000       | 00010001 | 11101110 */        444,    /* 0 000001   0010 00000      | 00100010 | 11011101 */        1084,   /* 0 00001    0011 000000     | 00110011 | 11001100 */        -2460,  /* 0 0001     0100 0100000    | 01000100 | 00111011 */        -5372,  /* 0 001      0101 10000000   | 01010101 | 00101010 */        -11420, /* 0 01       0110 100100000  | 01100110 | 00011001 */        -24060  /* 0 1        0111 1010000000 | 01110111 | 00001000 */    };    for (i = 0; i < 8; i++ ){        mu_val = g711encode( a_smp[i] );        disp_c( mu_val );        printf("\n");    }    return 0;}/* エンコ〖ド簇眶 */unsigned char g711encode(short audio_sample){    int i;    int mask;    int range;    unsigned char mulaw_val;    if( audio_sample > 0 && audio_sample > CLIP ) audio_sample = CLIP;    if( audio_sample < 0 && audio_sample < -CLIP ) audio_sample = -CLIP;    if( audio_sample < 0 ){       mask = 0x7f;       audio_sample = -audio_sample;    }else{       mask = 0xff;    }       audio_sample += BIAS;    for( i = 7, range = 0x4000; range >= 0x80; range >>= 1, i-- ){       if( range & audio_sample ) break;    }    mulaw_val = (i << 4) +  (( audio_sample >> ( i + 3 )) & 0x0f);    disp_c(mulaw_val);    return mulaw_val ^ mask;}/* shortの2渴眶山绩簇眶 */void disp_s(short value){    int i;    printf("\t");    for( i = 0x8000; i > 0; i >>= 1 ){       if(value & i ){           printf("1");       }else{           printf("0");       }    }}/* unsigned char の2渴眶山绩簇眶 */void disp_c(unsigned char value){    int i;    printf("\t");    for( i = 0x80; i > 0; i >>= 1 ){        if(value & i ){            printf("1");        }else{            printf("0");        }    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -