xref: /third_party/pulseaudio/src/pulsecore/g711.h (revision 53a5a1b3)
1#ifndef foog711hfoo
2#define foog711hfoo
3
4/* g711.h - include for G711 u-law and a-law conversion routines
5**
6** Copyright (C) 2001 Chris Bagwell
7**
8** Permission to use, copy, modify, and distribute this software and its
9** documentation for any purpose and without fee is hereby granted, provided
10** that the above copyright notice appear in all copies and that both that
11** copyright notice and this permission notice appear in supporting
12** documentation.  This software is provided "as is" without express or
13** implied warranty.
14*/
15
16/** Copied from sox -- Lennart Poettering */
17
18#include <inttypes.h>
19
20#ifdef FAST_ALAW_CONVERSION
21extern uint8_t _st_13linear2alaw[0x2000];
22extern int16_t _st_alaw2linear16[256];
23#define st_13linear2alaw(sw) (_st_13linear2alaw[(sw + 0x1000)])
24#define st_alaw2linear16(uc) (_st_alaw2linear16[uc])
25#else
26unsigned char st_13linear2alaw(int16_t pcm_val);
27int16_t st_alaw2linear16(unsigned char);
28#endif
29
30#ifdef FAST_ULAW_CONVERSION
31extern uint8_t _st_14linear2ulaw[0x4000];
32extern int16_t _st_ulaw2linear16[256];
33#define st_14linear2ulaw(sw) (_st_14linear2ulaw[(sw + 0x2000)])
34#define st_ulaw2linear16(uc) (_st_ulaw2linear16[uc])
35#else
36unsigned char st_14linear2ulaw(int16_t pcm_val);
37int16_t st_ulaw2linear16(unsigned char);
38#endif
39
40#endif
41