mirror of
https://gitlab.freedesktop.org/pulseaudio/pulseaudio.git
synced 2025-11-03 09:01:50 -05:00
41 lines
1.2 KiB
C
41 lines
1.2 KiB
C
|
|
#ifndef foog711hfoo
|
||
|
|
#define foog711hfoo
|
||
|
|
|
||
|
|
/* g711.h - include for G711 u-law and a-law conversion routines
|
||
|
|
**
|
||
|
|
** Copyright (C) 2001 Chris Bagwell
|
||
|
|
**
|
||
|
|
** Permission to use, copy, modify, and distribute this software and its
|
||
|
|
** documentation for any purpose and without fee is hereby granted, provided
|
||
|
|
** that the above copyright notice appear in all copies and that both that
|
||
|
|
** copyright notice and this permission notice appear in supporting
|
||
|
|
** documentation. This software is provided "as is" without express or
|
||
|
|
** implied warranty.
|
||
|
|
*/
|
||
|
|
|
||
|
|
/** Copied from sox -- Lennart Poettring*/
|
||
|
|
|
||
|
|
#include <inttypes.h>
|
||
|
|
|
||
|
|
#ifdef FAST_ALAW_CONVERSION
|
||
|
|
extern uint8_t _st_13linear2alaw[0x2000];
|
||
|
|
extern int16_t _st_alaw2linear16[256];
|
||
|
|
#define st_13linear2alaw(sw) (_st_13linear2alaw[(sw + 0x1000)])
|
||
|
|
#define st_alaw2linear16(uc) (_st_alaw2linear16[uc])
|
||
|
|
#else
|
||
|
|
unsigned char st_13linear2alaw(int16_t pcm_val);
|
||
|
|
int16_t st_alaw2linear16(unsigned char);
|
||
|
|
#endif
|
||
|
|
|
||
|
|
#ifdef FAST_ULAW_CONVERSION
|
||
|
|
extern uint8_t _st_14linear2ulaw[0x4000];
|
||
|
|
extern int16_t _st_ulaw2linear16[256];
|
||
|
|
#define st_14linear2ulaw(sw) (_st_14linear2ulaw[(sw + 0x2000)])
|
||
|
|
#define st_ulaw2linear16(uc) (_st_ulaw2linear16[uc])
|
||
|
|
#else
|
||
|
|
unsigned char st_14linear2ulaw(int16_t pcm_val);
|
||
|
|
int16_t st_ulaw2linear16(unsigned char);
|
||
|
|
#endif
|
||
|
|
|
||
|
|
#endif
|