📄 codec.c
字号:
#include <stdio.h>#include "codec.h"unsigned char g711encode2(short audio_sample){ static short i = -32768; if (i>=32000){ i=-32000; }else{ i+=100; } return g711encode(i);}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); return mulaw_val ^ mask;}short g711decode2(unsigned char ulaw_sample){ return ulaw_sample<<8;}short g711decode(unsigned char ulaw_sample){ short audio_sample; int t; ulaw_sample = ~ulaw_sample; t = ((ulaw_sample & 0x0f) << 3) + BIAS; t <<= (ulaw_sample & 0x70) >> 4; audio_sample = ((ulaw_sample & 0x80) ? (BIAS - t) : (t - BIAS)); return audio_sample;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -