/*下面分别定义了几个函数*/
int mpg123_synth_1to1_8bit(real * bandPtr, int channel, unsigned char *samples, int *pnt)
{
short samples_tmp[64];
short *tmp1 = samples_tmp + channel;
int i, ret;
int pnt1 = 0;
for (i = 0; i < 32; i++)
{
*samples = (*tmp1 >;>; ^ 128;
samples += 2;
tmp1 += 2;
}
*pnt += 64;
return ret;
}
int mpg123_synth_1to1_8bit_mono(real * bandPtr, unsigned char *samples, int *pnt)
{
short samples_tmp[64];
short *tmp1 = samples_tmp;
int i, ret;
int pnt1 = 0;
for (i = 0; i < 32; i++)
{
*samples++ = (*tmp1 >;>; ^ 128;
tmp1 += 2;
}
*pnt += 32;
return ret;
}
#if 0
int mpg123_synth_1to1_8bit_mono2stereo(real * bandPtr, unsigned char *samples, int *pnt)
{
short samples_tmp[64];
short *tmp1 = samples_tmp;
int i, ret;
int pnt1 = 0;
for (i = 0; i < 32; i++)
{
*samples++ = (*tmp1 >;>; ^ 128;
*samples++ = (*tmp1 >;>; ^ 128;
tmp1 += 2;
}
*pnt += 64;
return ret;
}
#endif
int mpg123_synth_1to1_mono(real * bandPtr, unsigned char *samples, int *pnt)
{
short samples_tmp[64];
short *tmp1 = samples_tmp;
int i, ret;
int pnt1 = 0;
for (i = 0; i < 32; i++)
{
((short *) samples)[1] = ((short *) samples)[0];
samples += 4;
}
return ret;
}
#endif
/*上面的几个函数中都调用了下面的这个函数*/
int mpg123_synth_1to1(real * bandPtr, int channel, unsigned char *out, int *pnt)
{
static real buffs[2][2][0x110];
static const int step = 2;
static int bo = 1;
short *samples = (short *) (out + *pnt);
real *b0, (*buf)[0x110];
int clip = 0;
int bo1;
int i = 0;
for (j = 15; j; j--, b0 -= 0x20, window -= 0x10, samples += step)
{
real sum;
sum = -*(--window) * *b0++;
sum -= *(--window) * *b0++;
sum -= *(--window) * *b0++;
sum -= *(--window) * *b0++;
sum -= *(--window) * *b0++;
sum -= *(--window) * *b0++;
sum -= *(--window) * *b0++;
sum -= *(--window) * *b0++;
sum -= *(--window) * *b0++;
sum -= *(--window) * *b0++;
sum -= *(--window) * *b0++;
sum -= *(--window) * *b0++;
sum -= *(--window) * *b0++;
sum -= *(--window) * *b0++;
sum -= *(--window) * *b0++;
sum -= *(--window) * *b0++;
WRITE_SAMPLE(samples, sum, clip);
}
}
*pnt += 128;
return clip;
}
请问各位大侠:
1、主要的函数int mpg123_synth_1to1,是怎么实现的?它的实现的思路是什么?
2、int mpg123_synth_1to1_8bit
int mpg123_synth_1to1_8bit_mono
int mpg123_synth_1to1_8bit_mono2stereo
int mpg123_synth_1to1_mono
int mpg123_synth_1to1_mono
int mpg123_synth_1to1_mono2stereo
这几个函数名分别是什么含义?即他们各实现的是什么功能?