mirror of
https://gitlab.freedesktop.org/pulseaudio/pulseaudio.git
synced 2025-11-07 13:30:03 -05:00
make untabify
git-svn-id: file:///home/lennart/svn/public/pulseaudio/branches/lennart@1472 fefdeb5f-60dc-0310-8127-8f9354f1896f
This commit is contained in:
parent
590ae20d4d
commit
69115687ad
11 changed files with 241 additions and 241 deletions
|
|
@ -568,7 +568,7 @@ int main(int argc, char *argv[]) {
|
||||||
assert(mainloop);
|
assert(mainloop);
|
||||||
|
|
||||||
if (!(c = pa_core_new(pa_mainloop_get_api(mainloop), !conf->disable_shm))) {
|
if (!(c = pa_core_new(pa_mainloop_get_api(mainloop), !conf->disable_shm))) {
|
||||||
pa_log("pa_core_new() failed.");
|
pa_log("pa_core_new() failed.");
|
||||||
goto finish;
|
goto finish;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -326,7 +326,7 @@ int pa_alsa_set_hw_params(snd_pcm_t *pcm_handle, pa_sample_spec *ss, uint32_t *p
|
||||||
if ((ret = snd_pcm_hw_params_malloc(&hwparams)) < 0 ||
|
if ((ret = snd_pcm_hw_params_malloc(&hwparams)) < 0 ||
|
||||||
(ret = snd_pcm_hw_params_any(pcm_handle, hwparams)) < 0 ||
|
(ret = snd_pcm_hw_params_any(pcm_handle, hwparams)) < 0 ||
|
||||||
(ret = snd_pcm_hw_params_set_rate_resample(pcm_handle, hwparams, 0)) < 0 ||
|
(ret = snd_pcm_hw_params_set_rate_resample(pcm_handle, hwparams, 0)) < 0 ||
|
||||||
(ret = snd_pcm_hw_params_set_access(pcm_handle, hwparams, SND_PCM_ACCESS_RW_INTERLEAVED)) < 0)
|
(ret = snd_pcm_hw_params_set_access(pcm_handle, hwparams, SND_PCM_ACCESS_RW_INTERLEAVED)) < 0)
|
||||||
goto finish;
|
goto finish;
|
||||||
|
|
||||||
if ((ret = set_format(pcm_handle, hwparams, &f)) < 0)
|
if ((ret = set_format(pcm_handle, hwparams, &f)) < 0)
|
||||||
|
|
|
||||||
|
|
@ -139,7 +139,7 @@ static int detect_oss(pa_core *c, int just_one) {
|
||||||
line[strcspn(line, "\r\n")] = 0;
|
line[strcspn(line, "\r\n")] = 0;
|
||||||
|
|
||||||
if (!b) {
|
if (!b) {
|
||||||
b = strcmp(line, "Audio devices:") == 0 || strcmp(line, "Installed devices:") == 0;
|
b = strcmp(line, "Audio devices:") == 0 || strcmp(line, "Installed devices:") == 0;
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -155,13 +155,13 @@ static int detect_oss(pa_core *c, int just_one) {
|
||||||
if (!pa_module_load(c, "module-oss", args))
|
if (!pa_module_load(c, "module-oss", args))
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
} else if (sscanf(line, "pcm%u: ", &device) == 1) {
|
} else if (sscanf(line, "pcm%u: ", &device) == 1) {
|
||||||
/* FreeBSD support, the devices are named /dev/dsp0.0, dsp0.1 and so on */
|
/* FreeBSD support, the devices are named /dev/dsp0.0, dsp0.1 and so on */
|
||||||
snprintf(args, sizeof(args), "device=/dev/dsp%u.0", device);
|
snprintf(args, sizeof(args), "device=/dev/dsp%u.0", device);
|
||||||
|
|
||||||
if (!pa_module_load(c, "module-oss", args))
|
if (!pa_module_load(c, "module-oss", args))
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
n++;
|
n++;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -99,7 +99,7 @@ success:
|
||||||
#ifdef DSP_CAP_BIND
|
#ifdef DSP_CAP_BIND
|
||||||
*pcaps & DSP_CAP_BIND ? " BIND" : "",
|
*pcaps & DSP_CAP_BIND ? " BIND" : "",
|
||||||
#else
|
#else
|
||||||
"",
|
"",
|
||||||
#endif
|
#endif
|
||||||
*pcaps & DSP_CAP_COPROC ? " COPROC" : "",
|
*pcaps & DSP_CAP_COPROC ? " COPROC" : "",
|
||||||
*pcaps & DSP_CAP_DUPLEX ? " DUPLEX" : "",
|
*pcaps & DSP_CAP_DUPLEX ? " DUPLEX" : "",
|
||||||
|
|
@ -122,7 +122,7 @@ success:
|
||||||
#ifdef DSP_CAP_MULTI
|
#ifdef DSP_CAP_MULTI
|
||||||
*pcaps & DSP_CAP_MULTI ? " MULTI" : "",
|
*pcaps & DSP_CAP_MULTI ? " MULTI" : "",
|
||||||
#else
|
#else
|
||||||
"",
|
"",
|
||||||
#endif
|
#endif
|
||||||
#ifdef DSP_CAP_OUTPUT
|
#ifdef DSP_CAP_OUTPUT
|
||||||
*pcaps & DSP_CAP_OUTPUT ? " OUTPUT" : "",
|
*pcaps & DSP_CAP_OUTPUT ? " OUTPUT" : "",
|
||||||
|
|
|
||||||
|
|
@ -37,7 +37,7 @@
|
||||||
*
|
*
|
||||||
* This library is distributed in the hope that it will be useful,
|
* This library is distributed in the hope that it will be useful,
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
* Lesser General Public License for more details.
|
* Lesser General Public License for more details.
|
||||||
*
|
*
|
||||||
* You should have received a copy of the GNU Lesser General Public
|
* You should have received a copy of the GNU Lesser General Public
|
||||||
|
|
|
||||||
|
|
@ -43,30 +43,30 @@
|
||||||
|
|
||||||
#include "g711.h"
|
#include "g711.h"
|
||||||
|
|
||||||
#define SIGN_BIT (0x80) /* Sign bit for a A-law byte. */
|
#define SIGN_BIT (0x80) /* Sign bit for a A-law byte. */
|
||||||
#define QUANT_MASK (0xf) /* Quantization field mask. */
|
#define QUANT_MASK (0xf) /* Quantization field mask. */
|
||||||
#define NSEGS (8) /* Number of A-law segments. */
|
#define NSEGS (8) /* Number of A-law segments. */
|
||||||
#define SEG_SHIFT (4) /* Left shift for segment number. */
|
#define SEG_SHIFT (4) /* Left shift for segment number. */
|
||||||
#define SEG_MASK (0x70) /* Segment field mask. */
|
#define SEG_MASK (0x70) /* Segment field mask. */
|
||||||
|
|
||||||
#if !defined(FAST_ALAW_CONVERSION) || !defined(FAST_ULAW_CONVERSION)
|
#if !defined(FAST_ALAW_CONVERSION) || !defined(FAST_ULAW_CONVERSION)
|
||||||
static int16_t seg_aend[8] = {0x1F, 0x3F, 0x7F, 0xFF,
|
static int16_t seg_aend[8] = {0x1F, 0x3F, 0x7F, 0xFF,
|
||||||
0x1FF, 0x3FF, 0x7FF, 0xFFF};
|
0x1FF, 0x3FF, 0x7FF, 0xFFF};
|
||||||
static int16_t seg_uend[8] = {0x3F, 0x7F, 0xFF, 0x1FF,
|
static int16_t seg_uend[8] = {0x3F, 0x7F, 0xFF, 0x1FF,
|
||||||
0x3FF, 0x7FF, 0xFFF, 0x1FFF};
|
0x3FF, 0x7FF, 0xFFF, 0x1FFF};
|
||||||
|
|
||||||
static int16_t search(
|
static int16_t search(
|
||||||
int16_t val,
|
int16_t val,
|
||||||
int16_t *table,
|
int16_t *table,
|
||||||
int size)
|
int size)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
for (i = 0; i < size; i++) {
|
for (i = 0; i < size; i++) {
|
||||||
if (val <= *table++)
|
if (val <= *table++)
|
||||||
return (i);
|
return (i);
|
||||||
}
|
}
|
||||||
return (size);
|
return (size);
|
||||||
}
|
}
|
||||||
#endif /* !FAST_*_CONVERSION */
|
#endif /* !FAST_*_CONVERSION */
|
||||||
|
|
||||||
|
|
@ -77,55 +77,55 @@ static int16_t search(
|
||||||
* the data shifted such that it only contains information in the lower
|
* the data shifted such that it only contains information in the lower
|
||||||
* 13-bits.
|
* 13-bits.
|
||||||
*
|
*
|
||||||
* Linear Input Code Compressed Code
|
* Linear Input Code Compressed Code
|
||||||
* ------------------------ ---------------
|
* ------------------------ ---------------
|
||||||
* 0000000wxyza 000wxyz
|
* 0000000wxyza 000wxyz
|
||||||
* 0000001wxyza 001wxyz
|
* 0000001wxyza 001wxyz
|
||||||
* 000001wxyzab 010wxyz
|
* 000001wxyzab 010wxyz
|
||||||
* 00001wxyzabc 011wxyz
|
* 00001wxyzabc 011wxyz
|
||||||
* 0001wxyzabcd 100wxyz
|
* 0001wxyzabcd 100wxyz
|
||||||
* 001wxyzabcde 101wxyz
|
* 001wxyzabcde 101wxyz
|
||||||
* 01wxyzabcdef 110wxyz
|
* 01wxyzabcdef 110wxyz
|
||||||
* 1wxyzabcdefg 111wxyz
|
* 1wxyzabcdefg 111wxyz
|
||||||
*
|
*
|
||||||
* For further information see John C. Bellamy's Digital Telephony, 1982,
|
* For further information see John C. Bellamy's Digital Telephony, 1982,
|
||||||
* John Wiley & Sons, pps 98-111 and 472-476.
|
* John Wiley & Sons, pps 98-111 and 472-476.
|
||||||
*/
|
*/
|
||||||
unsigned char st_13linear2alaw(
|
unsigned char st_13linear2alaw(
|
||||||
int16_t pcm_val) /* 2's complement (13-bit range) */
|
int16_t pcm_val) /* 2's complement (13-bit range) */
|
||||||
{
|
{
|
||||||
int16_t mask;
|
int16_t mask;
|
||||||
short seg;
|
short seg;
|
||||||
unsigned char aval;
|
unsigned char aval;
|
||||||
|
|
||||||
/* Have calling software do it since its already doing a shift
|
/* Have calling software do it since its already doing a shift
|
||||||
* from 32-bits down to 16-bits.
|
* from 32-bits down to 16-bits.
|
||||||
*/
|
*/
|
||||||
/* pcm_val = pcm_val >> 3; */
|
/* pcm_val = pcm_val >> 3; */
|
||||||
|
|
||||||
/* A-law using even bit inversion */
|
/* A-law using even bit inversion */
|
||||||
if (pcm_val >= 0) {
|
if (pcm_val >= 0) {
|
||||||
mask = 0xD5; /* sign (7th) bit = 1 */
|
mask = 0xD5; /* sign (7th) bit = 1 */
|
||||||
} else {
|
} else {
|
||||||
mask = 0x55; /* sign bit = 0 */
|
mask = 0x55; /* sign bit = 0 */
|
||||||
pcm_val = -pcm_val - 1;
|
pcm_val = -pcm_val - 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Convert the scaled magnitude to segment number. */
|
/* Convert the scaled magnitude to segment number. */
|
||||||
seg = search(pcm_val, seg_aend, 8);
|
seg = search(pcm_val, seg_aend, 8);
|
||||||
|
|
||||||
/* Combine the sign, segment, and quantization bits. */
|
/* Combine the sign, segment, and quantization bits. */
|
||||||
|
|
||||||
if (seg >= 8) /* out of range, return maximum value. */
|
if (seg >= 8) /* out of range, return maximum value. */
|
||||||
return (unsigned char) (0x7F ^ mask);
|
return (unsigned char) (0x7F ^ mask);
|
||||||
else {
|
else {
|
||||||
aval = (unsigned char) seg << SEG_SHIFT;
|
aval = (unsigned char) seg << SEG_SHIFT;
|
||||||
if (seg < 2)
|
if (seg < 2)
|
||||||
aval |= (pcm_val >> 1) & QUANT_MASK;
|
aval |= (pcm_val >> 1) & QUANT_MASK;
|
||||||
else
|
else
|
||||||
aval |= (pcm_val >> seg) & QUANT_MASK;
|
aval |= (pcm_val >> seg) & QUANT_MASK;
|
||||||
return (aval ^ mask);
|
return (aval ^ mask);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
@ -133,31 +133,31 @@ unsigned char st_13linear2alaw(
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
int16_t st_alaw2linear16(
|
int16_t st_alaw2linear16(
|
||||||
unsigned char a_val)
|
unsigned char a_val)
|
||||||
{
|
{
|
||||||
int16_t t;
|
int16_t t;
|
||||||
int16_t seg;
|
int16_t seg;
|
||||||
|
|
||||||
a_val ^= 0x55;
|
a_val ^= 0x55;
|
||||||
|
|
||||||
t = (a_val & QUANT_MASK) << 4;
|
t = (a_val & QUANT_MASK) << 4;
|
||||||
seg = ((unsigned)a_val & SEG_MASK) >> SEG_SHIFT;
|
seg = ((unsigned)a_val & SEG_MASK) >> SEG_SHIFT;
|
||||||
switch (seg) {
|
switch (seg) {
|
||||||
case 0:
|
case 0:
|
||||||
t += 8;
|
t += 8;
|
||||||
break;
|
break;
|
||||||
case 1:
|
case 1:
|
||||||
t += 0x108;
|
t += 0x108;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
t += 0x108;
|
t += 0x108;
|
||||||
t <<= seg - 1;
|
t <<= seg - 1;
|
||||||
}
|
}
|
||||||
return ((a_val & SIGN_BIT) ? t : -t);
|
return ((a_val & SIGN_BIT) ? t : -t);
|
||||||
}
|
}
|
||||||
#endif /* !FAST_ALAW_CONVERSION */
|
#endif /* !FAST_ALAW_CONVERSION */
|
||||||
|
|
||||||
#define BIAS (0x84) /* Bias for linear code. */
|
#define BIAS (0x84) /* Bias for linear code. */
|
||||||
#define CLIP 8159
|
#define CLIP 8159
|
||||||
|
|
||||||
#ifndef FAST_ULAW_CONVERSION
|
#ifndef FAST_ULAW_CONVERSION
|
||||||
|
|
@ -171,16 +171,16 @@ int16_t st_alaw2linear16(
|
||||||
* is biased by adding 33 which shifts the encoding range from (0 - 8158) to
|
* is biased by adding 33 which shifts the encoding range from (0 - 8158) to
|
||||||
* (33 - 8191). The result can be seen in the following encoding table:
|
* (33 - 8191). The result can be seen in the following encoding table:
|
||||||
*
|
*
|
||||||
* Biased Linear Input Code Compressed Code
|
* Biased Linear Input Code Compressed Code
|
||||||
* ------------------------ ---------------
|
* ------------------------ ---------------
|
||||||
* 00000001wxyza 000wxyz
|
* 00000001wxyza 000wxyz
|
||||||
* 0000001wxyzab 001wxyz
|
* 0000001wxyzab 001wxyz
|
||||||
* 000001wxyzabc 010wxyz
|
* 000001wxyzabc 010wxyz
|
||||||
* 00001wxyzabcd 011wxyz
|
* 00001wxyzabcd 011wxyz
|
||||||
* 0001wxyzabcde 100wxyz
|
* 0001wxyzabcde 100wxyz
|
||||||
* 001wxyzabcdef 101wxyz
|
* 001wxyzabcdef 101wxyz
|
||||||
* 01wxyzabcdefg 110wxyz
|
* 01wxyzabcdefg 110wxyz
|
||||||
* 1wxyzabcdefgh 111wxyz
|
* 1wxyzabcdefgh 111wxyz
|
||||||
*
|
*
|
||||||
* Each biased linear code has a leading 1 which identifies the segment
|
* Each biased linear code has a leading 1 which identifies the segment
|
||||||
* number. The value of the segment number is equal to 7 minus the number
|
* number. The value of the segment number is equal to 7 minus the number
|
||||||
|
|
@ -194,41 +194,41 @@ int16_t st_alaw2linear16(
|
||||||
* John Wiley & Sons, pps 98-111 and 472-476.
|
* John Wiley & Sons, pps 98-111 and 472-476.
|
||||||
*/
|
*/
|
||||||
unsigned char st_14linear2ulaw(
|
unsigned char st_14linear2ulaw(
|
||||||
int16_t pcm_val) /* 2's complement (14-bit range) */
|
int16_t pcm_val) /* 2's complement (14-bit range) */
|
||||||
{
|
{
|
||||||
int16_t mask;
|
int16_t mask;
|
||||||
int16_t seg;
|
int16_t seg;
|
||||||
unsigned char uval;
|
unsigned char uval;
|
||||||
|
|
||||||
/* Have calling software do it since its already doing a shift
|
/* Have calling software do it since its already doing a shift
|
||||||
* from 32-bits down to 16-bits.
|
* from 32-bits down to 16-bits.
|
||||||
*/
|
*/
|
||||||
/* pcm_val = pcm_val >> 2; */
|
/* pcm_val = pcm_val >> 2; */
|
||||||
|
|
||||||
/* u-law inverts all bits */
|
/* u-law inverts all bits */
|
||||||
/* Get the sign and the magnitude of the value. */
|
/* Get the sign and the magnitude of the value. */
|
||||||
if (pcm_val < 0) {
|
if (pcm_val < 0) {
|
||||||
pcm_val = -pcm_val;
|
pcm_val = -pcm_val;
|
||||||
mask = 0x7F;
|
mask = 0x7F;
|
||||||
} else {
|
} else {
|
||||||
mask = 0xFF;
|
mask = 0xFF;
|
||||||
}
|
}
|
||||||
if ( pcm_val > CLIP ) pcm_val = CLIP; /* clip the magnitude */
|
if ( pcm_val > CLIP ) pcm_val = CLIP; /* clip the magnitude */
|
||||||
pcm_val += (BIAS >> 2);
|
pcm_val += (BIAS >> 2);
|
||||||
|
|
||||||
/* Convert the scaled magnitude to segment number. */
|
/* Convert the scaled magnitude to segment number. */
|
||||||
seg = search(pcm_val, seg_uend, 8);
|
seg = search(pcm_val, seg_uend, 8);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Combine the sign, segment, quantization bits;
|
* Combine the sign, segment, quantization bits;
|
||||||
* and complement the code word.
|
* and complement the code word.
|
||||||
*/
|
*/
|
||||||
if (seg >= 8) /* out of range, return maximum value. */
|
if (seg >= 8) /* out of range, return maximum value. */
|
||||||
return (unsigned char) (0x7F ^ mask);
|
return (unsigned char) (0x7F ^ mask);
|
||||||
else {
|
else {
|
||||||
uval = (unsigned char) (seg << 4) | ((pcm_val >> (seg + 1)) & 0xF);
|
uval = (unsigned char) (seg << 4) | ((pcm_val >> (seg + 1)) & 0xF);
|
||||||
return (uval ^ mask);
|
return (uval ^ mask);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -242,21 +242,21 @@ unsigned char st_14linear2ulaw(
|
||||||
* original code word. This is in keeping with ISDN conventions.
|
* original code word. This is in keeping with ISDN conventions.
|
||||||
*/
|
*/
|
||||||
int16_t st_ulaw2linear16(
|
int16_t st_ulaw2linear16(
|
||||||
unsigned char u_val)
|
unsigned char u_val)
|
||||||
{
|
{
|
||||||
int16_t t;
|
int16_t t;
|
||||||
|
|
||||||
/* Complement to obtain normal u-law value. */
|
/* Complement to obtain normal u-law value. */
|
||||||
u_val = ~u_val;
|
u_val = ~u_val;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Extract and bias the quantization bits. Then
|
* Extract and bias the quantization bits. Then
|
||||||
* shift up by the segment number and subtract out the bias.
|
* shift up by the segment number and subtract out the bias.
|
||||||
*/
|
*/
|
||||||
t = ((u_val & QUANT_MASK) << 3) + BIAS;
|
t = ((u_val & QUANT_MASK) << 3) + BIAS;
|
||||||
t <<= ((unsigned)u_val & SEG_MASK) >> SEG_SHIFT;
|
t <<= ((unsigned)u_val & SEG_MASK) >> SEG_SHIFT;
|
||||||
|
|
||||||
return ((u_val & SIGN_BIT) ? (BIAS - t) : (t - BIAS));
|
return ((u_val & SIGN_BIT) ? (BIAS - t) : (t - BIAS));
|
||||||
}
|
}
|
||||||
#endif /* !FAST_ULAW_CONVERSION */
|
#endif /* !FAST_ULAW_CONVERSION */
|
||||||
|
|
||||||
|
|
@ -2413,52 +2413,52 @@ int main()
|
||||||
printf("int16_t _st_alaw2linear16[256] = {\n ");
|
printf("int16_t _st_alaw2linear16[256] = {\n ");
|
||||||
for (x = 0; x < 256; x++)
|
for (x = 0; x < 256; x++)
|
||||||
{
|
{
|
||||||
printf("%8d,", st_alaw2linear16(x));
|
printf("%8d,", st_alaw2linear16(x));
|
||||||
y++;
|
y++;
|
||||||
if (y == 7)
|
if (y == 7)
|
||||||
{
|
{
|
||||||
y = 0;
|
y = 0;
|
||||||
printf("\n ");
|
printf("\n ");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
printf("\n};\n\nuint8_t _st_13linear2alaw[0x2000] = {\n ");
|
printf("\n};\n\nuint8_t _st_13linear2alaw[0x2000] = {\n ");
|
||||||
y = 0;
|
y = 0;
|
||||||
for (x = 0; x < 0x2000; x++)
|
for (x = 0; x < 0x2000; x++)
|
||||||
{
|
{
|
||||||
printf(" 0x%02x,", st_13linear2alaw((-0x1000)+x));
|
printf(" 0x%02x,", st_13linear2alaw((-0x1000)+x));
|
||||||
y++;
|
y++;
|
||||||
if (y == 12)
|
if (y == 12)
|
||||||
{
|
{
|
||||||
y = 0;
|
y = 0;
|
||||||
printf("\n ");
|
printf("\n ");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
printf("\n};\n\nint16_t _st_ulaw2linear16[256] = {\n ");
|
printf("\n};\n\nint16_t _st_ulaw2linear16[256] = {\n ");
|
||||||
y = 0;
|
y = 0;
|
||||||
for (x = 0; x < 256; x++)
|
for (x = 0; x < 256; x++)
|
||||||
{
|
{
|
||||||
printf("%8d,", st_ulaw2linear16(x));
|
printf("%8d,", st_ulaw2linear16(x));
|
||||||
y++;
|
y++;
|
||||||
if (y == 7)
|
if (y == 7)
|
||||||
{
|
{
|
||||||
y = 0;
|
y = 0;
|
||||||
printf("\n ");
|
printf("\n ");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
printf("\n};\n\nuint8_t _st_14linear2ulaw[0x4000] = {\n ");
|
printf("\n};\n\nuint8_t _st_14linear2ulaw[0x4000] = {\n ");
|
||||||
y = 0;
|
y = 0;
|
||||||
for (x = 0; x < 0x4000; x++)
|
for (x = 0; x < 0x4000; x++)
|
||||||
{
|
{
|
||||||
printf(" 0x%02x,", st_14linear2ulaw((-0x2000)+x));
|
printf(" 0x%02x,", st_14linear2ulaw((-0x2000)+x));
|
||||||
y++;
|
y++;
|
||||||
if (y == 12)
|
if (y == 12)
|
||||||
{
|
{
|
||||||
y = 0;
|
y = 0;
|
||||||
printf("\n ");
|
printf("\n ");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
printf("\n};\n");
|
printf("\n};\n");
|
||||||
|
|
||||||
|
|
@ -2468,64 +2468,64 @@ int main()
|
||||||
/* The following is not used by SoX but kept for reference */
|
/* The following is not used by SoX but kept for reference */
|
||||||
#if 0
|
#if 0
|
||||||
/* copy from CCITT G.711 specifications */
|
/* copy from CCITT G.711 specifications */
|
||||||
unsigned char _u2a[128] = { /* u- to A-law conversions */
|
unsigned char _u2a[128] = { /* u- to A-law conversions */
|
||||||
1, 1, 2, 2, 3, 3, 4, 4,
|
1, 1, 2, 2, 3, 3, 4, 4,
|
||||||
5, 5, 6, 6, 7, 7, 8, 8,
|
5, 5, 6, 6, 7, 7, 8, 8,
|
||||||
9, 10, 11, 12, 13, 14, 15, 16,
|
9, 10, 11, 12, 13, 14, 15, 16,
|
||||||
17, 18, 19, 20, 21, 22, 23, 24,
|
17, 18, 19, 20, 21, 22, 23, 24,
|
||||||
25, 27, 29, 31, 33, 34, 35, 36,
|
25, 27, 29, 31, 33, 34, 35, 36,
|
||||||
37, 38, 39, 40, 41, 42, 43, 44,
|
37, 38, 39, 40, 41, 42, 43, 44,
|
||||||
46, 48, 49, 50, 51, 52, 53, 54,
|
46, 48, 49, 50, 51, 52, 53, 54,
|
||||||
55, 56, 57, 58, 59, 60, 61, 62,
|
55, 56, 57, 58, 59, 60, 61, 62,
|
||||||
64, 65, 66, 67, 68, 69, 70, 71,
|
64, 65, 66, 67, 68, 69, 70, 71,
|
||||||
72, 73, 74, 75, 76, 77, 78, 79,
|
72, 73, 74, 75, 76, 77, 78, 79,
|
||||||
/* corrected:
|
/* corrected:
|
||||||
81, 82, 83, 84, 85, 86, 87, 88,
|
81, 82, 83, 84, 85, 86, 87, 88,
|
||||||
should be: */
|
should be: */
|
||||||
80, 82, 83, 84, 85, 86, 87, 88,
|
80, 82, 83, 84, 85, 86, 87, 88,
|
||||||
89, 90, 91, 92, 93, 94, 95, 96,
|
89, 90, 91, 92, 93, 94, 95, 96,
|
||||||
97, 98, 99, 100, 101, 102, 103, 104,
|
97, 98, 99, 100, 101, 102, 103, 104,
|
||||||
105, 106, 107, 108, 109, 110, 111, 112,
|
105, 106, 107, 108, 109, 110, 111, 112,
|
||||||
113, 114, 115, 116, 117, 118, 119, 120,
|
113, 114, 115, 116, 117, 118, 119, 120,
|
||||||
121, 122, 123, 124, 125, 126, 127, 128};
|
121, 122, 123, 124, 125, 126, 127, 128};
|
||||||
|
|
||||||
unsigned char _a2u[128] = { /* A- to u-law conversions */
|
unsigned char _a2u[128] = { /* A- to u-law conversions */
|
||||||
1, 3, 5, 7, 9, 11, 13, 15,
|
1, 3, 5, 7, 9, 11, 13, 15,
|
||||||
16, 17, 18, 19, 20, 21, 22, 23,
|
16, 17, 18, 19, 20, 21, 22, 23,
|
||||||
24, 25, 26, 27, 28, 29, 30, 31,
|
24, 25, 26, 27, 28, 29, 30, 31,
|
||||||
32, 32, 33, 33, 34, 34, 35, 35,
|
32, 32, 33, 33, 34, 34, 35, 35,
|
||||||
36, 37, 38, 39, 40, 41, 42, 43,
|
36, 37, 38, 39, 40, 41, 42, 43,
|
||||||
44, 45, 46, 47, 48, 48, 49, 49,
|
44, 45, 46, 47, 48, 48, 49, 49,
|
||||||
50, 51, 52, 53, 54, 55, 56, 57,
|
50, 51, 52, 53, 54, 55, 56, 57,
|
||||||
58, 59, 60, 61, 62, 63, 64, 64,
|
58, 59, 60, 61, 62, 63, 64, 64,
|
||||||
65, 66, 67, 68, 69, 70, 71, 72,
|
65, 66, 67, 68, 69, 70, 71, 72,
|
||||||
/* corrected:
|
/* corrected:
|
||||||
73, 74, 75, 76, 77, 78, 79, 79,
|
73, 74, 75, 76, 77, 78, 79, 79,
|
||||||
should be: */
|
should be: */
|
||||||
73, 74, 75, 76, 77, 78, 79, 80,
|
73, 74, 75, 76, 77, 78, 79, 80,
|
||||||
|
|
||||||
80, 81, 82, 83, 84, 85, 86, 87,
|
80, 81, 82, 83, 84, 85, 86, 87,
|
||||||
88, 89, 90, 91, 92, 93, 94, 95,
|
88, 89, 90, 91, 92, 93, 94, 95,
|
||||||
96, 97, 98, 99, 100, 101, 102, 103,
|
96, 97, 98, 99, 100, 101, 102, 103,
|
||||||
104, 105, 106, 107, 108, 109, 110, 111,
|
104, 105, 106, 107, 108, 109, 110, 111,
|
||||||
112, 113, 114, 115, 116, 117, 118, 119,
|
112, 113, 114, 115, 116, 117, 118, 119,
|
||||||
120, 121, 122, 123, 124, 125, 126, 127};
|
120, 121, 122, 123, 124, 125, 126, 127};
|
||||||
|
|
||||||
/* A-law to u-law conversion */
|
/* A-law to u-law conversion */
|
||||||
unsigned char st_alaw2ulaw(
|
unsigned char st_alaw2ulaw(
|
||||||
unsigned char aval)
|
unsigned char aval)
|
||||||
{
|
{
|
||||||
aval &= 0xff;
|
aval &= 0xff;
|
||||||
return (unsigned char) ((aval & 0x80) ? (0xFF ^ _a2u[aval ^ 0xD5]) :
|
return (unsigned char) ((aval & 0x80) ? (0xFF ^ _a2u[aval ^ 0xD5]) :
|
||||||
(0x7F ^ _a2u[aval ^ 0x55]));
|
(0x7F ^ _a2u[aval ^ 0x55]));
|
||||||
}
|
}
|
||||||
|
|
||||||
/* u-law to A-law conversion */
|
/* u-law to A-law conversion */
|
||||||
unsigned char st_ulaw2alaw(
|
unsigned char st_ulaw2alaw(
|
||||||
unsigned char uval)
|
unsigned char uval)
|
||||||
{
|
{
|
||||||
uval &= 0xff;
|
uval &= 0xff;
|
||||||
return (unsigned char) ((uval & 0x80) ? (0xD5 ^ (_u2a[0xFF ^ uval] - 1)) :
|
return (unsigned char) ((uval & 0x80) ? (0xD5 ^ (_u2a[0xFF ^ uval] - 1)) :
|
||||||
(unsigned char) (0x55 ^ (_u2a[0x7F ^ uval] - 1)));
|
(unsigned char) (0x55 ^ (_u2a[0x7F ^ uval] - 1)));
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
|
||||||
|
|
@ -149,14 +149,14 @@ int pipe(int filedes[2]) {
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
error:
|
error:
|
||||||
if (listener >= 0)
|
if (listener >= 0)
|
||||||
pa_close(listener);
|
pa_close(listener);
|
||||||
if (filedes[0] >= 0)
|
if (filedes[0] >= 0)
|
||||||
pa_close(filedes[0]);
|
pa_close(filedes[0]);
|
||||||
if (filedes[1] >= 0)
|
if (filedes[1] >= 0)
|
||||||
pa_close(filedes[0]);
|
pa_close(filedes[0]);
|
||||||
|
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif /* HAVE_PIPE */
|
#endif /* HAVE_PIPE */
|
||||||
|
|
|
||||||
|
|
@ -113,7 +113,7 @@ int pa_shm_create_rw(pa_shm *m, size_t size, int shared, mode_t mode) {
|
||||||
close(fd);
|
close(fd);
|
||||||
m->do_unlink = 1;
|
m->do_unlink = 1;
|
||||||
#else
|
#else
|
||||||
return -1;
|
return -1;
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -139,36 +139,36 @@ void pa_shm_free(pa_shm *m) {
|
||||||
assert(m->size > 0);
|
assert(m->size > 0);
|
||||||
|
|
||||||
#ifdef MAP_FAILED
|
#ifdef MAP_FAILED
|
||||||
assert(m->ptr != MAP_FAILED);
|
assert(m->ptr != MAP_FAILED);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
if (!m->shared) {
|
if (!m->shared) {
|
||||||
#ifdef MAP_ANONYMOUS
|
#ifdef MAP_ANONYMOUS
|
||||||
if (munmap(m->ptr, m->size) < 0)
|
if (munmap(m->ptr, m->size) < 0)
|
||||||
pa_log("munmap() failed: %s", pa_cstrerror(errno));
|
pa_log("munmap() failed: %s", pa_cstrerror(errno));
|
||||||
#elif defined(HAVE_POSIX_MEMALIGN)
|
#elif defined(HAVE_POSIX_MEMALIGN)
|
||||||
free(m->ptr);
|
free(m->ptr);
|
||||||
#else
|
#else
|
||||||
pa_xfree(m->ptr);
|
pa_xfree(m->ptr);
|
||||||
#endif
|
#endif
|
||||||
} else {
|
} else {
|
||||||
#ifdef HAVE_SHM_OPEN
|
#ifdef HAVE_SHM_OPEN
|
||||||
if (munmap(m->ptr, m->size) < 0)
|
if (munmap(m->ptr, m->size) < 0)
|
||||||
pa_log("munmap() failed: %s", pa_cstrerror(errno));
|
pa_log("munmap() failed: %s", pa_cstrerror(errno));
|
||||||
|
|
||||||
if (m->do_unlink) {
|
if (m->do_unlink) {
|
||||||
char fn[32];
|
char fn[32];
|
||||||
|
|
||||||
segment_name(fn, sizeof(fn), m->id);
|
segment_name(fn, sizeof(fn), m->id);
|
||||||
|
|
||||||
if (shm_unlink(fn) < 0)
|
if (shm_unlink(fn) < 0)
|
||||||
pa_log(" shm_unlink(%s) failed: %s", fn, pa_cstrerror(errno));
|
pa_log(" shm_unlink(%s) failed: %s", fn, pa_cstrerror(errno));
|
||||||
}
|
}
|
||||||
#else
|
#else
|
||||||
/* We shouldn't be here without shm support */
|
/* We shouldn't be here without shm support */
|
||||||
assert(0);
|
assert(0);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
memset(m, 0, sizeof(*m));
|
memset(m, 0, sizeof(*m));
|
||||||
}
|
}
|
||||||
|
|
@ -182,7 +182,7 @@ void pa_shm_punch(pa_shm *m, size_t offset, size_t size) {
|
||||||
assert(offset+size <= m->size);
|
assert(offset+size <= m->size);
|
||||||
|
|
||||||
#ifdef MAP_FAILED
|
#ifdef MAP_FAILED
|
||||||
assert(m->ptr != MAP_FAILED);
|
assert(m->ptr != MAP_FAILED);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* You're welcome to implement this as NOOP on systems that don't
|
/* You're welcome to implement this as NOOP on systems that don't
|
||||||
|
|
@ -270,7 +270,7 @@ fail:
|
||||||
#else /* HAVE_SHM_OPEN */
|
#else /* HAVE_SHM_OPEN */
|
||||||
|
|
||||||
int pa_shm_attach_ro(pa_shm *m, unsigned id) {
|
int pa_shm_attach_ro(pa_shm *m, unsigned id) {
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif /* HAVE_SHM_OPEN */
|
#endif /* HAVE_SHM_OPEN */
|
||||||
|
|
|
||||||
|
|
@ -435,7 +435,7 @@ pa_socket_client* pa_socket_client_new_string(pa_mainloop_api *m, const char*nam
|
||||||
switch (a.type) {
|
switch (a.type) {
|
||||||
case PA_PARSED_ADDRESS_UNIX:
|
case PA_PARSED_ADDRESS_UNIX:
|
||||||
if ((c = pa_socket_client_new_unix(m, a.path_or_host)))
|
if ((c = pa_socket_client_new_unix(m, a.path_or_host)))
|
||||||
start_timeout(c);
|
start_timeout(c);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case PA_PARSED_ADDRESS_TCP4: /* Fallthrough */
|
case PA_PARSED_ADDRESS_TCP4: /* Fallthrough */
|
||||||
|
|
@ -479,7 +479,7 @@ pa_socket_client* pa_socket_client_new_string(pa_mainloop_api *m, const char*nam
|
||||||
if (res->ai_addr) {
|
if (res->ai_addr) {
|
||||||
if ((c = pa_socket_client_new_sockaddr(m, res->ai_addr, res->ai_addrlen)))
|
if ((c = pa_socket_client_new_sockaddr(m, res->ai_addr, res->ai_addrlen)))
|
||||||
start_timeout(c);
|
start_timeout(c);
|
||||||
}
|
}
|
||||||
|
|
||||||
freeaddrinfo(res);
|
freeaddrinfo(res);
|
||||||
#else /* HAVE_GETADDRINFO */
|
#else /* HAVE_GETADDRINFO */
|
||||||
|
|
@ -507,7 +507,7 @@ pa_socket_client* pa_socket_client_new_string(pa_mainloop_api *m, const char*nam
|
||||||
s.sin_port = htons(a.port);
|
s.sin_port = htons(a.port);
|
||||||
|
|
||||||
if ((c = pa_socket_client_new_sockaddr(m, (struct sockaddr*)&s, sizeof(s))))
|
if ((c = pa_socket_client_new_sockaddr(m, (struct sockaddr*)&s, sizeof(s))))
|
||||||
start_timeout(c);
|
start_timeout(c);
|
||||||
#endif /* HAVE_GETADDRINFO */
|
#endif /* HAVE_GETADDRINFO */
|
||||||
}
|
}
|
||||||
#endif /* HAVE_LIBASYNCNS */
|
#endif /* HAVE_LIBASYNCNS */
|
||||||
|
|
|
||||||
|
|
@ -177,7 +177,7 @@ int pa_socket_tcp_low_delay(int fd) {
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(IPTOS_LOWDELAY) && defined(IP_TOS) && (defined(SOL_IP) || \
|
#if defined(IPTOS_LOWDELAY) && defined(IP_TOS) && (defined(SOL_IP) || \
|
||||||
defined(IPPROTO_IP))
|
defined(IPPROTO_IP))
|
||||||
tos = IPTOS_LOWDELAY;
|
tos = IPTOS_LOWDELAY;
|
||||||
#ifdef SOL_IP
|
#ifdef SOL_IP
|
||||||
if (setsockopt(fd, SOL_IP, IP_TOS, (void*)&tos, sizeof(tos)) < 0)
|
if (setsockopt(fd, SOL_IP, IP_TOS, (void*)&tos, sizeof(tos)) < 0)
|
||||||
|
|
|
||||||
|
|
@ -259,9 +259,9 @@ if (!(i)->context || pa_context_get_state((i)->context) != PA_CONTEXT_READY || \
|
||||||
|
|
||||||
static void debug(int level, const char *format, ...) PA_GCC_PRINTF_ATTR(2,3);
|
static void debug(int level, const char *format, ...) PA_GCC_PRINTF_ATTR(2,3);
|
||||||
|
|
||||||
#define DEBUG_LEVEL_ALWAYS 0
|
#define DEBUG_LEVEL_ALWAYS 0
|
||||||
#define DEBUG_LEVEL_NORMAL 1
|
#define DEBUG_LEVEL_NORMAL 1
|
||||||
#define DEBUG_LEVEL_VERBOSE 2
|
#define DEBUG_LEVEL_VERBOSE 2
|
||||||
|
|
||||||
static void debug(int level, const char *format, ...) {
|
static void debug(int level, const char *format, ...) {
|
||||||
va_list ap;
|
va_list ap;
|
||||||
|
|
@ -421,7 +421,7 @@ static void fd_info_unref(fd_info *i) {
|
||||||
pthread_mutex_lock(&i->mutex);
|
pthread_mutex_lock(&i->mutex);
|
||||||
assert(i->ref >= 1);
|
assert(i->ref >= 1);
|
||||||
r = --i->ref;
|
r = --i->ref;
|
||||||
debug(DEBUG_LEVEL_VERBOSE, __FILE__": ref--, now %i\n", i->ref);
|
debug(DEBUG_LEVEL_VERBOSE, __FILE__": ref--, now %i\n", i->ref);
|
||||||
pthread_mutex_unlock(&i->mutex);
|
pthread_mutex_unlock(&i->mutex);
|
||||||
|
|
||||||
if (r <= 0)
|
if (r <= 0)
|
||||||
|
|
@ -1395,7 +1395,7 @@ static int sndstat_open(int flags, int *_errno) {
|
||||||
|
|
||||||
if (flags != O_RDONLY
|
if (flags != O_RDONLY
|
||||||
#ifdef O_LARGEFILE
|
#ifdef O_LARGEFILE
|
||||||
&& flags != (O_RDONLY|O_LARGEFILE)
|
&& flags != (O_RDONLY|O_LARGEFILE)
|
||||||
#endif
|
#endif
|
||||||
) {
|
) {
|
||||||
*_errno = EACCES;
|
*_errno = EACCES;
|
||||||
|
|
@ -1446,7 +1446,7 @@ int open(const char *filename, int flags, ...) {
|
||||||
va_start(args, flags);
|
va_start(args, flags);
|
||||||
if (flags & O_CREAT) {
|
if (flags & O_CREAT) {
|
||||||
if (sizeof(mode_t) < sizeof(int))
|
if (sizeof(mode_t) < sizeof(int))
|
||||||
mode = va_arg(args, int);
|
mode = va_arg(args, int);
|
||||||
else
|
else
|
||||||
mode = va_arg(args, mode_t);
|
mode = va_arg(args, mode_t);
|
||||||
}
|
}
|
||||||
|
|
@ -2023,9 +2023,9 @@ static int dsp_ioctl(fd_info *i, unsigned long request, void*argp, int *_errno)
|
||||||
|
|
||||||
*(int*) argp = DSP_CAP_DUPLEX | DSP_CAP_TRIGGER
|
*(int*) argp = DSP_CAP_DUPLEX | DSP_CAP_TRIGGER
|
||||||
#ifdef DSP_CAP_MULTI
|
#ifdef DSP_CAP_MULTI
|
||||||
| DSP_CAP_MULTI
|
| DSP_CAP_MULTI
|
||||||
#endif
|
#endif
|
||||||
;
|
;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case SNDCTL_DSP_GETODELAY: {
|
case SNDCTL_DSP_GETODELAY: {
|
||||||
|
|
@ -2279,8 +2279,8 @@ static int dsp_ioctl(fd_info *i, unsigned long request, void*argp, int *_errno)
|
||||||
|
|
||||||
case SNDCTL_DSP_SETDUPLEX:
|
case SNDCTL_DSP_SETDUPLEX:
|
||||||
debug(DEBUG_LEVEL_NORMAL, __FILE__": SNDCTL_DSP_SETDUPLEX\n");
|
debug(DEBUG_LEVEL_NORMAL, __FILE__": SNDCTL_DSP_SETDUPLEX\n");
|
||||||
/* this is a no-op */
|
/* this is a no-op */
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
debug(DEBUG_LEVEL_NORMAL, __FILE__": unknown ioctl 0x%08lx\n", request);
|
debug(DEBUG_LEVEL_NORMAL, __FILE__": unknown ioctl 0x%08lx\n", request);
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue