提交 1d99b900 authored 作者: Anthony Minessale's avatar Anthony Minessale

update to snapshot spandsp-20080911.tar.gz

git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@9767 d0543943-73ff-0310-b7d9-9358b9ac24b2
上级 61cd1f82
Wed Sep 3 14:32:49 CDT 2008
Tue Sep 30 23:52:21 EDT 2008
......@@ -35,7 +35,6 @@
<!ELEMENT call-waiting-tone (step)* >
<!ATTLIST call-waiting-tone
domain CDATA #IMPLIED
type CDATA #IMPLIED
>
<!ELEMENT pay-tone (step)* >
<!ATTLIST pay-tone
......@@ -191,5 +190,4 @@
level CDATA #IMPLIED
length CDATA #IMPLIED
recorded-announcement CDATA #IMPLIED
recognition-length CDATA #IMPLIED
>
This source diff could not be displayed because it is too large. You can view the blob instead.
......@@ -22,7 +22,7 @@
* License along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
* $Id: dds_int.c,v 1.10 2008/09/01 16:07:33 steveu Exp $
* $Id: dds_int.c,v 1.11 2008/09/11 15:13:42 steveu Exp $
*/
/*! \file */
......@@ -252,11 +252,11 @@ int16_t dds(uint32_t *phase_acc, int32_t phase_rate)
}
/*- End of function --------------------------------------------------------*/
int16_t dds_mod(uint32_t *phase_acc, int32_t phase_rate, int scale, int32_t phase)
int16_t dds_mod(uint32_t *phase_acc, int32_t phase_rate, int16_t scale, int32_t phase)
{
int16_t amp;
amp = (int16_t) ((dds_lookup(*phase_acc + phase)*scale) >> 15);
amp = (int16_t) (((int32_t) dds_lookup(*phase_acc + phase)*(int32_t) scale) >> 15);
*phase_acc += phase_rate;
return amp;
}
......@@ -278,12 +278,12 @@ complexi_t dds_complexi(uint32_t *phase_acc, int32_t phase_rate)
}
/*- End of function --------------------------------------------------------*/
complexi_t dds_complexi_mod(uint32_t *phase_acc, int32_t phase_rate, int scale, int32_t phase)
complexi_t dds_complexi_mod(uint32_t *phase_acc, int32_t phase_rate, int16_t scale, int32_t phase)
{
complexi_t amp;
amp = complex_seti((dds_lookup(*phase_acc + phase + (1 << 30))*scale) >> 15,
(dds_lookup(*phase_acc + phase)*scale) >> 15);
amp = complex_seti(((int32_t) dds_lookup(*phase_acc + phase + (1 << 30))*(int32_t) scale) >> 15,
((int32_t) dds_lookup(*phase_acc + phase)*(int32_t) scale) >> 15);
*phase_acc += phase_rate;
return amp;
}
......@@ -305,12 +305,12 @@ complexi16_t dds_complexi16(uint32_t *phase_acc, int32_t phase_rate)
}
/*- End of function --------------------------------------------------------*/
complexi16_t dds_complexi16_mod(uint32_t *phase_acc, int32_t phase_rate, int scale, int32_t phase)
complexi16_t dds_complexi16_mod(uint32_t *phase_acc, int32_t phase_rate, int16_t scale, int32_t phase)
{
complexi16_t amp;
amp = complex_seti16((dds_lookup(*phase_acc + phase + (1 << 30))*scale) >> 15,
(dds_lookup(*phase_acc + phase)*scale) >> 15);
amp = complex_seti16(((int32_t) dds_lookup(*phase_acc + phase + (1 << 30))*(int32_t) scale) >> 15,
((int32_t) dds_lookup(*phase_acc + phase)*(int32_t) scale) >> 15);
*phase_acc += phase_rate;
return amp;
}
......@@ -332,12 +332,12 @@ complexi32_t dds_complexi32(uint32_t *phase_acc, int32_t phase_rate)
}
/*- End of function --------------------------------------------------------*/
complexi32_t dds_complexi32_mod(uint32_t *phase_acc, int32_t phase_rate, int scale, int32_t phase)
complexi32_t dds_complexi32_mod(uint32_t *phase_acc, int32_t phase_rate, int16_t scale, int32_t phase)
{
complexi32_t amp;
amp = complex_seti32((dds_lookup(*phase_acc + phase + (1 << 30))*scale) >> 15,
(dds_lookup(*phase_acc + phase)*scale) >> 15);
amp = complex_seti32(((int32_t) dds_lookup(*phase_acc + phase + (1 << 30))*(int32_t) scale) >> 15,
((int32_t) dds_lookup(*phase_acc + phase)*(int32_t) scale) >> 15);
*phase_acc += phase_rate;
return amp;
}
......
......@@ -22,7 +22,7 @@
* License along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
* $Id: dds.h,v 1.20 2008/09/04 14:40:05 steveu Exp $
* $Id: dds.h,v 1.21 2008/09/11 15:13:42 steveu Exp $
*/
/*! \file */
......@@ -98,7 +98,7 @@ int16_t dds_lookup(uint32_t phase);
\param phase The phase offset.
\return The signal amplitude, between -32767 and 32767.
*/
int16_t dds_mod(uint32_t *phase_acc, int32_t phase_rate, int scale, int32_t phase);
int16_t dds_mod(uint32_t *phase_acc, int32_t phase_rate, int16_t scale, int32_t phase);
/*! \brief Lookup the complex integer value of a specified phase.
\param phase The phase accumulator value to be looked up.
......@@ -120,7 +120,7 @@ complexi_t dds_complexi(uint32_t *phase_acc, int32_t phase_rate);
\param phase The phase offset.
\return The complex signal amplitude, between (-32767, -32767) and (32767, 32767).
*/
complexi_t dds_complexi_mod(uint32_t *phase_acc, int32_t phase_rate, int scale, int32_t phase);
complexi_t dds_complexi_mod(uint32_t *phase_acc, int32_t phase_rate, int16_t scale, int32_t phase);
/*! \brief Generate a complex 16 bit integer tone sample.
\param phase_acc A pointer to a phase accumulator value.
......@@ -143,7 +143,7 @@ complexi16_t dds_complexi16(uint32_t *phase_acc, int32_t phase_rate);
\param phase The phase offset.
\return The complex signal amplitude, between (-32767, -32767) and (32767, 32767).
*/
complexi16_t dds_complexi16_mod(uint32_t *phase_acc, int32_t phase_rate, int scale, int32_t phase);
complexi16_t dds_complexi16_mod(uint32_t *phase_acc, int32_t phase_rate, int16_t scale, int32_t phase);
/*! \brief Generate a complex 32 bit integer tone sample, with modulation.
\param phase_acc A pointer to a phase accumulator value.
......@@ -152,7 +152,7 @@ complexi16_t dds_complexi16_mod(uint32_t *phase_acc, int32_t phase_rate, int sca
\param phase The phase offset.
\return The complex signal amplitude, between (-32767, -32767) and (32767, 32767).
*/
complexi32_t dds_complexi32_mod(uint32_t *phase_acc, int32_t phase_rate, int scale, int32_t phase);
complexi32_t dds_complexi32_mod(uint32_t *phase_acc, int32_t phase_rate, int16_t scale, int32_t phase);
/*! \brief Generate a complex 32 bit integer tone sample.
\param phase_acc A pointer to a phase accumulator value.
......@@ -175,7 +175,7 @@ complexi32_t dds_complexi32(uint32_t *phase_acc, int32_t phase_rate);
\param phase The phase offset.
\return The complex signal amplitude, between (-32767, -32767) and (32767, 32767).
*/
complexi32_t dds_complexi32_mod(uint32_t *phase_acc, int32_t phase_rate, int scale, int32_t phase);
complexi32_t dds_complexi32_mod(uint32_t *phase_acc, int32_t phase_rate, int16_t scale, int32_t phase);
/*! \brief Find the phase rate equivalent to a frequency, in Hz.
\param frequency The frequency, in Hz.
......
......@@ -22,7 +22,7 @@
* License along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
* $Id: tone_generate.h,v 1.33 2008/04/17 14:27:01 steveu Exp $
* $Id: tone_generate.h,v 1.34 2008/09/11 15:13:42 steveu Exp $
*/
/*! \file */
......@@ -48,7 +48,11 @@ conditions in which we will use it.
typedef struct
{
int32_t phase_rate;
#if defined(SPANDSP_USE_FIXED_POINT)
int16_t gain;
#else
float gain;
#endif
} tone_gen_tone_descriptor_t;
/*!
......
......@@ -30,8 +30,8 @@
/* The date and time of the version are in UTC form. */
#define SPANDSP_RELEASE_DATE 20080909
#define SPANDSP_RELEASE_TIME 162813
#define SPANDSP_RELEASE_DATE 20080911
#define SPANDSP_RELEASE_TIME 151652
#endif
/*- End of file ------------------------------------------------------------*/
差异被折叠。
......@@ -22,7 +22,7 @@
* License along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
* $Id: tone_generate.c,v 1.43 2008/07/02 14:48:26 steveu Exp $
* $Id: tone_generate.c,v 1.46 2008/09/11 15:13:42 steveu Exp $
*/
/*! \file */
......@@ -72,15 +72,27 @@ void make_tone_gen_descriptor(tone_gen_descriptor_t *s,
memset(s, 0, sizeof(*s));
if (f1)
{
#if defined(SPANDSP_USE_FIXED_POINT)
s->tone[0].phase_rate = dds_phase_rate((float) f1);
if (f2 < 0)
s->tone[0].phase_rate = -s->tone[0].phase_rate;
s->tone[0].gain = dds_scaling_dbm0((float) l1);
#else
s->tone[0].phase_rate = dds_phase_ratef((float) f1);
if (f2 < 0)
s->tone[0].phase_rate = -s->tone[0].phase_rate;
s->tone[0].gain = dds_scaling_dbm0f((float) l1);
#endif
}
if (f2)
{
#if defined(SPANDSP_USE_FIXED_POINT)
s->tone[1].phase_rate = dds_phase_rate((float) abs(f2));
s->tone[1].gain = (f2 < 0) ? (float) 32767.0f*l2/100.0f : dds_scaling_dbm0((float) l2);
#else
s->tone[1].phase_rate = dds_phase_ratef((float) abs(f2));
s->tone[1].gain = (f2 < 0) ? (float) l2/100.0f : dds_scaling_dbm0f((float) l2);
#endif
}
s->duration[0] = d1*SAMPLE_RATE/1000;
......@@ -118,7 +130,11 @@ int tone_gen(tone_gen_state_t *s, int16_t amp[], int max_samples)
{
int samples;
int limit;
#if defined(SPANDSP_USE_FIXED_POINT)
int16_t xamp;
#else
float xamp;
#endif
int i;
if (s->current_section < 0)
......@@ -141,30 +157,49 @@ int tone_gen(tone_gen_state_t *s, int16_t amp[], int max_samples)
{
if (s->tone[0].phase_rate < 0)
{
/* Modulated tone */
for ( ; samples < limit; samples++)
{
/* There must be two, and only two tones */
/* There must be two, and only two, tones */
#if defined(SPANDSP_USE_FIXED_POINT)
xamp = ((int32_t) dds_mod(&s->phase[0], -s->tone[0].phase_rate, s->tone[0].gain, 0)
*(32767 + (int32_t) dds_mod(&s->phase[1], s->tone[1].phase_rate, s->tone[1].gain, 0))) >> 15;
amp[samples] = xamp;
#else
xamp = dds_modf(&s->phase[0], -s->tone[0].phase_rate, s->tone[0].gain, 0)
*(1.0f + dds_modf(&s->phase[1], s->tone[1].phase_rate, s->tone[1].gain, 0));
amp[samples] = (int16_t) lrintf(xamp);
#endif
}
}
else
{
for ( ; samples < limit; samples++)
{
#if defined(SPANDSP_USE_FIXED_POINT)
xamp = 0;
#else
xamp = 0.0f;
#endif
for (i = 0; i < 4; i++)
{
if (s->tone[i].phase_rate == 0)
break;
#if defined(SPANDSP_USE_FIXED_POINT)
xamp += dds_mod(&s->phase[i], s->tone[i].phase_rate, s->tone[i].gain, 0);
#else
xamp += dds_modf(&s->phase[i], s->tone[i].phase_rate, s->tone[i].gain, 0);
#endif
}
/* Saturation of the answer is the right thing at this point.
However, we are normally generating well controlled tones,
that cannot clip. So, the overhead of doing saturation is
a waste of valuable time. */
#if defined(SPANDSP_USE_FIXED_POINT)
amp[samples] = xamp;
#else
amp[samples] = (int16_t) lrintf(xamp);
#endif
}
}
}
......
......@@ -16,7 +16,7 @@
## along with this program; if not, write to the Free Software
## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
##
## $Id: Makefile.am,v 1.1 2008/07/10 12:44:54 steveu Exp $
## $Id: Makefile.am,v 1.2 2008/09/10 16:55:15 steveu Exp $
AM_CFLAGS = $(COMP_VENDOR_CFLAGS)
......@@ -25,13 +25,17 @@ FAX2TIFF = fax2tiff
EXTRA_DIST =
nobase_data_DATA = etsi_300_242_white.tif \
etsi_300_242_stairstep.tif \
etsi_300_242_diago1.tif \
etsi_300_242_diago2.tif \
etsi_300_242_impress.tif \
etsi_300_242_error.tif
nobase_data_DATA = etsi_300_242_a4_diago1.tif \
etsi_300_242_a4_diago2.tif \
etsi_300_242_a4_duration1.tif \
etsi_300_242_a4_duration2.tif \
etsi_300_242_a4_error.tif \
etsi_300_242_a4_impress.tif \
etsi_300_242_a4_impress_white.tif \
etsi_300_242_a4_stairstep.tif \
etsi_300_242_a4_white.tif \
etsi_300_242_a4_white_2p.tif
noinst_PROGRAMS = generate_etsi_300_242_pages
generate_etsi_300_242_pages_SOURCES = generate_etsi_300_242_pages.c
......@@ -46,10 +50,14 @@ clean:
.pbm.g3:
${PBM2G3} $*.pbm >$*.g3
etsi_300_242_white.tif \
etsi_300_242_stairstep.tif \
etsi_300_242_diago1.tif \
etsi_300_242_diago2.tif \
etsi_300_242_impress.tif \
etsi_300_242_error.tif: generate_etsi_300_242_pages$(EXEEXT)
etsi_300_242_a4_diago1.tif \
etsi_300_242_a4_diago2.tif \
etsi_300_242_a4_duration1.tif \
etsi_300_242_a4_duration2.tif \
etsi_300_242_a4_error.tif \
etsi_300_242_a4_impress.tif \
etsi_300_242_a4_impress_white.tif \
etsi_300_242_a4_stairstep.tif \
etsi_300_242_a4_white.tif \
etsi_300_242_a4_white_2p.tif: generate_etsi_300_242_pages$(EXEEXT)
./generate_etsi_300_242_pages$(EXEEXT)
......@@ -22,7 +22,7 @@
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
* $Id: generate_etsi_300_242_pages.c,v 1.1 2008/07/10 12:44:54 steveu Exp $
* $Id: generate_etsi_300_242_pages.c,v 1.2 2008/09/10 16:55:15 steveu Exp $
*/
/*! \file */
......@@ -61,7 +61,7 @@ struct
} sequence[] =
{
{
"etsi_300_242_white.tif",
"etsi_300_242_a4_diago1.tif",
T4_X_RESOLUTION_R8,
T4_Y_RESOLUTION_STANDARD,
T4_WIDTH_R8_A4,
......@@ -70,7 +70,7 @@ struct
0
},
{
"etsi_300_242_stairstep.tif",
"etsi_300_242_a4_diago2.tif",
T4_X_RESOLUTION_R8,
T4_Y_RESOLUTION_STANDARD,
T4_WIDTH_R8_A4,
......@@ -79,7 +79,7 @@ struct
1
},
{
"etsi_300_242_diago1.tif",
"etsi_300_242_a4_duration1.tif",
T4_X_RESOLUTION_R8,
T4_Y_RESOLUTION_STANDARD,
T4_WIDTH_R8_A4,
......@@ -88,7 +88,7 @@ struct
2
},
{
"etsi_300_242_diago2.tif",
"etsi_300_242_a4_duration2.tif",
T4_X_RESOLUTION_R8,
T4_Y_RESOLUTION_STANDARD,
T4_WIDTH_R8_A4,
......@@ -97,7 +97,7 @@ struct
3
},
{
"etsi_300_242_impress.tif",
"etsi_300_242_a4_error.tif",
T4_X_RESOLUTION_R8,
T4_Y_RESOLUTION_STANDARD,
T4_WIDTH_R8_A4,
......@@ -106,7 +106,7 @@ struct
4
},
{
"etsi_300_242_duration1.tif",
"etsi_300_242_a4_impress.tif",
T4_X_RESOLUTION_R8,
T4_Y_RESOLUTION_STANDARD,
T4_WIDTH_R8_A4,
......@@ -115,7 +115,7 @@ struct
5
},
{
"etsi_300_242_duration2.tif",
"etsi_300_242_a4_stairstep.tif",
T4_X_RESOLUTION_R8,
T4_Y_RESOLUTION_STANDARD,
T4_WIDTH_R8_A4,
......@@ -124,7 +124,43 @@ struct
6
},
{
"etsi_300_242_error.tif",
"etsi_300_242_a4_white.tif",
T4_X_RESOLUTION_R8,
T4_Y_RESOLUTION_STANDARD,
T4_WIDTH_R8_A4,
1100,
COMPRESSION_CCITT_T4,
7
},
{
"etsi_300_242_a4_white_2p.tif",
T4_X_RESOLUTION_R8,
T4_Y_RESOLUTION_STANDARD,
T4_WIDTH_R8_A4,
1100,
COMPRESSION_CCITT_T4,
7
},
{ /* Second page of the above file */
"",
T4_X_RESOLUTION_R8,
T4_Y_RESOLUTION_STANDARD,
T4_WIDTH_R8_A4,
1100,
COMPRESSION_CCITT_T4,
7
},
{
"etsi_300_242_a4_impress_white.tif",
T4_X_RESOLUTION_R8,
T4_Y_RESOLUTION_STANDARD,
T4_WIDTH_R8_A4,
1100,
COMPRESSION_CCITT_T4,
5
},
{ /* Second page of the above file */
"",
T4_X_RESOLUTION_R8,
T4_Y_RESOLUTION_STANDARD,
T4_WIDTH_R8_A4,
......@@ -512,11 +548,16 @@ int main(int argc, char *argv[])
int i;
int image_length;
tiff_file = NULL;
for (i = 0; sequence[i].name; i++)
{
if ((tiff_file = TIFFOpen(sequence[i].name, "w")) == NULL)
exit(2);
if (sequence[i].name[0])
{
if (tiff_file)
TIFFClose(tiff_file);
if ((tiff_file = TIFFOpen(sequence[i].name, "w")) == NULL)
exit(2);
}
/* Prepare the directory entry fully before writing the image, or libtiff complains */
TIFFSetField(tiff_file, TIFFTAG_COMPRESSION, sequence[i].compression);
if (sequence[i].compression == COMPRESSION_CCITT_T4)
......@@ -565,37 +606,37 @@ int main(int argc, char *argv[])
switch (sequence[i].type)
{
case 0:
/* A white A4 page */
image_length = create_white_page(tiff_file);
break;
case 1:
/* A stairstep of 64 pixel dashes */
image_length = create_stairstep_page(tiff_file);
break;
case 2:
/* The DIAGO1 page */
image_length = create_diago1_page(tiff_file);
break;
case 3:
case 1:
/* The DIAGO2 page */
image_length = create_diago2_page(tiff_file);
break;
case 4:
/* The IMPRESS page */
image_length = create_impress_page(tiff_file);
break;
case 5:
case 2:
/* The DURATION1 page */
image_length = create_duration1_page(tiff_file);
break;
case 6:
case 3:
/* The DURATION2 page */
image_length = create_duration2_page(tiff_file);
break;
case 7:
case 4:
/* The ERROR page */
image_length = create_error_page(tiff_file);
break;
case 5:
/* The IMPRESS page */
image_length = create_impress_page(tiff_file);
break;
case 6:
/* A stairstep of 64 pixel dashes */
image_length = create_stairstep_page(tiff_file);
break;
case 7:
/* A white A4 page */
image_length = create_white_page(tiff_file);
break;
}
/* ....then the directory entry, and libtiff is happy. */
TIFFSetField(tiff_file, TIFFTAG_IMAGELENGTH, image_length);
......@@ -603,8 +644,9 @@ int main(int argc, char *argv[])
TIFFSetField(tiff_file, TIFFTAG_CLEANFAXDATA, CLEANFAXDATA_CLEAN);
TIFFWriteDirectory(tiff_file);
TIFFClose(tiff_file);
}
if (tiff_file)
TIFFClose(tiff_file);
return 0;
}
/*- End of function --------------------------------------------------------*/
......
......@@ -22,7 +22,7 @@
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
* $Id: tone_generate_tests.c,v 1.19 2008/08/16 15:24:16 steveu Exp $
* $Id: tone_generate_tests.c,v 1.20 2008/09/11 15:13:42 steveu Exp $
*/
/*! \page tone_generate_tests_page Tone generation tests
......@@ -60,7 +60,8 @@ int main(int argc, char *argv[])
fprintf(stderr, " Cannot open wave file '%s'\n", OUTPUT_FILE_NAME);
exit(2);
}
/* Try a tone pair */
make_tone_gen_descriptor(&tone_desc,
440,
-10,
......@@ -85,11 +86,37 @@ int main(int argc, char *argv[])
len);
}
/* Try a different tone pair */
make_tone_gen_descriptor(&tone_desc,
350,
-10,
440,
-15,
400,
300,
200,
100,
TRUE);
tone_gen_init(&tone_state, &tone_desc);
for (i = 0; i < 1000; i++)
{
len = tone_gen(&tone_state, amp, 160);
printf("Generated %d samples\n", len);
if (len <= 0)
break;
outframes = afWriteFrames(outhandle,
AF_DEFAULT_TRACK,
amp,
len);
}
/* Try a different tone pair */
make_tone_gen_descriptor(&tone_desc,
400,
-10,
450,
-10,
100,
200,
300,
......@@ -108,12 +135,88 @@ int main(int argc, char *argv[])
amp,
len);
}
/* Try a single tone */
make_tone_gen_descriptor(&tone_desc,
400,
-10,
450,
0,
0,
100,
200,
300,
400,
TRUE);
tone_gen_init(&tone_state, &tone_desc);
for (i = 0; i < 1000; i++)
{
len = tone_gen(&tone_state, amp, 160);
printf("Generated %d samples\n", len);
if (len <= 0)
break;
outframes = afWriteFrames(outhandle,
AF_DEFAULT_TRACK,
amp,
len);
}
/* Try a single non-repeating tone */
make_tone_gen_descriptor(&tone_desc,
820,
-10,
0,
0,
2000,
0,
0,
0,
FALSE);
tone_gen_init(&tone_state, &tone_desc);
for (i = 0; i < 1000; i++)
{
len = tone_gen(&tone_state, amp, 160);
printf("Generated %d samples\n", len);
if (len <= 0)
break;
outframes = afWriteFrames(outhandle,
AF_DEFAULT_TRACK,
amp,
len);
}
/* Try a single non-repeating tone at 0dBm0 */
make_tone_gen_descriptor(&tone_desc,
820,
0,
0,
0,
2000,
0,
0,
0,
FALSE);
tone_gen_init(&tone_state, &tone_desc);
for (i = 0; i < 1000; i++)
{
len = tone_gen(&tone_state, amp, 160);
printf("Generated %d samples\n", len);
if (len <= 0)
break;
outframes = afWriteFrames(outhandle,
AF_DEFAULT_TRACK,
amp,
len);
}
/* Try an AM modulated tone at a modest modulation level (25%) */
make_tone_gen_descriptor(&tone_desc,
425,
-10,
-50,
25,
100,
200,
300,
......@@ -133,6 +236,7 @@ int main(int argc, char *argv[])
len);
}
/* Try an AM modulated tone at maximum modulation level (100%) */
make_tone_gen_descriptor(&tone_desc,
425,
-10,
......
......@@ -15,7 +15,7 @@
# License along with this program; if not, write to the Free Software
# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
#
# $Id: tsb85_tests.sh,v 1.4 2008/09/09 15:30:43 steveu Exp $
# $Id: tsb85_tests.sh,v 1.6 2008/09/11 15:13:42 steveu Exp $
#
run_tsb85_test()
......@@ -35,6 +35,12 @@ for TEST in MRGN01 MRGN02 MRGN03 MRGN04 MRGN05 MRGN06a MRGN06b MRGN07 MRGN08 ; d
run_tsb85_test
done
#MRGN14 fails because ???
#MRGN16 fails because we don't adequately distinguish between receiving a
#bad image signal and receiving none at all.
#MRGN17 fails because we don't adequately distinguish between receiving a
#bad HDLC message and receiving none at all.
#for TEST in MRGN09 MRGN10 MRGN11 MRGN12 MRGN13 MRGN14 MRGN15 MRGN16 MRGN17 ; do
for TEST in MRGN09 MRGN10 MRGN11 MRGN12 MRGN13 MRGN15 ; do
run_tsb85_test
......@@ -48,50 +54,62 @@ for TEST in OREN01 OREN02 OREN03 OREN04 OREN05 OREN06 OREN07 OREN08 OREN09 OREN1
run_tsb85_test
done
# MRGX05 is failing because we don't distinguish MPS immediately after MCF from MPS after
# a corrupt image signal.
#for TEST in MRGX01 MRGX02 MRGX03 MRGX04 MRGX05 MRGX06 MRGX07 MRGX08 ; do
for TEST in MRGX02 MRGX04 MRGX06 MRGX07 MRGX08 ; do
for TEST in MRGX01 MRGX02 MRGX03 MRGX04 MRGX06 MRGX07 MRGX08 ; do
run_tsb85_test
done
#for TEST in MRGX09 MRGX10 MRGX11 MRGX12 MRGX13 MRGX14 MRGX15 ; do
for TEST in MRGX09 MRGX11 ; do
for TEST in MRGX09 MRGX10 MRGX11 MRGX12 MRGX13 MRGX14 MRGX15 ; do
run_tsb85_test
done
#for TEST in MTGP01 MTGP02 OTGP03 ; do
# run_tsb85_test
#done
for TEST in MTGP01 MTGP02 OTGP03 ; do
run_tsb85_test
done
#for TEST in MTGN01 MTGN02 MTGN03 MTGN04 MTGN05 MTGN06 MTGN07 MTGN08 MTGN09 MTGN10 ; do
# run_tsb85_test
#done
for TEST in MTGN01 MTGN02 MTGN03 MTGN04 MTGN05 MTGN06 MTGN07 MTGN08 MTGN09 MTGN10 ; do
run_tsb85_test
done
#for TEST in MTGN11 MTGN12 MTGN13 MTGN14 MTGN15 MTGN16 MTGN17 MTGN18 MTGN19 MTGN20 ; do
# run_tsb85_test
#done
for TEST in MTGN11 MTGN12 MTGN13 MTGN14 MTGN15 MTGN16 MTGN17 MTGN18 MTGN19 MTGN20 ; do
run_tsb85_test
done
#for TEST in MTGN21 MTGN22 MTGN23 MTGN24 MTGN25 MTGN26 MTGN27 MTGN28 ; do
# run_tsb85_test
#done
for TEST in MTGN21 MTGN22 MTGN23 MTGN24 MTGN25 MTGN26 MTGN27 MTGN28 ; do
run_tsb85_test
done
#for TEST in OTGC01 OTGC02 OTGC03 OTGC04 OTGC05 OTGC06 OTGC07 OTGC08 OTGC09 OTGC10 OTGC11 ; do
# run_tsb85_test
#done
for TEST in OTGC01 OTGC02 OTGC03 OTGC04 OTGC05 OTGC06 OTGC07 OTGC08 ; do
run_tsb85_test
done
#for TEST in OTEN01 OTEN02 OTEN03 OTEN04 OTEN05 OTEN06 ; do
# run_tsb85_test
#done
for TEST in OTGC09-01 OTGC09-02 OTGC09-03 OTGC09-04 OTGC09-05 OTGC09-06 OTGC09-07 OTGC09-08 OTGC09-09 OTGC09-10 OTGC09-11 OTGC09-12 ; do
run_tsb85_test
done
for TEST in OTGC10 OTGC11 ; do
run_tsb85_test
done
for TEST in OTEN01 OTEN02 OTEN03 OTEN04 OTEN05 OTEN06 ; do
run_tsb85_test
done
#MTGX02 fails because ?????
#for TEST in MTGX01 MTGX02 MTGX03 MTGX04 MTGX05 MTGX06 MTGX07 MTGX08 ; do
# run_tsb85_test
#done
for TEST in MTGX01 MTGX03 MTGX04 MTGX05 MTGX06 MTGX07 MTGX08 ; do
run_tsb85_test
done
#for TEST in MTGX09 MTGX10 MTGX11 MTGX12 MTGX13 MTGX14 MTGX15 MTGX16 ; do
# run_tsb85_test
#done
for TEST in MTGX09 MTGX10 MTGX11 MTGX12 MTGX13 MTGX14 MTGX15 MTGX16 ; do
run_tsb85_test
done
#for TEST in MTGX17 MTGX18 MTGX19 MTGX20 MTGX21 MTGX22 MTGX23 ; do
for TEST in MTGX18 MTGX19 MTGX20 MTGX21 MTGX22 MTGX23 ; do
for TEST in MTGX17 MTGX18 MTGX19 MTGX20 MTGX21 MTGX22 MTGX23 ; do
run_tsb85_test
done
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论