blob: 688dcb48f7d6546e1cb6b544168894e8f049fedb [file] [log] [blame]
liubin281ac462023-07-19 14:22:54 +08001#ifndef G711_PCM_CONVERT_H_
2#define G711_PCM_CONVERT_H_
3
4enum g711type {
5 G711ALAW,
6 G711ULAW
7};
8
9/**
10 * @brief pcm data encode to g711 data
11 *
12 * user should be responsible for pCodecbit memmory
13 *
14 * @param pCodecBits store g711 encoded data
15 * @param pBuffer pcm raw data
16 * @param BufferSize pcm data len
17 * @param type g711 data type
18 * @return int encode data length
19 */
20int G711EnCode(char* pCodecBits, char* pBuffer, int BufferSize, enum g711type type);
21
22/**
23 * @brief g711 data decode to pcm data
24 *
25 * user should be responsible for pRawData memmory
26 *
27 * @param pRawData store uncoded pcm data
28 * @param pBuffer g711 encoded data
29 * @param BufferSize g711 data len
30 * @param type g711 data type
31 * @return int pcm data len
32 */
33int G711Decode(char* pRawData, char* pBuffer, int BufferSize, enum g711type type);
34
35/**
36 * @brief g711 u-law data and a-law data convert
37 *
38 * @param alawdata g711 a-law data
39 * @param ulawdata g711 u-lwa data
40 * @param datasize input data length
41 * @param type target g711 data type
42 * @return int sucess:1; failed:0
43 */
44int G711TypeChange(unsigned char* alawdata, unsigned char* ulawdata, int datasize, enum g711type type);
45
46#endif /* G711_PCM_CONVERT_H_ */