Various little memory leak possibilities in spandsp sorts, and the spandsp
test suite is now mostly OK with valgrind.
This commit is contained in:
parent
9e600ec938
commit
fc7a74905b
|
@ -41,6 +41,11 @@
|
|||
#define GEN_CONST
|
||||
#include <math.h>
|
||||
#endif
|
||||
#if defined(HAVE_STDBOOL_H)
|
||||
#include <stdbool.h>
|
||||
#else
|
||||
#include "spandsp/stdbool.h"
|
||||
#endif
|
||||
#include "floating_fudge.h"
|
||||
|
||||
#include "spandsp.h"
|
||||
|
@ -48,9 +53,6 @@
|
|||
|
||||
#define PACKET_LOSS_TIME -1
|
||||
|
||||
#define FALSE 0
|
||||
#define TRUE (!FALSE)
|
||||
|
||||
g1050_constants_t g1050_constants[1] =
|
||||
{
|
||||
{
|
||||
|
@ -746,7 +748,7 @@ static void g1050_segment_init(g1050_segment_state_t *s,
|
|||
s->max_jitter = parms->max_jitter;
|
||||
|
||||
/* The following is common state information to all links. */
|
||||
s->high_loss = FALSE;
|
||||
s->high_loss = false;
|
||||
s->congestion_delay = 0.0;
|
||||
s->last_arrival_time = 0.0;
|
||||
|
||||
|
@ -797,7 +799,7 @@ static void g1050_core_init(g1050_core_state_t *s, g1050_core_model_t *parms, in
|
|||
static void g1050_segment_model(g1050_segment_state_t *s, double delays[], int len)
|
||||
{
|
||||
int i;
|
||||
int lose;
|
||||
bool lose;
|
||||
int was_high_loss;
|
||||
double impulse;
|
||||
double slice_delay;
|
||||
|
@ -805,7 +807,7 @@ static void g1050_segment_model(g1050_segment_state_t *s, double delays[], int l
|
|||
/* Compute delay and loss value for each time slice. */
|
||||
for (i = 0; i < len; i++)
|
||||
{
|
||||
lose = FALSE;
|
||||
lose = false;
|
||||
/* Initialize delay to the serial delay plus some jitter. */
|
||||
slice_delay = s->serial_delay + s->max_jitter*q1050_rand();
|
||||
/* If no QoS, do congestion delay and packet loss analysis. */
|
||||
|
@ -826,14 +828,14 @@ static void g1050_segment_model(g1050_segment_state_t *s, double delays[], int l
|
|||
}
|
||||
|
||||
if (was_high_loss && q1050_rand() < s->prob_packet_loss)
|
||||
lose = TRUE;
|
||||
lose = true;
|
||||
/* Single pole LPF for the congestion delay impulses. */
|
||||
s->congestion_delay = s->congestion_delay*s->impulse_coeff + impulse*(1.0 - s->impulse_coeff);
|
||||
slice_delay += s->congestion_delay;
|
||||
}
|
||||
/* If duplex mismatch on LAN, packet loss based on loss probability. */
|
||||
if (s->multiple_access && (q1050_rand() < s->prob_packet_collision_loss))
|
||||
lose = TRUE;
|
||||
lose = true;
|
||||
/* Put computed delay into time slice array. */
|
||||
if (lose)
|
||||
{
|
||||
|
@ -851,12 +853,12 @@ static void g1050_segment_model(g1050_segment_state_t *s, double delays[], int l
|
|||
static void g1050_core_model(g1050_core_state_t *s, double delays[], int len)
|
||||
{
|
||||
int32_t i;
|
||||
int lose;
|
||||
bool lose;
|
||||
double jitter_delay;
|
||||
|
||||
for (i = 0; i < len; i++)
|
||||
{
|
||||
lose = FALSE;
|
||||
lose = false;
|
||||
jitter_delay = s->base_delay + s->max_jitter*q1050_rand();
|
||||
/* Route flapping */
|
||||
if (--s->route_flap_counter <= 0)
|
||||
|
@ -866,18 +868,18 @@ static void g1050_core_model(g1050_core_state_t *s, double delays[], int len)
|
|||
s->route_flap_counter = s->route_flap_interval;
|
||||
}
|
||||
if (q1050_rand() < s->prob_packet_loss)
|
||||
lose = TRUE;
|
||||
lose = true;
|
||||
/* Link failures */
|
||||
if (--s->link_failure_counter <= 0)
|
||||
{
|
||||
/* We are in a link failure */
|
||||
lose = TRUE;
|
||||
lose = true;
|
||||
if (--s->link_recovery_counter <= 0)
|
||||
{
|
||||
/* Leave failure state. */
|
||||
s->link_failure_counter = s->link_failure_interval_ticks;
|
||||
s->link_recovery_counter = s->link_failure_duration_ticks;
|
||||
lose = FALSE;
|
||||
lose = false;
|
||||
}
|
||||
}
|
||||
if (lose)
|
||||
|
@ -1056,23 +1058,23 @@ static void g1050_simulate_chunk(g1050_state_t *s)
|
|||
|
||||
s->base_time += 1.0;
|
||||
|
||||
memcpy(&s->segment[0].delays[0], &s->segment[0].delays[G1050_TICKS_PER_SEC], 2*G1050_TICKS_PER_SEC*sizeof(s->segment[0].delays[0]));
|
||||
memmove(&s->segment[0].delays[0], &s->segment[0].delays[G1050_TICKS_PER_SEC], 2*G1050_TICKS_PER_SEC*sizeof(s->segment[0].delays[0]));
|
||||
g1050_segment_model(&s->segment[0], &s->segment[0].delays[2*G1050_TICKS_PER_SEC], G1050_TICKS_PER_SEC);
|
||||
|
||||
memcpy(&s->segment[1].delays[0], &s->segment[1].delays[G1050_TICKS_PER_SEC], 2*G1050_TICKS_PER_SEC*sizeof(s->segment[1].delays[0]));
|
||||
memmove(&s->segment[1].delays[0], &s->segment[1].delays[G1050_TICKS_PER_SEC], 2*G1050_TICKS_PER_SEC*sizeof(s->segment[1].delays[0]));
|
||||
g1050_segment_model(&s->segment[1], &s->segment[1].delays[2*G1050_TICKS_PER_SEC], G1050_TICKS_PER_SEC);
|
||||
|
||||
memcpy(&s->core.delays[0], &s->core.delays[G1050_TICKS_PER_SEC], 2*G1050_TICKS_PER_SEC*sizeof(s->core.delays[0]));
|
||||
memmove(&s->core.delays[0], &s->core.delays[G1050_TICKS_PER_SEC], 2*G1050_TICKS_PER_SEC*sizeof(s->core.delays[0]));
|
||||
g1050_core_model(&s->core, &s->core.delays[2*G1050_TICKS_PER_SEC], G1050_TICKS_PER_SEC);
|
||||
|
||||
memcpy(&s->segment[2].delays[0], &s->segment[2].delays[G1050_TICKS_PER_SEC], 2*G1050_TICKS_PER_SEC*sizeof(s->segment[2].delays[0]));
|
||||
memmove(&s->segment[2].delays[0], &s->segment[2].delays[G1050_TICKS_PER_SEC], 2*G1050_TICKS_PER_SEC*sizeof(s->segment[2].delays[0]));
|
||||
g1050_segment_model(&s->segment[2], &s->segment[2].delays[2*G1050_TICKS_PER_SEC], G1050_TICKS_PER_SEC);
|
||||
|
||||
memcpy(&s->segment[3].delays[0], &s->segment[3].delays[G1050_TICKS_PER_SEC], 2*G1050_TICKS_PER_SEC*sizeof(s->segment[3].delays[0]));
|
||||
memmove(&s->segment[3].delays[0], &s->segment[3].delays[G1050_TICKS_PER_SEC], 2*G1050_TICKS_PER_SEC*sizeof(s->segment[3].delays[0]));
|
||||
g1050_segment_model(&s->segment[3], &s->segment[3].delays[2*G1050_TICKS_PER_SEC], G1050_TICKS_PER_SEC);
|
||||
|
||||
memcpy(&s->arrival_times_1[0], &s->arrival_times_1[s->packet_rate], 2*s->packet_rate*sizeof(s->arrival_times_1[0]));
|
||||
memcpy(&s->arrival_times_2[0], &s->arrival_times_2[s->packet_rate], 2*s->packet_rate*sizeof(s->arrival_times_2[0]));
|
||||
memmove(&s->arrival_times_1[0], &s->arrival_times_1[s->packet_rate], 2*s->packet_rate*sizeof(s->arrival_times_1[0]));
|
||||
memmove(&s->arrival_times_2[0], &s->arrival_times_2[s->packet_rate], 2*s->packet_rate*sizeof(s->arrival_times_2[0]));
|
||||
for (i = 0; i < s->packet_rate; i++)
|
||||
{
|
||||
s->arrival_times_1[2*s->packet_rate + i] = s->base_time + 2.0 + (double) i/(double) s->packet_rate;
|
||||
|
@ -1126,7 +1128,7 @@ SPAN_DECLARE(g1050_state_t *) g1050_init(int model,
|
|||
&mo->sidea_lan,
|
||||
sp->sidea_lan_bit_rate,
|
||||
sp->sidea_lan_multiple_access,
|
||||
FALSE,
|
||||
false,
|
||||
packet_size,
|
||||
packet_rate);
|
||||
g1050_segment_init(&s->segment[1],
|
||||
|
@ -1134,7 +1136,7 @@ SPAN_DECLARE(g1050_state_t *) g1050_init(int model,
|
|||
&constants->segment[1],
|
||||
&mo->sidea_access_link,
|
||||
sp->sidea_access_link_bit_rate_ab,
|
||||
FALSE,
|
||||
false,
|
||||
sp->sidea_access_link_qos_enabled,
|
||||
packet_size,
|
||||
packet_rate);
|
||||
|
@ -1144,7 +1146,7 @@ SPAN_DECLARE(g1050_state_t *) g1050_init(int model,
|
|||
&constants->segment[2],
|
||||
&mo->sideb_access_link,
|
||||
sp->sideb_access_link_bit_rate_ba,
|
||||
FALSE,
|
||||
false,
|
||||
sp->sideb_access_link_qos_enabled,
|
||||
packet_size,
|
||||
packet_rate);
|
||||
|
@ -1154,7 +1156,7 @@ SPAN_DECLARE(g1050_state_t *) g1050_init(int model,
|
|||
&mo->sideb_lan,
|
||||
sp->sideb_lan_bit_rate,
|
||||
sp->sideb_lan_multiple_access,
|
||||
FALSE,
|
||||
false,
|
||||
packet_size,
|
||||
packet_rate);
|
||||
|
||||
|
@ -1186,6 +1188,13 @@ SPAN_DECLARE(g1050_state_t *) g1050_init(int model,
|
|||
}
|
||||
/*- End of function --------------------------------------------------------*/
|
||||
|
||||
SPAN_DECLARE(int) g1050_free(g1050_state_t *s)
|
||||
{
|
||||
free(s);
|
||||
return 0;
|
||||
}
|
||||
/*- End of function --------------------------------------------------------*/
|
||||
|
||||
SPAN_DECLARE(void) g1050_dump_parms(int model, int speed_pattern)
|
||||
{
|
||||
g1050_channel_speeds_t *sp;
|
||||
|
|
|
@ -41,6 +41,11 @@
|
|||
#define GEN_CONST
|
||||
#include <math.h>
|
||||
#endif
|
||||
#if defined(HAVE_STDBOOL_H)
|
||||
#include <stdbool.h>
|
||||
#else
|
||||
#include "spandsp/stdbool.h"
|
||||
#endif
|
||||
#include "floating_fudge.h"
|
||||
|
||||
#define SPANDSP_EXPOSE_INTERNAL_STRUCTURES
|
||||
|
@ -345,7 +350,7 @@ SPAN_DECLARE(void) one_way_line_model_set_mains_pickup(one_way_line_model_state_
|
|||
|
||||
if (f)
|
||||
{
|
||||
tone_gen_descriptor_init(&mains_tone_desc, f, (int) (level - 10.0f), f*3, (int) level, 1, 0, 0, 0, TRUE);
|
||||
tone_gen_descriptor_init(&mains_tone_desc, f, (int) (level - 10.0f), f*3, (int) level, 1, 0, 0, 0, true);
|
||||
tone_gen_init(&s->mains_tone, &mains_tone_desc);
|
||||
}
|
||||
s->mains_interference = f;
|
||||
|
@ -454,9 +459,9 @@ SPAN_DECLARE(void) both_ways_line_model_set_mains_pickup(both_ways_line_model_st
|
|||
|
||||
if (f)
|
||||
{
|
||||
tone_gen_descriptor_init(&mains_tone_desc, f, (int) (level1 - 10.0f), f*3, (int) level1, 1, 0, 0, 0, TRUE);
|
||||
tone_gen_descriptor_init(&mains_tone_desc, f, (int) (level1 - 10.0f), f*3, (int) level1, 1, 0, 0, 0, true);
|
||||
tone_gen_init(&s->line1.mains_tone, &mains_tone_desc);
|
||||
tone_gen_descriptor_init(&mains_tone_desc, f, (int) (level2 - 10.0f), f*3, (int) level2, 1, 0, 0, 0, TRUE);
|
||||
tone_gen_descriptor_init(&mains_tone_desc, f, (int) (level2 - 10.0f), f*3, (int) level2, 1, 0, 0, 0, true);
|
||||
tone_gen_init(&s->line2.mains_tone, &mains_tone_desc);
|
||||
}
|
||||
s->line1.mains_interference = f;
|
||||
|
@ -494,8 +499,9 @@ SPAN_DECLARE(one_way_line_model_state_t *) one_way_line_model_init(int model, fl
|
|||
}
|
||||
/*- End of function --------------------------------------------------------*/
|
||||
|
||||
SPAN_DECLARE(int) one_way_line_model_release(one_way_line_model_state_t *s)
|
||||
SPAN_DECLARE(int) one_way_line_model_free(one_way_line_model_state_t *s)
|
||||
{
|
||||
codec_munge_free(s->munge);
|
||||
free(s);
|
||||
return 0;
|
||||
}
|
||||
|
@ -559,8 +565,10 @@ SPAN_DECLARE(both_ways_line_model_state_t *) both_ways_line_model_init(int model
|
|||
}
|
||||
/*- End of function --------------------------------------------------------*/
|
||||
|
||||
SPAN_DECLARE(int) both_ways_line_model_release(both_ways_line_model_state_t *s)
|
||||
SPAN_DECLARE(int) both_ways_line_model_free(both_ways_line_model_state_t *s)
|
||||
{
|
||||
codec_munge_free(s->line1.munge);
|
||||
codec_munge_free(s->line2.munge);
|
||||
free(s);
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -40,17 +40,16 @@
|
|||
#include <inttypes.h>
|
||||
#include <string.h>
|
||||
#include <stdio.h>
|
||||
#include "floating_fudge.h"
|
||||
#if defined(HAVE_FFTW3_H)
|
||||
#include <fftw3.h>
|
||||
#else
|
||||
#include <fftw.h>
|
||||
#endif
|
||||
#if defined(HAVE_TGMATH_H)
|
||||
#include <tgmath.h>
|
||||
#endif
|
||||
#if defined(HAVE_MATH_H)
|
||||
#include <math.h>
|
||||
#if defined(HAVE_STDBOOL_H)
|
||||
#include <stdbool.h>
|
||||
#else
|
||||
#include "spandsp/stdbool.h"
|
||||
#endif
|
||||
|
||||
#include "spandsp.h"
|
||||
|
|
|
@ -41,6 +41,11 @@
|
|||
#define GEN_CONST
|
||||
#include <math.h>
|
||||
#endif
|
||||
#if defined(HAVE_STDBOOL_H)
|
||||
#include <stdbool.h>
|
||||
#else
|
||||
#include "spandsp/stdbool.h"
|
||||
#endif
|
||||
#include "floating_fudge.h"
|
||||
|
||||
#include "spandsp.h"
|
||||
|
@ -49,9 +54,6 @@
|
|||
|
||||
#define PACKET_LOSS_TIME -1
|
||||
|
||||
#define FALSE 0
|
||||
#define TRUE (!FALSE)
|
||||
|
||||
SPAN_DECLARE(rfc2198_sim_state_t *) rfc2198_sim_init(int model,
|
||||
int speed_pattern,
|
||||
int packet_size,
|
||||
|
@ -70,6 +72,14 @@ SPAN_DECLARE(rfc2198_sim_state_t *) rfc2198_sim_init(int model,
|
|||
}
|
||||
/*- End of function --------------------------------------------------------*/
|
||||
|
||||
SPAN_DECLARE(int) rfc2198_sim_free(rfc2198_sim_state_t *s)
|
||||
{
|
||||
g1050_free(s->g1050);
|
||||
free(s);
|
||||
return 0;
|
||||
}
|
||||
/*- End of function --------------------------------------------------------*/
|
||||
|
||||
SPAN_DECLARE(int) rfc2198_sim_put(rfc2198_sim_state_t *s,
|
||||
const uint8_t buf[],
|
||||
int len,
|
||||
|
|
|
@ -272,6 +272,8 @@ SPAN_DECLARE(g1050_state_t *) g1050_init(int model,
|
|||
int packet_size,
|
||||
int packet_rate);
|
||||
|
||||
SPAN_DECLARE(int) g1050_free(g1050_state_t *s);
|
||||
|
||||
SPAN_DECLARE(void) g1050_dump_parms(int model, int speed_pattern);
|
||||
|
||||
SPAN_DECLARE(int) g1050_put(g1050_state_t *s,
|
||||
|
|
|
@ -154,7 +154,7 @@ SPAN_DECLARE(both_ways_line_model_state_t *) both_ways_line_model_init(int model
|
|||
int codec,
|
||||
int rbs_pattern);
|
||||
|
||||
SPAN_DECLARE(int) both_ways_line_model_release(both_ways_line_model_state_t *s);
|
||||
SPAN_DECLARE(int) both_ways_line_model_free(both_ways_line_model_state_t *s);
|
||||
|
||||
SPAN_DECLARE(void) one_way_line_model(one_way_line_model_state_t *s,
|
||||
int16_t output[],
|
||||
|
@ -167,7 +167,7 @@ SPAN_DECLARE(void) one_way_line_model_set_mains_pickup(one_way_line_model_state_
|
|||
|
||||
SPAN_DECLARE(one_way_line_model_state_t *) one_way_line_model_init(int model, float noise, int codec, int rbs_pattern);
|
||||
|
||||
SPAN_DECLARE(int) one_way_line_model_release(one_way_line_model_state_t *s);
|
||||
SPAN_DECLARE(int) one_way_line_model_free(one_way_line_model_state_t *s);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
|
|
|
@ -73,6 +73,8 @@ SPAN_DECLARE(rfc2198_sim_state_t *) rfc2198_sim_init(int model,
|
|||
int packet_rate,
|
||||
int redundancy_depth);
|
||||
|
||||
SPAN_DECLARE(int) rfc2198_sim_free(rfc2198_sim_state_t *s);
|
||||
|
||||
SPAN_DECLARE(int) rfc2198_sim_put(rfc2198_sim_state_t *s,
|
||||
const uint8_t buf[],
|
||||
int len,
|
||||
|
|
|
@ -51,7 +51,7 @@ extern "C" {
|
|||
|
||||
SPAN_DECLARE(complexify_state_t *) complexify_init(void);
|
||||
|
||||
SPAN_DECLARE(void) complexify_release(complexify_state_t *s);
|
||||
SPAN_DECLARE(int) complexify_free(complexify_state_t *s);
|
||||
|
||||
SPAN_DECLARE(complexf_t) complexify(complexify_state_t *s, int16_t amp);
|
||||
|
||||
|
@ -61,7 +61,7 @@ SPAN_DECLARE(void) ifft(complex_t data[], int len);
|
|||
|
||||
SPAN_DECLARE(codec_munge_state_t *) codec_munge_init(int codec, int info);
|
||||
|
||||
SPAN_DECLARE(void) codec_munge_release(codec_munge_state_t *s);
|
||||
SPAN_DECLARE(void) codec_munge_free(codec_munge_state_t *s);
|
||||
|
||||
SPAN_DECLARE(void) codec_munge(codec_munge_state_t *s, int16_t amp[], int len);
|
||||
|
||||
|
|
|
@ -39,6 +39,11 @@
|
|||
#if defined(HAVE_MATH_H)
|
||||
#include <math.h>
|
||||
#endif
|
||||
#if defined(HAVE_STDBOOL_H)
|
||||
#include <stdbool.h>
|
||||
#else
|
||||
#include "spandsp/stdbool.h"
|
||||
#endif
|
||||
#include "floating_fudge.h"
|
||||
#include <time.h>
|
||||
#include <fcntl.h>
|
||||
|
@ -66,12 +71,14 @@ struct complexify_state_s
|
|||
};
|
||||
|
||||
static complex_t circle[MAX_FFT_LEN/2];
|
||||
static int circle_init = FALSE;
|
||||
static int circle_init = false;
|
||||
static complex_t icircle[MAX_FFT_LEN/2];
|
||||
static int icircle_init = FALSE;
|
||||
static int icircle_init = false;
|
||||
|
||||
#define SF_MAX_HANDLE 32
|
||||
static int sf_close_at_exit_registered = FALSE;
|
||||
|
||||
static int sf_close_at_exit_registered = false;
|
||||
|
||||
static SNDFILE *sf_close_at_exit_list[SF_MAX_HANDLE] =
|
||||
{
|
||||
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
|
||||
|
@ -95,9 +102,10 @@ SPAN_DECLARE(complexify_state_t *) complexify_init(void)
|
|||
}
|
||||
/*- End of function --------------------------------------------------------*/
|
||||
|
||||
SPAN_DECLARE(void) complexify_release(complexify_state_t *s)
|
||||
SPAN_DECLARE(int) complexify_free(complexify_state_t *s)
|
||||
{
|
||||
free(s);
|
||||
return 0;
|
||||
}
|
||||
/*- End of function --------------------------------------------------------*/
|
||||
|
||||
|
@ -243,7 +251,7 @@ SPAN_DECLARE(void) fft(complex_t data[], int len)
|
|||
x = -(2.0*3.1415926535*i)/(double) MAX_FFT_LEN;
|
||||
circle[i] = expj(x);
|
||||
}
|
||||
circle_init = TRUE;
|
||||
circle_init = true;
|
||||
}
|
||||
fftx(data, temp, len);
|
||||
}
|
||||
|
@ -263,7 +271,7 @@ SPAN_DECLARE(void) ifft(complex_t data[], int len)
|
|||
x = (2.0*3.1415926535*i)/(double) MAX_FFT_LEN;
|
||||
icircle[i] = expj(x);
|
||||
}
|
||||
icircle_init = TRUE;
|
||||
icircle_init = true;
|
||||
}
|
||||
ifftx(data, temp, len);
|
||||
}
|
||||
|
@ -308,7 +316,7 @@ SPAN_DECLARE(codec_munge_state_t *) codec_munge_init(int codec, int info)
|
|||
}
|
||||
/*- End of function --------------------------------------------------------*/
|
||||
|
||||
SPAN_DECLARE(void) codec_munge_release(codec_munge_state_t *s)
|
||||
SPAN_DECLARE(void) codec_munge_free(codec_munge_state_t *s)
|
||||
{
|
||||
free(s);
|
||||
}
|
||||
|
@ -389,7 +397,7 @@ static int sf_record_handle(SNDFILE *handle)
|
|||
if (!sf_close_at_exit_registered)
|
||||
{
|
||||
atexit(sf_close_at_exit);
|
||||
sf_close_at_exit_registered = TRUE;
|
||||
sf_close_at_exit_registered = true;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
@ -455,7 +463,6 @@ SPAN_DECLARE(int) sf_close_telephony(SNDFILE *handle)
|
|||
{
|
||||
if (sf_close_at_exit_list[i] == handle)
|
||||
{
|
||||
sf_close(sf_close_at_exit_list[i]);
|
||||
sf_close_at_exit_list[i] = NULL;
|
||||
break;
|
||||
}
|
||||
|
|
|
@ -348,12 +348,14 @@ SPAN_DECLARE(bell_mf_tx_state_t *) bell_mf_tx_init(bell_mf_tx_state_t *s)
|
|||
|
||||
SPAN_DECLARE(int) bell_mf_tx_release(bell_mf_tx_state_t *s)
|
||||
{
|
||||
queue_release(&s->queue.queue);
|
||||
return 0;
|
||||
}
|
||||
/*- End of function --------------------------------------------------------*/
|
||||
|
||||
SPAN_DECLARE(int) bell_mf_tx_free(bell_mf_tx_state_t *s)
|
||||
{
|
||||
queue_release(&s->queue.queue);
|
||||
span_free(s);
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -597,12 +597,14 @@ SPAN_DECLARE(dtmf_tx_state_t *) dtmf_tx_init(dtmf_tx_state_t *s,
|
|||
|
||||
SPAN_DECLARE(int) dtmf_tx_release(dtmf_tx_state_t *s)
|
||||
{
|
||||
queue_release(&s->queue.queue);
|
||||
return 0;
|
||||
}
|
||||
/*- End of function --------------------------------------------------------*/
|
||||
|
||||
SPAN_DECLARE(int) dtmf_tx_free(dtmf_tx_state_t *s)
|
||||
{
|
||||
queue_release(&s->queue.queue);
|
||||
span_free(s);
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -515,13 +515,14 @@ SPAN_DECLARE(fax_state_t *) fax_init(fax_state_t *s, int calling_party)
|
|||
SPAN_DECLARE(int) fax_release(fax_state_t *s)
|
||||
{
|
||||
t30_release(&s->t30);
|
||||
v8_release(&s->v8);
|
||||
return 0;
|
||||
}
|
||||
/*- End of function --------------------------------------------------------*/
|
||||
|
||||
SPAN_DECLARE(int) fax_free(fax_state_t *s)
|
||||
{
|
||||
t30_release(&s->t30);
|
||||
fax_release(s);
|
||||
span_free(s);
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -546,7 +546,7 @@ static int floyd_steinberg_dither_row(image_translate_state_t *s, uint8_t buf[])
|
|||
s->pixel_row[0][x - 1] = saturateu8(s->pixel_row[0][x - 1] + (7*quant_error)/16);
|
||||
s->pixel_row[1][x + 0] = saturateu8(s->pixel_row[1][x + 0] + (5*quant_error)/16);
|
||||
s->pixel_row[1][x - 1] = saturateu8(s->pixel_row[1][x - 1] + (1*quant_error)/16);
|
||||
for ( ; x > 0; x--)
|
||||
while (--x > 0)
|
||||
{
|
||||
old_pixel = s->pixel_row[0][x];
|
||||
new_pixel = find_closest_palette_color(old_pixel);
|
||||
|
@ -574,7 +574,7 @@ static int floyd_steinberg_dither_row(image_translate_state_t *s, uint8_t buf[])
|
|||
s->pixel_row[0][x + 1] = saturateu8(s->pixel_row[0][x + 1] + (7*quant_error)/16);
|
||||
s->pixel_row[1][x + 0] = saturateu8(s->pixel_row[1][x + 0] + (5*quant_error)/16);
|
||||
s->pixel_row[1][x + 1] = saturateu8(s->pixel_row[1][x + 1] + (1*quant_error)/16);
|
||||
for ( ; x < s->output_width - 1; x++)
|
||||
while (++x < s->output_width - 1)
|
||||
{
|
||||
old_pixel = s->pixel_row[0][x];
|
||||
new_pixel = find_closest_palette_color(old_pixel);
|
||||
|
@ -772,10 +772,7 @@ SPAN_DECLARE(image_translate_state_t *) image_translate_init(image_translate_sta
|
|||
s->output_bytes_per_pixel = image_format_to_bytes_per_pixel(s->output_format);
|
||||
|
||||
s->resize = (output_width > 0);
|
||||
if (s->resize)
|
||||
s->output_width = output_width;
|
||||
else
|
||||
s->output_width = s->input_width;
|
||||
s->output_width = (s->resize) ? output_width : s->input_width;
|
||||
|
||||
if (image_translate_restart(s, input_length))
|
||||
return NULL;
|
||||
|
|
|
@ -3619,7 +3619,7 @@ static void process_state_f_doc_non_ecm(t30_state_t *s, const uint8_t *msg, int
|
|||
/* Treat this as a bad quality page. */
|
||||
if (s->phase_d_handler)
|
||||
s->phase_d_handler(s->phase_d_user_data, fcf);
|
||||
s->next_rx_step = msg[2] & 0xFE;
|
||||
s->next_rx_step = fcf;
|
||||
queue_phase(s, T30_PHASE_D_TX);
|
||||
set_state(s, T30_STATE_III_Q_RTN);
|
||||
send_simple_frame(s, T30_RTN);
|
||||
|
@ -3634,7 +3634,7 @@ static void process_state_f_doc_non_ecm(t30_state_t *s, const uint8_t *msg, int
|
|||
/* Treat this as a bad quality page. */
|
||||
if (s->phase_d_handler)
|
||||
s->phase_d_handler(s->phase_d_user_data, fcf);
|
||||
s->next_rx_step = msg[2] & 0xFE;
|
||||
s->next_rx_step = fcf;
|
||||
/* Return to phase B */
|
||||
queue_phase(s, T30_PHASE_B_TX);
|
||||
set_state(s, T30_STATE_III_Q_RTN);
|
||||
|
@ -3649,7 +3649,7 @@ static void process_state_f_doc_non_ecm(t30_state_t *s, const uint8_t *msg, int
|
|||
/* Treat this as a bad quality page. */
|
||||
if (s->phase_d_handler)
|
||||
s->phase_d_handler(s->phase_d_user_data, fcf);
|
||||
s->next_rx_step = msg[2] & 0xFE;
|
||||
s->next_rx_step = fcf;
|
||||
queue_phase(s, T30_PHASE_D_TX);
|
||||
set_state(s, T30_STATE_III_Q_RTN);
|
||||
send_simple_frame(s, T30_RTN);
|
||||
|
|
|
@ -3045,6 +3045,8 @@ SPAN_DECLARE(t31_state_t *) t31_init(t31_state_t *s,
|
|||
s->modem = FAX_MODEM_NONE;
|
||||
s->at_state.transmit = true;
|
||||
|
||||
if (s->rx_queue)
|
||||
queue_free(s->rx_queue);
|
||||
if ((s->rx_queue = queue_init(NULL, 4096, QUEUE_WRITE_ATOMIC | QUEUE_READ_ATOMIC)) == NULL)
|
||||
{
|
||||
if (alloced)
|
||||
|
@ -3070,6 +3072,9 @@ SPAN_DECLARE(t31_state_t *) t31_init(t31_state_t *s,
|
|||
SPAN_DECLARE(int) t31_release(t31_state_t *s)
|
||||
{
|
||||
at_reset_call_info(&s->at_state);
|
||||
v8_release(&s->audio.v8);
|
||||
fax_modems_release(&s->audio.modems);
|
||||
queue_free(s->rx_queue);
|
||||
return 0;
|
||||
}
|
||||
/*- End of function --------------------------------------------------------*/
|
||||
|
|
|
@ -1644,6 +1644,35 @@ SPAN_DECLARE(int) t4_tx_set_row_read_handler(t4_tx_state_t *s, t4_row_read_handl
|
|||
}
|
||||
/*- End of function --------------------------------------------------------*/
|
||||
|
||||
static int release_encoder(t4_tx_state_t *s)
|
||||
{
|
||||
switch (s->metadata.compression)
|
||||
{
|
||||
case T4_COMPRESSION_T4_1D:
|
||||
case T4_COMPRESSION_T4_2D:
|
||||
case T4_COMPRESSION_T6:
|
||||
return t4_t6_encode_release(&s->encoder.t4_t6);
|
||||
case T4_COMPRESSION_T85:
|
||||
case T4_COMPRESSION_T85_L0:
|
||||
return t85_encode_release(&s->encoder.t85);
|
||||
#if defined(SPANDSP_SUPPORT_T88)
|
||||
case T4_COMPRESSION_T88:
|
||||
return t88_encode_release(&s->encoder.t88);
|
||||
#endif
|
||||
case T4_COMPRESSION_T42_T81:
|
||||
case T4_COMPRESSION_SYCC_T81:
|
||||
return t42_encode_release(&s->encoder.t42);
|
||||
case T4_COMPRESSION_T43:
|
||||
return t43_encode_release(&s->encoder.t43);
|
||||
#if defined(SPANDSP_SUPPORT_T45)
|
||||
case T4_COMPRESSION_T45:
|
||||
return t45_encode_release(&s->encoder.t45);
|
||||
#endif
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
/*- End of function --------------------------------------------------------*/
|
||||
|
||||
SPAN_DECLARE(int) t4_tx_set_tx_image_format(t4_tx_state_t *s,
|
||||
int supported_compressions,
|
||||
int supported_image_sizes,
|
||||
|
@ -2002,6 +2031,7 @@ SPAN_DECLARE(int) t4_tx_set_tx_image_format(t4_tx_state_t *s,
|
|||
case T4_COMPRESSION_T6:
|
||||
break;
|
||||
default:
|
||||
release_encoder(s);
|
||||
t4_t6_encode_init(&s->encoder.t4_t6, compression, s->metadata.image_width, s->metadata.image_length, s->row_handler, s->row_handler_user_data);
|
||||
break;
|
||||
}
|
||||
|
@ -2018,6 +2048,7 @@ SPAN_DECLARE(int) t4_tx_set_tx_image_format(t4_tx_state_t *s,
|
|||
case T4_COMPRESSION_T85_L0:
|
||||
break;
|
||||
default:
|
||||
release_encoder(s);
|
||||
t85_encode_init(&s->encoder.t85, s->metadata.image_width, s->metadata.image_length, s->row_handler, s->row_handler_user_data);
|
||||
break;
|
||||
}
|
||||
|
@ -2046,6 +2077,7 @@ SPAN_DECLARE(int) t4_tx_set_tx_image_format(t4_tx_state_t *s,
|
|||
case T4_COMPRESSION_SYCC_T81:
|
||||
break;
|
||||
default:
|
||||
release_encoder(s);
|
||||
t42_encode_init(&s->encoder.t42, s->metadata.image_width, s->metadata.image_length, s->row_handler, s->row_handler_user_data);
|
||||
break;
|
||||
}
|
||||
|
@ -2058,6 +2090,7 @@ SPAN_DECLARE(int) t4_tx_set_tx_image_format(t4_tx_state_t *s,
|
|||
case T4_COMPRESSION_T43:
|
||||
break;
|
||||
default:
|
||||
release_encoder(s);
|
||||
t43_encode_init(&s->encoder.t43, s->metadata.image_width, s->metadata.image_length, s->row_handler, s->row_handler_user_data);
|
||||
break;
|
||||
}
|
||||
|
@ -2071,6 +2104,7 @@ SPAN_DECLARE(int) t4_tx_set_tx_image_format(t4_tx_state_t *s,
|
|||
case T4_COMPRESSION_T45:
|
||||
break;
|
||||
default:
|
||||
release_encoder(s);
|
||||
t45_encode_init(&s->encoder.t45, s->metadata.image_width, s->metadata.image_length, s->row_handler, s->row_handler_user_data);
|
||||
break;
|
||||
}
|
||||
|
@ -2603,30 +2637,7 @@ SPAN_DECLARE(int) t4_tx_release(t4_tx_state_t *s)
|
|||
span_free(s->colour_map);
|
||||
s->colour_map = NULL;
|
||||
}
|
||||
switch (s->metadata.compression)
|
||||
{
|
||||
case T4_COMPRESSION_T4_1D:
|
||||
case T4_COMPRESSION_T4_2D:
|
||||
case T4_COMPRESSION_T6:
|
||||
return t4_t6_encode_release(&s->encoder.t4_t6);
|
||||
case T4_COMPRESSION_T85:
|
||||
case T4_COMPRESSION_T85_L0:
|
||||
return t85_encode_release(&s->encoder.t85);
|
||||
#if defined(SPANDSP_SUPPORT_T88)
|
||||
case T4_COMPRESSION_T88:
|
||||
return t88_encode_release(&s->encoder.t88);
|
||||
#endif
|
||||
case T4_COMPRESSION_T42_T81:
|
||||
case T4_COMPRESSION_SYCC_T81:
|
||||
return t42_encode_release(&s->encoder.t42);
|
||||
case T4_COMPRESSION_T43:
|
||||
return t43_encode_release(&s->encoder.t43);
|
||||
#if defined(SPANDSP_SUPPORT_T45)
|
||||
case T4_COMPRESSION_T45:
|
||||
return t45_encode_release(&s->encoder.t45);
|
||||
#endif
|
||||
}
|
||||
return -1;
|
||||
return release_encoder(s);
|
||||
}
|
||||
/*- End of function --------------------------------------------------------*/
|
||||
|
||||
|
|
|
@ -853,6 +853,12 @@ SPAN_DECLARE(int) t85_decode_new_plane(t85_decode_state_t *s)
|
|||
}
|
||||
/*- End of function --------------------------------------------------------*/
|
||||
|
||||
SPAN_DECLARE(logging_state_t *) t85_decode_get_logging_state(t85_decode_state_t *s)
|
||||
{
|
||||
return &s->logging;
|
||||
}
|
||||
/*- End of function --------------------------------------------------------*/
|
||||
|
||||
SPAN_DECLARE(int) t85_decode_restart(t85_decode_state_t *s)
|
||||
{
|
||||
s->xd = 0;
|
||||
|
@ -888,12 +894,6 @@ SPAN_DECLARE(int) t85_decode_restart(t85_decode_state_t *s)
|
|||
}
|
||||
/*- End of function --------------------------------------------------------*/
|
||||
|
||||
SPAN_DECLARE(logging_state_t *) t85_decode_get_logging_state(t85_decode_state_t *s)
|
||||
{
|
||||
return &s->logging;
|
||||
}
|
||||
/*- End of function --------------------------------------------------------*/
|
||||
|
||||
SPAN_DECLARE(t85_decode_state_t *) t85_decode_init(t85_decode_state_t *s,
|
||||
t4_row_write_handler_t handler,
|
||||
void *user_data)
|
||||
|
|
|
@ -645,6 +645,12 @@ SPAN_DECLARE(int) t85_encode_set_row_read_handler(t85_encode_state_t *s,
|
|||
}
|
||||
/*- End of function --------------------------------------------------------*/
|
||||
|
||||
SPAN_DECLARE(logging_state_t *) t85_encode_get_logging_state(t85_encode_state_t *s)
|
||||
{
|
||||
return &s->logging;
|
||||
}
|
||||
/*- End of function --------------------------------------------------------*/
|
||||
|
||||
SPAN_DECLARE(int) t85_encode_restart(t85_encode_state_t *s, uint32_t image_width, uint32_t image_length)
|
||||
{
|
||||
int bytes_per_row;
|
||||
|
@ -681,12 +687,6 @@ SPAN_DECLARE(int) t85_encode_restart(t85_encode_state_t *s, uint32_t image_width
|
|||
}
|
||||
/*- End of function --------------------------------------------------------*/
|
||||
|
||||
SPAN_DECLARE(logging_state_t *) t85_encode_get_logging_state(t85_encode_state_t *s)
|
||||
{
|
||||
return &s->logging;
|
||||
}
|
||||
/*- End of function --------------------------------------------------------*/
|
||||
|
||||
SPAN_DECLARE(t85_encode_state_t *) t85_encode_init(t85_encode_state_t *s,
|
||||
uint32_t image_width,
|
||||
uint32_t image_length,
|
||||
|
|
|
@ -220,7 +220,7 @@ SPAN_DECLARE(int) time_scale(time_scale_state_t *s, int16_t out[], int16_t in[],
|
|||
{
|
||||
memcpy(&out[out_len], s->buf, sizeof(int16_t)*s->lcp);
|
||||
out_len += s->lcp;
|
||||
memcpy(s->buf, &s->buf[s->lcp], sizeof(int16_t)*(s->buf_len - s->lcp));
|
||||
memmove(s->buf, &s->buf[s->lcp], sizeof(int16_t)*(s->buf_len - s->lcp));
|
||||
if (len - in_len < s->lcp)
|
||||
{
|
||||
/* Cannot continue without more samples */
|
||||
|
|
|
@ -1220,12 +1220,14 @@ SPAN_DECLARE(v18_state_t *) v18_init(v18_state_t *s,
|
|||
|
||||
SPAN_DECLARE(int) v18_release(v18_state_t *s)
|
||||
{
|
||||
queue_release(&s->queue.queue);
|
||||
return 0;
|
||||
}
|
||||
/*- End of function --------------------------------------------------------*/
|
||||
|
||||
SPAN_DECLARE(int) v18_free(v18_state_t *s)
|
||||
{
|
||||
queue_release(&s->queue.queue);
|
||||
span_free(s);
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -1104,7 +1104,8 @@ SPAN_DECLARE(int) v8_restart(v8_state_t *s, bool calling_party, v8_parms_t *parm
|
|||
modem_connect_tones_tx_init(&s->ansam_tx, s->parms.modem_connect_tone);
|
||||
s->modem_connect_tone_tx_on = ms_to_samples(75) + 1;
|
||||
}
|
||||
|
||||
if (s->tx_queue)
|
||||
queue_free(s->tx_queue);
|
||||
if ((s->tx_queue = queue_init(NULL, 1024, 0)) == NULL)
|
||||
return -1;
|
||||
return 0;
|
||||
|
|
|
@ -106,7 +106,7 @@ static int mitel_cm7291_side_2_and_bellcore_tests(void)
|
|||
|
||||
/* The remainder of the Mitel tape is the talk-off test */
|
||||
/* Here we use the Bellcore test tapes (much tougher), in six
|
||||
files - 1 from each side of the original 3 cassette tapes */
|
||||
files - 1 from each side of the original 3 cassette tapes */
|
||||
/* Bellcore say you should get no more than 470 false detections with
|
||||
a good receiver. Dialogic claim 20. Of course, we can do better than
|
||||
that, eh? */
|
||||
|
@ -135,6 +135,7 @@ static int mitel_cm7291_side_2_and_bellcore_tests(void)
|
|||
return -1;
|
||||
}
|
||||
printf(" Passed\n");
|
||||
ademco_contactid_sender_free(sender);
|
||||
return 0;
|
||||
}
|
||||
/*- End of function --------------------------------------------------------*/
|
||||
|
@ -254,6 +255,7 @@ static int end_to_end_tests(void)
|
|||
|
||||
sf_writef_short(outhandle, sndfile_buf, SAMPLES_PER_CHUNK);
|
||||
}
|
||||
codec_munge_free(munge);
|
||||
if (!rx_callback_reported)
|
||||
{
|
||||
fprintf(stderr, " Report not received\n");
|
||||
|
@ -266,6 +268,8 @@ static int end_to_end_tests(void)
|
|||
return -1;
|
||||
}
|
||||
printf(" Passed\n");
|
||||
ademco_contactid_sender_free(sender);
|
||||
ademco_contactid_receiver_free(receiver);
|
||||
return 0;
|
||||
}
|
||||
/*- End of function --------------------------------------------------------*/
|
||||
|
@ -323,6 +327,8 @@ static int encode_decode_tests(void)
|
|||
printf("'%s'\n", buf);
|
||||
printf("\n");
|
||||
printf(" Passed\n");
|
||||
ademco_contactid_sender_free(sender);
|
||||
ademco_contactid_receiver_free(receiver);
|
||||
return 0;
|
||||
}
|
||||
/*- End of function --------------------------------------------------------*/
|
||||
|
|
|
@ -564,6 +564,7 @@ int main(int argc, char *argv[])
|
|||
exit(2);
|
||||
}
|
||||
printf("Tests passed.\n");
|
||||
at_free(at_state);
|
||||
return 0;
|
||||
}
|
||||
/*- End of function --------------------------------------------------------*/
|
||||
|
|
|
@ -75,7 +75,11 @@ int main(int argc, char *argv[])
|
|||
clip_high = 0;
|
||||
clip_low = 0;
|
||||
total = 0.0;
|
||||
noise_source = awgn_init_dbm0(NULL, idum, (float) j);
|
||||
if ((noise_source = awgn_init_dbm0(NULL, idum, (float) j)) == NULL)
|
||||
{
|
||||
printf("Failed to allocation AWGN source\n");
|
||||
exit(2);
|
||||
}
|
||||
total_samples = 1000000;
|
||||
for (i = 0; i < total_samples; i++)
|
||||
{
|
||||
|
@ -99,6 +103,7 @@ int main(int argc, char *argv[])
|
|||
printf("Test failed.\n");
|
||||
exit(2);
|
||||
}
|
||||
awgn_free(noise_source);
|
||||
}
|
||||
/* Now look at the statistical spread of the results, by collecting data in
|
||||
bins from a large number of samples. Use a fairly high noise level, but
|
||||
|
@ -107,7 +112,11 @@ int main(int argc, char *argv[])
|
|||
memset(bins, 0, sizeof(bins));
|
||||
clip_high = 0;
|
||||
clip_low = 0;
|
||||
awgn_init_dbm0(noise_source, idum, -15);
|
||||
if ((noise_source = awgn_init_dbm0(NULL, idum, -15.0)) == NULL)
|
||||
{
|
||||
printf("Failed to allocation AWGN source\n");
|
||||
exit(2);
|
||||
}
|
||||
total_samples = 10000000;
|
||||
for (i = 0; i < total_samples; i++)
|
||||
{
|
||||
|
@ -134,7 +143,7 @@ int main(int argc, char *argv[])
|
|||
/* Now send it out for graphing. */
|
||||
printf("%6d %.7f %.7f\n", i - 32768, x, p);
|
||||
}
|
||||
|
||||
awgn_free(noise_source);
|
||||
printf("Tests passed.\n");
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -512,6 +512,7 @@ int main(int argc, char *argv[])
|
|||
printf(" Failed\n");
|
||||
exit(2);
|
||||
}
|
||||
bell_mf_rx_free(mf_state);
|
||||
printf(" Passed\n");
|
||||
|
||||
/* The remainder of the Mitel tape is the talk-off test. This is
|
||||
|
@ -540,6 +541,7 @@ int main(int argc, char *argv[])
|
|||
printf(" Failed\n");
|
||||
exit(2);
|
||||
}
|
||||
bell_mf_rx_free(mf_state);
|
||||
printf(" Passed\n");
|
||||
|
||||
duration = time (NULL) - now;
|
||||
|
|
|
@ -157,6 +157,7 @@ int main(int argc, char *argv[])
|
|||
fprintf(stderr, " Cannot close audio file '%s'\n", OUTPUT_FILE_NAME);
|
||||
exit (2);
|
||||
}
|
||||
bell_mf_tx_free(gen);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -97,9 +97,11 @@ int main(int argc, char *argv[])
|
|||
printf("Test failed.\n");
|
||||
exit(2);
|
||||
}
|
||||
bert_free(tx_bert);
|
||||
bert_free(rx_bert);
|
||||
|
||||
bert_init(tx_bert, 0, BERT_PATTERN_ONES, 300, 20);
|
||||
bert_init(rx_bert, 0, BERT_PATTERN_ONES, 300, 20);
|
||||
tx_bert = bert_init(NULL, 0, BERT_PATTERN_ONES, 300, 20);
|
||||
rx_bert = bert_init(NULL, 0, BERT_PATTERN_ONES, 300, 20);
|
||||
for (i = 0; i < 511*2; i++)
|
||||
{
|
||||
bit = bert_get_bit(tx_bert);
|
||||
|
@ -112,6 +114,8 @@ int main(int argc, char *argv[])
|
|||
printf("Test failed.\n");
|
||||
exit(2);
|
||||
}
|
||||
bert_free(tx_bert);
|
||||
bert_free(rx_bert);
|
||||
|
||||
tx_bert = bert_init(NULL, 0, BERT_PATTERN_1_TO_7, 300, 20);
|
||||
rx_bert = bert_init(NULL, 0, BERT_PATTERN_1_TO_7, 300, 20);
|
||||
|
@ -127,6 +131,8 @@ int main(int argc, char *argv[])
|
|||
printf("Test failed.\n");
|
||||
exit(2);
|
||||
}
|
||||
bert_free(tx_bert);
|
||||
bert_free(rx_bert);
|
||||
|
||||
tx_bert = bert_init(NULL, 0, BERT_PATTERN_1_TO_3, 300, 20);
|
||||
rx_bert = bert_init(NULL, 0, BERT_PATTERN_1_TO_3, 300, 20);
|
||||
|
@ -142,6 +148,8 @@ int main(int argc, char *argv[])
|
|||
printf("Test failed.\n");
|
||||
exit(2);
|
||||
}
|
||||
bert_free(tx_bert);
|
||||
bert_free(rx_bert);
|
||||
|
||||
tx_bert = bert_init(NULL, 0, BERT_PATTERN_1_TO_1, 300, 20);
|
||||
rx_bert = bert_init(NULL, 0, BERT_PATTERN_1_TO_1, 300, 20);
|
||||
|
@ -157,6 +165,8 @@ int main(int argc, char *argv[])
|
|||
printf("Test failed.\n");
|
||||
exit(2);
|
||||
}
|
||||
bert_free(tx_bert);
|
||||
bert_free(rx_bert);
|
||||
|
||||
tx_bert = bert_init(NULL, 0, BERT_PATTERN_3_TO_1, 300, 20);
|
||||
rx_bert = bert_init(NULL, 0, BERT_PATTERN_3_TO_1, 300, 20);
|
||||
|
@ -172,6 +182,8 @@ int main(int argc, char *argv[])
|
|||
printf("Test failed.\n");
|
||||
exit(2);
|
||||
}
|
||||
bert_free(tx_bert);
|
||||
bert_free(rx_bert);
|
||||
|
||||
tx_bert = bert_init(NULL, 0, BERT_PATTERN_7_TO_1, 300, 20);
|
||||
rx_bert = bert_init(NULL, 0, BERT_PATTERN_7_TO_1, 300, 20);
|
||||
|
@ -187,6 +199,8 @@ int main(int argc, char *argv[])
|
|||
printf("Test failed.\n");
|
||||
exit(2);
|
||||
}
|
||||
bert_free(tx_bert);
|
||||
bert_free(rx_bert);
|
||||
|
||||
tx_bert = bert_init(NULL, 0, BERT_PATTERN_ITU_O153_9, 300, 20);
|
||||
rx_bert = bert_init(NULL, 0, BERT_PATTERN_ITU_O153_9, 300, 20);
|
||||
|
@ -231,6 +245,8 @@ int main(int argc, char *argv[])
|
|||
printf("Test failed.\n");
|
||||
exit(2);
|
||||
}
|
||||
bert_free(tx_bert);
|
||||
bert_free(rx_bert);
|
||||
|
||||
tx_bert = bert_init(NULL, 0, BERT_PATTERN_ITU_O152_11, 300, 20);
|
||||
rx_bert = bert_init(NULL, 0, BERT_PATTERN_ITU_O152_11, 300, 20);
|
||||
|
@ -275,6 +291,8 @@ int main(int argc, char *argv[])
|
|||
printf("Test failed.\n");
|
||||
exit(2);
|
||||
}
|
||||
bert_free(tx_bert);
|
||||
bert_free(rx_bert);
|
||||
|
||||
tx_bert = bert_init(NULL, 0, BERT_PATTERN_ITU_O151_15, 300, 20);
|
||||
rx_bert = bert_init(NULL, 0, BERT_PATTERN_ITU_O151_15, 300, 20);
|
||||
|
@ -319,6 +337,8 @@ int main(int argc, char *argv[])
|
|||
printf("Test failed.\n");
|
||||
exit(2);
|
||||
}
|
||||
bert_free(tx_bert);
|
||||
bert_free(rx_bert);
|
||||
|
||||
tx_bert = bert_init(NULL, 0, BERT_PATTERN_ITU_O151_20, 300, 20);
|
||||
rx_bert = bert_init(NULL, 0, BERT_PATTERN_ITU_O151_20, 300, 20);
|
||||
|
@ -360,6 +380,8 @@ int main(int argc, char *argv[])
|
|||
printf("Test failed.\n");
|
||||
exit(2);
|
||||
}
|
||||
bert_free(tx_bert);
|
||||
bert_free(rx_bert);
|
||||
|
||||
tx_bert = bert_init(NULL, 0, BERT_PATTERN_ITU_O151_23, 300, 20);
|
||||
rx_bert = bert_init(NULL, 0, BERT_PATTERN_ITU_O151_23, 300, 20);
|
||||
|
@ -401,6 +423,8 @@ int main(int argc, char *argv[])
|
|||
printf("Test failed.\n");
|
||||
exit(2);
|
||||
}
|
||||
bert_free(tx_bert);
|
||||
bert_free(rx_bert);
|
||||
|
||||
tx_bert = bert_init(NULL, 0, BERT_PATTERN_QBF, 300, 20);
|
||||
rx_bert = bert_init(NULL, 0, BERT_PATTERN_QBF, 300, 20);
|
||||
|
@ -416,6 +440,8 @@ int main(int argc, char *argv[])
|
|||
printf("Test failed.\n");
|
||||
exit(2);
|
||||
}
|
||||
bert_free(tx_bert);
|
||||
bert_free(rx_bert);
|
||||
|
||||
/* Test the mechanism for categorising the error rate into <10^x bands */
|
||||
/* TODO: The result of this test is not checked automatically */
|
||||
|
@ -447,6 +473,7 @@ int main(int argc, char *argv[])
|
|||
// bert_put_bit(bert, bit);
|
||||
bert_put_bit(bert, bit);
|
||||
}
|
||||
bert_free(bert);
|
||||
|
||||
printf("Tests passed.\n");
|
||||
return 0;
|
||||
|
|
|
@ -84,6 +84,7 @@ int main (int argc, char *argv[])
|
|||
printf("Test failed.\n");
|
||||
exit(2);
|
||||
}
|
||||
awgn_free(noise_source);
|
||||
printf("Test passed.\n");
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -613,6 +613,7 @@ static void mitel_cm7291_side_1_tests(void)
|
|||
printf(" Failed\n");
|
||||
exit(2);
|
||||
}
|
||||
dtmf_rx_free(dtmf_state);
|
||||
printf(" Passed\n");
|
||||
}
|
||||
/*- End of function --------------------------------------------------------*/
|
||||
|
@ -686,6 +687,7 @@ static void mitel_cm7291_side_2_and_bellcore_tests(void)
|
|||
exit(2);
|
||||
}
|
||||
printf(" Passed\n");
|
||||
dtmf_rx_free(dtmf_state);
|
||||
}
|
||||
/*- End of function --------------------------------------------------------*/
|
||||
|
||||
|
@ -741,6 +743,7 @@ static void dial_tone_tolerance_tests(void)
|
|||
exit(2);
|
||||
}
|
||||
printf(" Passed\n");
|
||||
dtmf_rx_free(dtmf_state);
|
||||
}
|
||||
/*- End of function --------------------------------------------------------*/
|
||||
|
||||
|
@ -817,6 +820,7 @@ static void callback_function_tests(void)
|
|||
printf(" Failed\n");
|
||||
exit(2);
|
||||
}
|
||||
dtmf_rx_free(dtmf_state);
|
||||
}
|
||||
/*- End of function --------------------------------------------------------*/
|
||||
|
||||
|
@ -915,6 +919,7 @@ int main(int argc, char *argv[])
|
|||
printf("Tests passed in %ds\n", duration);
|
||||
}
|
||||
|
||||
codec_munge_free(munge);
|
||||
return 0;
|
||||
}
|
||||
/*- End of function --------------------------------------------------------*/
|
||||
|
|
|
@ -211,6 +211,7 @@ int main(int argc, char *argv[])
|
|||
fprintf(stderr, " Cannot close audio file '%s'\n", OUTPUT_FILE_NAME);
|
||||
exit(2);
|
||||
}
|
||||
dtmf_tx_free(gen);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -356,7 +356,7 @@ static void v21_put_bit(void *user_data, int bit)
|
|||
}
|
||||
return;
|
||||
}
|
||||
fprintf(stderr, "V.21 Rx bit %d - %d\n", rx_bits++, bit);
|
||||
//fprintf(stderr, "V.21 Rx bit %d - %d\n", rx_bits++, bit);
|
||||
if (fast_trained == FAX_NONE)
|
||||
hdlc_rx_put_bit(&hdlcrx, bit);
|
||||
}
|
||||
|
|
|
@ -116,13 +116,14 @@ enum
|
|||
|
||||
int mode[2] = {AUDIO_FAX, AUDIO_FAX};
|
||||
|
||||
t30_state_t *t30_state[2];
|
||||
fax_state_t *fax_state[2];
|
||||
t38_gateway_state_t *t38_gateway_state[2];
|
||||
t38_terminal_state_t *t38_state[2];
|
||||
t38_core_state_t *t38_core_state[2];
|
||||
g1050_state_t *g1050_path[2];
|
||||
awgn_state_t *awgn_state[2];
|
||||
t30_state_t *t30_state[2] = {NULL, NULL};
|
||||
fax_state_t *fax_state[2] = {NULL, NULL};
|
||||
t38_gateway_state_t *t38_gateway_state[2] = {NULL, NULL};
|
||||
t38_terminal_state_t *t38_state[2] = {NULL, NULL};
|
||||
t38_core_state_t *t38_core_state[2] = {NULL, NULL};
|
||||
faxtester_state_t *faxtester[2] = {NULL, NULL};
|
||||
g1050_state_t *g1050_path[2] = {NULL, NULL};
|
||||
awgn_state_t *awgn_state[2] = {NULL, NULL};
|
||||
int16_t audio_buffer[2*2][SAMPLES_PER_CHUNK];
|
||||
|
||||
int t38_subst_seq[2] = {0, 0};
|
||||
|
@ -1264,11 +1265,16 @@ int main(int argc, char *argv[])
|
|||
break;
|
||||
}
|
||||
if (mode[i] == T38_TERMINAL_FAX)
|
||||
t38_terminal_release(t38_state[i]);
|
||||
t38_terminal_free(t38_state[i]);
|
||||
else
|
||||
fax_release(fax_state[i]);
|
||||
fax_free(fax_state[i]);
|
||||
if (mode[i] == T38_GATEWAY_FAX)
|
||||
t38_gateway_release(t38_gateway_state[i]);
|
||||
t38_gateway_free(t38_gateway_state[i]);
|
||||
if (g1050_path[i])
|
||||
{
|
||||
g1050_free(g1050_path[i]);
|
||||
g1050_path[i] = NULL;
|
||||
}
|
||||
}
|
||||
if (i < 2)
|
||||
{
|
||||
|
|
|
@ -296,6 +296,7 @@ int main(int argc, char *argv[])
|
|||
fprintf(stderr, " Cannot close audio file '%s'\n", decode_test_file);
|
||||
exit(2);
|
||||
}
|
||||
fsk_rx_free(caller_rx);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -357,6 +358,7 @@ int main(int argc, char *argv[])
|
|||
printf("Tests failed.\n");
|
||||
exit(2);
|
||||
}
|
||||
fsk_rx_free(caller_rx);
|
||||
|
||||
printf("Test with BERT\n");
|
||||
test_bps = preset_fsk_specs[modem_under_test_1].baud_rate;
|
||||
|
@ -491,6 +493,7 @@ int main(int argc, char *argv[])
|
|||
fsk_rx_set_modem_status_handler(caller_rx, rx_status, (void *) &caller_rx);
|
||||
}
|
||||
noise_level++;
|
||||
both_ways_line_model_free(model);
|
||||
if ((model = both_ways_line_model_init(line_model_no,
|
||||
(float) noise_level,
|
||||
line_model_no,
|
||||
|
@ -511,6 +514,19 @@ int main(int argc, char *argv[])
|
|||
bert_set_report(&answerer_bert, 100000, reporter, (void *) (intptr_t) 2);
|
||||
}
|
||||
}
|
||||
bert_release(&caller_bert);
|
||||
bert_release(&answerer_bert);
|
||||
if (modem_under_test_1 >= 0)
|
||||
{
|
||||
fsk_tx_free(caller_tx);
|
||||
fsk_rx_free(answerer_rx);
|
||||
}
|
||||
if (modem_under_test_2 >= 0)
|
||||
{
|
||||
fsk_tx_free(answerer_tx);
|
||||
fsk_rx_free(caller_rx);
|
||||
}
|
||||
both_ways_line_model_free(model);
|
||||
printf("Tests passed.\n");
|
||||
}
|
||||
if (log_audio)
|
||||
|
|
|
@ -233,6 +233,8 @@ int main(int argc, char *argv[])
|
|||
exit(2);
|
||||
}
|
||||
printf("%.3f%% of packets lost\n", 100.0*(packets_put - packets_really_put)/packets_put);
|
||||
g1050_free(s);
|
||||
free(packet_arrival_times);
|
||||
return 0;
|
||||
}
|
||||
/*- End of function --------------------------------------------------------*/
|
||||
|
|
|
@ -309,6 +309,15 @@ int main(int argc, char *argv[])
|
|||
printf("%d\n", css_c3[i]);
|
||||
signal_free(&local_css);
|
||||
signal_free(&far_css);
|
||||
fir32_free(&line_model_d2);
|
||||
fir32_free(&line_model_d3);
|
||||
fir32_free(&line_model_d4);
|
||||
fir32_free(&line_model_d5);
|
||||
fir32_free(&line_model_d6);
|
||||
fir32_free(&line_model_d7);
|
||||
fir32_free(&line_model_d8);
|
||||
fir32_free(&line_model_d9);
|
||||
fir_float_free(&level_measurement_bp);
|
||||
return 0;
|
||||
}
|
||||
/*- End of function --------------------------------------------------------*/
|
||||
|
|
|
@ -314,9 +314,9 @@ static void compliance_tests(int log_audio)
|
|||
}
|
||||
}
|
||||
}
|
||||
g711_release(enc_state);
|
||||
g711_release(transcode);
|
||||
g711_release(dec_state);
|
||||
g711_free(enc_state);
|
||||
g711_free(transcode);
|
||||
g711_free(dec_state);
|
||||
|
||||
if (log_audio)
|
||||
{
|
||||
|
|
|
@ -278,6 +278,7 @@ static void itu_compliance_tests(void)
|
|||
exit(2);
|
||||
}
|
||||
printf("Test passed\n");
|
||||
g722_encode_free(enc_state);
|
||||
}
|
||||
#endif
|
||||
#if 1
|
||||
|
@ -346,6 +347,7 @@ static void itu_compliance_tests(void)
|
|||
exit(2);
|
||||
}
|
||||
printf("Test passed\n");
|
||||
g722_decode_free(dec_state);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
@ -403,6 +405,11 @@ static void signal_to_distortion_tests(void)
|
|||
printf("%10d, %10d, %f\n", in_level, out_level, (float) out_level/in_level);
|
||||
}
|
||||
while (len > 0);
|
||||
swept_tone_free(swept);
|
||||
g722_encode_free(enc_state);
|
||||
g722_decode_free(dec_state);
|
||||
power_meter_free(in_meter);
|
||||
power_meter_free(out_meter);
|
||||
}
|
||||
/*- End of function --------------------------------------------------------*/
|
||||
|
||||
|
@ -657,6 +664,7 @@ int main(int argc, char *argv[])
|
|||
fprintf(stderr, " Cannot close audio file '%s'\n", IN_FILE_NAME);
|
||||
exit(2);
|
||||
}
|
||||
g722_encode_free(enc_state);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -669,6 +677,7 @@ int main(int argc, char *argv[])
|
|||
fprintf(stderr, " Cannot close audio file '%s'\n", OUT_FILE_NAME);
|
||||
exit(2);
|
||||
}
|
||||
g722_decode_free(dec_state);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
|
@ -1193,8 +1193,8 @@ static void itu_compliance_tests(void)
|
|||
|
||||
int main(int argc, char *argv[])
|
||||
{
|
||||
g726_state_t enc_state;
|
||||
g726_state_t dec_state;
|
||||
g726_state_t *enc_state;
|
||||
g726_state_t *dec_state;
|
||||
int opt;
|
||||
bool itutests;
|
||||
int bit_rate;
|
||||
|
@ -1251,13 +1251,13 @@ int main(int argc, char *argv[])
|
|||
}
|
||||
|
||||
printf("ADPCM packing is %d\n", packing);
|
||||
g726_init(&enc_state, bit_rate, G726_ENCODING_LINEAR, packing);
|
||||
g726_init(&dec_state, bit_rate, G726_ENCODING_LINEAR, packing);
|
||||
enc_state = g726_init(NULL, bit_rate, G726_ENCODING_LINEAR, packing);
|
||||
dec_state = g726_init(NULL, bit_rate, G726_ENCODING_LINEAR, packing);
|
||||
|
||||
while ((frames = sf_readf_short(inhandle, amp, 159)))
|
||||
{
|
||||
adpcm = g726_encode(&enc_state, adpcmdata, amp, frames);
|
||||
frames = g726_decode(&dec_state, amp, adpcmdata, adpcm);
|
||||
adpcm = g726_encode(enc_state, adpcmdata, amp, frames);
|
||||
frames = g726_decode(dec_state, amp, adpcmdata, adpcm);
|
||||
sf_writef_short(outhandle, amp, frames);
|
||||
}
|
||||
if (sf_close_telephony(inhandle))
|
||||
|
@ -1271,6 +1271,8 @@ int main(int argc, char *argv[])
|
|||
exit(2);
|
||||
}
|
||||
printf("'%s' transcoded to '%s' at %dbps.\n", IN_FILE_NAME, OUT_FILE_NAME, bit_rate);
|
||||
g726_free(enc_state);
|
||||
g726_free(dec_state);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -321,7 +321,7 @@ static int perform_linear_test(int full, int disk, const char *name)
|
|||
mismatches++;
|
||||
}
|
||||
}
|
||||
gsm0610_release(gsm0610_enc_state);
|
||||
gsm0610_free(gsm0610_enc_state);
|
||||
if (mismatches)
|
||||
{
|
||||
printf("Test failed: %d of %d samples mismatch\n", mismatches, xxx);
|
||||
|
@ -350,7 +350,7 @@ static int perform_linear_test(int full, int disk, const char *name)
|
|||
printf("Test failed: %d of %d samples mismatch\n", mismatches, vector_len);
|
||||
exit(2);
|
||||
}
|
||||
gsm0610_release(gsm0610_dec_state);
|
||||
gsm0610_free(gsm0610_dec_state);
|
||||
printf("Test passed\n");
|
||||
return 0;
|
||||
}
|
||||
|
@ -405,7 +405,7 @@ static int perform_law_test(int full, int law, const char *name)
|
|||
exit(2);
|
||||
}
|
||||
printf("Test passed\n");
|
||||
gsm0610_release(gsm0610_enc_state);
|
||||
gsm0610_free(gsm0610_enc_state);
|
||||
}
|
||||
|
||||
if ((gsm0610_dec_state = gsm0610_init(NULL, GSM0610_PACKING_NONE)) == NULL)
|
||||
|
@ -438,7 +438,7 @@ static int perform_law_test(int full, int law, const char *name)
|
|||
printf("Test failed: %d of %d samples mismatch\n", mismatches, vector_len);
|
||||
exit(2);
|
||||
}
|
||||
gsm0610_release(gsm0610_dec_state);
|
||||
gsm0610_free(gsm0610_dec_state);
|
||||
printf("Test passed\n");
|
||||
return 0;
|
||||
}
|
||||
|
@ -613,8 +613,8 @@ int main(int argc, char *argv[])
|
|||
fprintf(stderr, " Cannot close audio file '%s'\n", OUT_FILE_NAME);
|
||||
exit(2);
|
||||
}
|
||||
gsm0610_release(gsm0610_enc_state);
|
||||
gsm0610_release(gsm0610_dec_state);
|
||||
gsm0610_free(gsm0610_enc_state);
|
||||
gsm0610_free(gsm0610_dec_state);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -187,8 +187,8 @@ int main(int argc, char *argv[])
|
|||
fprintf(stderr, " Cannot close audio file '%s'\n", OUT_FILE_NAME);
|
||||
exit(2);
|
||||
}
|
||||
ima_adpcm_release(ima_enc_state);
|
||||
ima_adpcm_release(ima_dec_state);
|
||||
ima_adpcm_free(ima_enc_state);
|
||||
ima_adpcm_free(ima_dec_state);
|
||||
|
||||
printf("Pre samples: %d\n", total_pre_samples);
|
||||
printf("Compressed bytes: %d\n", total_compressed_bytes);
|
||||
|
|
|
@ -811,6 +811,8 @@ static void lenna_tests(int output_width, int output_length_scaling, const char
|
|||
TIFFWriteDirectory(out_file);
|
||||
TIFFClose(out_file);
|
||||
image_translate_free(s);
|
||||
free(image);
|
||||
free(image2);
|
||||
}
|
||||
/*- End of function --------------------------------------------------------*/
|
||||
|
||||
|
|
|
@ -88,6 +88,8 @@ static void complexify_tests(void)
|
|||
out[2*i] = cc.re;
|
||||
out[2*i + 1] = cc.im;
|
||||
}
|
||||
awgn_release(&noise1);
|
||||
complexify_free(s);
|
||||
outframes = sf_writef_short(outhandle, out, 20000);
|
||||
if (outframes != 20000)
|
||||
{
|
||||
|
@ -183,7 +185,7 @@ static void test_one_way_model(int line_model_no, int speech_test)
|
|||
fprintf(stderr, " Cannot close audio file '%s'\n", OUT_FILE_NAME1);
|
||||
exit(2);
|
||||
}
|
||||
one_way_line_model_release(model);
|
||||
one_way_line_model_free(model);
|
||||
}
|
||||
/*- End of function --------------------------------------------------------*/
|
||||
|
||||
|
@ -302,7 +304,7 @@ static void test_both_ways_model(int line_model_no, int speech_test)
|
|||
fprintf(stderr, " Cannot close audio file '%s'\n", OUT_FILE_NAME2);
|
||||
exit(2);
|
||||
}
|
||||
both_ways_line_model_release(model);
|
||||
both_ways_line_model_free(model);
|
||||
}
|
||||
/*- End of function --------------------------------------------------------*/
|
||||
|
||||
|
|
|
@ -203,6 +203,8 @@ int main(int argc, char *argv[])
|
|||
|
||||
span_log_set_message_handler(log, &message_handler, NULL);
|
||||
|
||||
span_log_free(log);
|
||||
|
||||
printf("Tests passed.\n");
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -236,8 +236,8 @@ int main(int argc, char *argv[])
|
|||
close(compress_file);
|
||||
if (decompress)
|
||||
close(decompress_file);
|
||||
lpc10_encode_release(lpc10_enc_state);
|
||||
lpc10_decode_release(lpc10_dec_state);
|
||||
lpc10_encode_free(lpc10_enc_state);
|
||||
lpc10_decode_free(lpc10_dec_state);
|
||||
|
||||
if (!decompress)
|
||||
{
|
||||
|
|
|
@ -276,15 +276,15 @@ int main(int argc, char *argv[])
|
|||
}
|
||||
|
||||
|
||||
oki_adpcm_release(oki_enc_state);
|
||||
oki_adpcm_free(oki_enc_state);
|
||||
if (sf_close_telephony(inhandle))
|
||||
{
|
||||
fprintf(stderr, " Cannot close audio file '%s'\n", in_file_name);
|
||||
exit(2);
|
||||
}
|
||||
}
|
||||
oki_adpcm_release(oki_dec_state);
|
||||
oki_adpcm_release(oki_dec_state2);
|
||||
oki_adpcm_free(oki_dec_state);
|
||||
oki_adpcm_free(oki_dec_state2);
|
||||
if (sf_close_telephony(outhandle))
|
||||
{
|
||||
fprintf(stderr, " Cannot close audio file '%s'\n", OUT_FILE_NAME);
|
||||
|
|
|
@ -147,6 +147,8 @@ static int power_surge_detector_tests(void)
|
|||
exit(2);
|
||||
}
|
||||
printf("Min on %d, max on %d, min off %d, max off %d\n", extremes[0], extremes[1], extremes[2], extremes[3]);
|
||||
power_surge_detector_free(sig);
|
||||
awgn_free(awgnx);
|
||||
return 0;
|
||||
}
|
||||
/*- End of function --------------------------------------------------------*/
|
||||
|
|
|
@ -181,6 +181,7 @@ static int my_mf_generate(int16_t amp[], char digit)
|
|||
{
|
||||
tone = tone_gen_init(NULL, &my_mf_digit_tones[cp - r2_mf_tone_codes]);
|
||||
len += tone_gen(tone, amp + len, 9999);
|
||||
tone_gen_free(tone);
|
||||
}
|
||||
return len;
|
||||
}
|
||||
|
@ -524,6 +525,7 @@ static int test_a_tone_set(int fwd)
|
|||
if (r2_mf_rx_get(mf_state) != digit)
|
||||
break;
|
||||
}
|
||||
awgn_free(noise_source);
|
||||
if (j < 500)
|
||||
break;
|
||||
}
|
||||
|
@ -541,7 +543,7 @@ static int test_a_tone_set(int fwd)
|
|||
printf("Test 8: Callback digit delivery mode.\n");
|
||||
callback_ok = false;
|
||||
callback_roll = 0;
|
||||
mf_state = r2_mf_rx_init(NULL, fwd, digit_delivery, (void *) 0x12345678);
|
||||
mf_state = r2_mf_rx_init(mf_state, fwd, digit_delivery, (void *) 0x12345678);
|
||||
my_mf_gen_init(0.0, -3, 0.0, -3, 68, fwd);
|
||||
s = r2_mf_tone_codes;
|
||||
noise_source = awgn_init_dbm0(NULL, 1234567, -40.0f);
|
||||
|
@ -560,6 +562,7 @@ static int test_a_tone_set(int fwd)
|
|||
codec_munge(amp, len);
|
||||
r2_mf_rx(mf_state, amp, len);
|
||||
}
|
||||
awgn_free(noise_source);
|
||||
if (!callback_ok)
|
||||
{
|
||||
printf(" Failed\n");
|
||||
|
@ -567,6 +570,8 @@ static int test_a_tone_set(int fwd)
|
|||
}
|
||||
printf(" Passed\n");
|
||||
|
||||
r2_mf_rx_free(mf_state);
|
||||
|
||||
/* The remainder of the Mitel tape is the talk-off test. This is
|
||||
meaningless for R2 MF. However the decoder's tolerance of
|
||||
out of band noise is significant. */
|
||||
|
|
|
@ -229,6 +229,10 @@ int main(int argc, char *argv[])
|
|||
|
||||
fclose(out_file);
|
||||
|
||||
rfc2198_sim_free(s);
|
||||
|
||||
free(packet_arrival_times);
|
||||
|
||||
printf("Put %d packets. Really put %d packets. Got %d packets.\n", packets_put, packets_really_put, packets_got);
|
||||
printf("%d OOS packets, %d missing packets\n", oos_packets_got, missing_packets_got - oos_packets_got);
|
||||
printf("%d packets queued, %d received\n", packets_really_put, packets_got);
|
||||
|
|
|
@ -648,6 +648,8 @@ int main(int argc, char *argv[])
|
|||
speech_immunity_tests(&rx_state);
|
||||
level_and_ratio_tests(&rx_state, fc);
|
||||
sequence_tests(&tx_state, &rx_state, munge);
|
||||
if (munge)
|
||||
codec_munge_free(munge);
|
||||
}
|
||||
/*endfor*/
|
||||
|
||||
|
|
|
@ -92,6 +92,10 @@ int main(int argc, char *argv[])
|
|||
exit(2);
|
||||
}
|
||||
|
||||
swept_tone_free(s);
|
||||
|
||||
power_meter_release(&meter);
|
||||
|
||||
printf("Tests passed.\n");
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -852,8 +852,13 @@ static int t30_tests(int t38_mode, int use_gui, int log_audio, int test_sending,
|
|||
span_log_bump_samples(at_get_logging_state(t31_get_at_state(t31_state)), SAMPLES_PER_CHUNK);
|
||||
}
|
||||
|
||||
g1050_free(path_a_to_b);
|
||||
g1050_free(path_b_to_a);
|
||||
if (t38_mode)
|
||||
t38_terminal_release(t38_state);
|
||||
t38_terminal_free(t38_state);
|
||||
else
|
||||
fax_free(fax_state);
|
||||
t31_free(t31_state);
|
||||
|
||||
if (decode_test_file)
|
||||
{
|
||||
|
|
|
@ -168,6 +168,7 @@ int main(int argc, char *argv[])
|
|||
printf(" Done\n");
|
||||
t38_non_ecm_buffer_report_input_status(&buffer, &logging);
|
||||
t38_non_ecm_buffer_report_output_status(&buffer, &logging);
|
||||
t38_non_ecm_buffer_release(&buffer);
|
||||
|
||||
printf("2 - Impose no minimum for the bits per row, different alignment\n");
|
||||
t38_non_ecm_buffer_init(&buffer, true, 0);
|
||||
|
@ -233,6 +234,7 @@ int main(int argc, char *argv[])
|
|||
}
|
||||
t38_non_ecm_buffer_report_input_status(&buffer, &logging);
|
||||
t38_non_ecm_buffer_report_output_status(&buffer, &logging);
|
||||
t38_non_ecm_buffer_release(&buffer);
|
||||
|
||||
printf("3 - Demand a fairly high minimum for the bits per row\n");
|
||||
t38_non_ecm_buffer_init(&buffer, true, 400);
|
||||
|
@ -298,6 +300,7 @@ int main(int argc, char *argv[])
|
|||
}
|
||||
t38_non_ecm_buffer_report_input_status(&buffer, &logging);
|
||||
t38_non_ecm_buffer_report_output_status(&buffer, &logging);
|
||||
t38_non_ecm_buffer_release(&buffer);
|
||||
|
||||
printf("4 - Take some time to get to the first row of the image, output ahead\n");
|
||||
t38_non_ecm_buffer_init(&buffer, true, 400);
|
||||
|
@ -446,6 +449,7 @@ int main(int argc, char *argv[])
|
|||
printf(" RTC output OK\n");
|
||||
t38_non_ecm_buffer_report_input_status(&buffer, &logging);
|
||||
t38_non_ecm_buffer_report_output_status(&buffer, &logging);
|
||||
t38_non_ecm_buffer_release(&buffer);
|
||||
|
||||
printf("5 - Take some time to get to the first row of the image, output behind\n");
|
||||
t38_non_ecm_buffer_init(&buffer, true, 400);
|
||||
|
@ -583,6 +587,7 @@ int main(int argc, char *argv[])
|
|||
printf(" RTC output OK\n");
|
||||
t38_non_ecm_buffer_report_input_status(&buffer, &logging);
|
||||
t38_non_ecm_buffer_report_output_status(&buffer, &logging);
|
||||
t38_non_ecm_buffer_release(&buffer);
|
||||
|
||||
printf("6 - TCF without leading ones\n");
|
||||
t38_non_ecm_buffer_init(&buffer, false, 400);
|
||||
|
@ -628,6 +633,7 @@ int main(int argc, char *argv[])
|
|||
printf(" End of data seen OK\n");
|
||||
t38_non_ecm_buffer_report_input_status(&buffer, &logging);
|
||||
t38_non_ecm_buffer_report_output_status(&buffer, &logging);
|
||||
t38_non_ecm_buffer_release(&buffer);
|
||||
|
||||
printf("7 - TCF with leading ones\n");
|
||||
t38_non_ecm_buffer_init(&buffer, false, 400);
|
||||
|
@ -695,6 +701,7 @@ int main(int argc, char *argv[])
|
|||
printf(" End of data seen OK\n");
|
||||
t38_non_ecm_buffer_report_input_status(&buffer, &logging);
|
||||
t38_non_ecm_buffer_report_output_status(&buffer, &logging);
|
||||
t38_non_ecm_buffer_release(&buffer);
|
||||
|
||||
printf("Tests passed\n");
|
||||
return 0;
|
||||
|
|
|
@ -287,7 +287,11 @@ int main(int argc, char *argv[])
|
|||
|
||||
for (i = 0, total_image_len = 0; i < nstrips; i++)
|
||||
total_image_len += TIFFRawStripSize(tif, i);
|
||||
data = malloc(total_image_len);
|
||||
if ((data = malloc(total_image_len)) == NULL)
|
||||
{
|
||||
printf("Failed to allocate buffer\n");
|
||||
exit(2);
|
||||
}
|
||||
for (i = 0, total_len = 0; i < nstrips; i++, total_len += len)
|
||||
{
|
||||
if ((len = TIFFReadRawStrip(tif, i, &data[total_len], total_image_len - total_len)) < 0)
|
||||
|
@ -439,7 +443,11 @@ int main(int argc, char *argv[])
|
|||
printf("total %d\n", totdata);
|
||||
|
||||
/* Read the image into memory. */
|
||||
data = malloc(totdata);
|
||||
if ((data = malloc(totdata)) == NULL)
|
||||
{
|
||||
printf("Failed to allocate buffer\n");
|
||||
exit(2);
|
||||
}
|
||||
off = 0;
|
||||
for (row = 0; row < h; row++)
|
||||
{
|
||||
|
@ -561,7 +569,11 @@ int main(int argc, char *argv[])
|
|||
}
|
||||
free(data);
|
||||
#else
|
||||
data2 = malloc(totdata);
|
||||
if ((data2 = malloc(totdata)) == NULL)
|
||||
{
|
||||
printf("Failed to allocate buffer\n");
|
||||
exit(2);
|
||||
}
|
||||
start = rdtscll();
|
||||
//if (!t42_itulab_jpeg_to_srgb(logging, &lab_param, data2, &off, data, off, &w, &h, &samples_per_pixel))
|
||||
{
|
||||
|
|
|
@ -486,8 +486,7 @@ int read_file(meta_t *meta, int page)
|
|||
if (TIFFGetField(tif, TIFFTAG_COLORMAP, &map_L, &map_a, &map_b, &map_z))
|
||||
{
|
||||
entries = 1 << meta->bits_per_sample;
|
||||
meta->colour_map = malloc(3*entries);
|
||||
if (meta->colour_map)
|
||||
if ((meta->colour_map = malloc(3*entries)))
|
||||
{
|
||||
#if 0
|
||||
/* Sweep the colormap in the proper order */
|
||||
|
@ -1349,7 +1348,11 @@ int main(int argc, char *argv[])
|
|||
free(data);
|
||||
data = data2;
|
||||
#elif 1
|
||||
data2 = malloc(totdata);
|
||||
if ((data2 = malloc(totdata)) == NULL)
|
||||
{
|
||||
printf("Failed to allocate buffer\n");
|
||||
exit(2);
|
||||
}
|
||||
start = rdtscll();
|
||||
//if (!t42_itulab_jpeg_to_srgb(&logging2, &lab_param, data2, &off, data, off, &meta.image_width, &meta.image_length, &meta.samples_per_pixel))
|
||||
{
|
||||
|
|
|
@ -412,8 +412,8 @@ int main(int argc, char *argv[])
|
|||
if (compression_step < 0)
|
||||
break;
|
||||
}
|
||||
t4_t6_encode_release(send_state);
|
||||
t4_t6_decode_release(receive_state);
|
||||
t4_t6_encode_free(send_state);
|
||||
t4_t6_decode_free(receive_state);
|
||||
#endif
|
||||
printf("Tests passed\n");
|
||||
return 0;
|
||||
|
|
|
@ -454,7 +454,7 @@ int main(int argc, char *argv[])
|
|||
dump_image_as_xxx(receive_state);
|
||||
t4_rx_end_page(receive_state);
|
||||
display_page_stats(receive_state);
|
||||
t4_rx_release(receive_state);
|
||||
t4_rx_free(receive_state);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -621,8 +621,8 @@ int main(int argc, char *argv[])
|
|||
t4_rx_end_page(receive_state);
|
||||
sends++;
|
||||
}
|
||||
t4_tx_release(send_state);
|
||||
t4_rx_release(receive_state);
|
||||
t4_tx_free(send_state);
|
||||
t4_rx_free(receive_state);
|
||||
/* And we should now have a matching received TIFF file. Note this will only match
|
||||
at the image level. TIFF files allow a lot of ways to express the same thing,
|
||||
so bit matching of the files is not the normal case. */
|
||||
|
|
|
@ -225,7 +225,8 @@ int main(int argc, char *argv[])
|
|||
exit(2);
|
||||
}
|
||||
printf("Test passed\n");
|
||||
|
||||
t81_t82_arith_encode_free(se);
|
||||
t81_t82_arith_encode_free(sd);
|
||||
printf("Tests passed\n");
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -228,7 +228,6 @@ static int test_cycle(const char *test_id,
|
|||
if (comment && testbuf_len == 1000)
|
||||
t85_encode_comment(t85_enc, comment, strlen((const char *) comment) + 1);
|
||||
}
|
||||
t85_encode_release(t85_enc);
|
||||
printf("Encoded BIE has %lu bytes\n", (unsigned long int) testbuf_len);
|
||||
if (correct_length > 0)
|
||||
{
|
||||
|
@ -241,6 +240,9 @@ static int test_cycle(const char *test_id,
|
|||
printf("Test passed\n");
|
||||
}
|
||||
|
||||
cnt_a = t85_encode_get_compressed_image_size(t85_enc);
|
||||
t85_encode_free(t85_enc);
|
||||
|
||||
printf("%s.2: Decode in one big chunk\n", test_id);
|
||||
if ((decoded_image = (uint8_t *) malloc(image_size)) == NULL)
|
||||
{
|
||||
|
@ -254,7 +256,6 @@ static int test_cycle(const char *test_id,
|
|||
result = t85_decode_put(t85_dec, testbuf, testbuf_len);
|
||||
if (result == T4_DECODE_MORE_DATA)
|
||||
result = t85_decode_put(t85_dec, NULL, 0);
|
||||
cnt_a = t85_encode_get_compressed_image_size(t85_enc);
|
||||
cnt_b = t85_decode_get_compressed_image_size(t85_dec);
|
||||
if (cnt_a != cnt_b || cnt_a != testbuf_len*8 || result != T4_DECODE_OK)
|
||||
{
|
||||
|
@ -274,7 +275,7 @@ static int test_cycle(const char *test_id,
|
|||
exit(2);
|
||||
}
|
||||
free(decoded_image);
|
||||
t85_decode_release(t85_dec);
|
||||
t85_decode_free(t85_dec);
|
||||
printf("Test passed\n");
|
||||
|
||||
printf("%s.3: Decode byte by byte\n", test_id);
|
||||
|
@ -316,7 +317,7 @@ static int test_cycle(const char *test_id,
|
|||
exit(2);
|
||||
}
|
||||
free(decoded_image);
|
||||
t85_decode_release(t85_dec);
|
||||
t85_decode_free(t85_dec);
|
||||
printf("Test passed\n");
|
||||
|
||||
return 0;
|
||||
|
|
|
@ -94,6 +94,7 @@ int main(int argc, char *argv[])
|
|||
break;
|
||||
}
|
||||
}
|
||||
memset(&info, 0, sizeof(info));
|
||||
if ((inhandle = sf_open(in_file_name, SFM_READ, &info)) == NULL)
|
||||
{
|
||||
printf(" Cannot open audio file '%s'\n", in_file_name);
|
||||
|
@ -151,6 +152,7 @@ int main(int argc, char *argv[])
|
|||
count = 0;
|
||||
}
|
||||
}
|
||||
time_scale_release(&state);
|
||||
if (sf_close(inhandle))
|
||||
{
|
||||
printf(" Cannot close audio file '%s'\n", in_file_name);
|
||||
|
|
|
@ -122,6 +122,8 @@ static int periodogram_tests(void)
|
|||
return -1;
|
||||
}
|
||||
}
|
||||
awgn_free(noise_source_re);
|
||||
awgn_free(noise_source_im);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -70,7 +70,6 @@ int main(int argc, char *argv[])
|
|||
400,
|
||||
false);
|
||||
tone_gen_init(&tone_state, &tone_desc);
|
||||
|
||||
for (i = 0; i < 1000; i++)
|
||||
{
|
||||
len = tone_gen(&tone_state, amp, 160);
|
||||
|
@ -79,6 +78,7 @@ int main(int argc, char *argv[])
|
|||
break;
|
||||
sf_writef_short(outhandle, amp, len);
|
||||
}
|
||||
tone_gen_release(&tone_state);
|
||||
|
||||
/* Try a different tone pair */
|
||||
tone_gen_descriptor_init(&tone_desc,
|
||||
|
@ -92,7 +92,6 @@ int main(int argc, char *argv[])
|
|||
100,
|
||||
true);
|
||||
tone_gen_init(&tone_state, &tone_desc);
|
||||
|
||||
for (i = 0; i < 1000; i++)
|
||||
{
|
||||
len = tone_gen(&tone_state, amp, 160);
|
||||
|
@ -101,6 +100,7 @@ int main(int argc, char *argv[])
|
|||
break;
|
||||
sf_writef_short(outhandle, amp, len);
|
||||
}
|
||||
tone_gen_release(&tone_state);
|
||||
|
||||
/* Try a different tone pair */
|
||||
tone_gen_descriptor_init(&tone_desc,
|
||||
|
@ -114,7 +114,6 @@ int main(int argc, char *argv[])
|
|||
400,
|
||||
true);
|
||||
tone_gen_init(&tone_state, &tone_desc);
|
||||
|
||||
for (i = 0; i < 1000; i++)
|
||||
{
|
||||
len = tone_gen(&tone_state, amp, 160);
|
||||
|
@ -123,6 +122,7 @@ int main(int argc, char *argv[])
|
|||
break;
|
||||
sf_writef_short(outhandle, amp, len);
|
||||
}
|
||||
tone_gen_release(&tone_state);
|
||||
|
||||
/* Try a single tone */
|
||||
tone_gen_descriptor_init(&tone_desc,
|
||||
|
@ -136,7 +136,6 @@ int main(int argc, char *argv[])
|
|||
400,
|
||||
true);
|
||||
tone_gen_init(&tone_state, &tone_desc);
|
||||
|
||||
for (i = 0; i < 1000; i++)
|
||||
{
|
||||
len = tone_gen(&tone_state, amp, 160);
|
||||
|
@ -145,6 +144,7 @@ int main(int argc, char *argv[])
|
|||
break;
|
||||
sf_writef_short(outhandle, amp, len);
|
||||
}
|
||||
tone_gen_release(&tone_state);
|
||||
|
||||
/* Try a single non-repeating tone */
|
||||
tone_gen_descriptor_init(&tone_desc,
|
||||
|
@ -158,7 +158,6 @@ int main(int argc, char *argv[])
|
|||
0,
|
||||
false);
|
||||
tone_gen_init(&tone_state, &tone_desc);
|
||||
|
||||
for (i = 0; i < 1000; i++)
|
||||
{
|
||||
len = tone_gen(&tone_state, amp, 160);
|
||||
|
@ -167,6 +166,7 @@ int main(int argc, char *argv[])
|
|||
break;
|
||||
sf_writef_short(outhandle, amp, len);
|
||||
}
|
||||
tone_gen_release(&tone_state);
|
||||
|
||||
/* Try a single non-repeating tone at 0dBm0 */
|
||||
tone_gen_descriptor_init(&tone_desc,
|
||||
|
@ -180,7 +180,6 @@ int main(int argc, char *argv[])
|
|||
0,
|
||||
false);
|
||||
tone_gen_init(&tone_state, &tone_desc);
|
||||
|
||||
for (i = 0; i < 1000; i++)
|
||||
{
|
||||
len = tone_gen(&tone_state, amp, 160);
|
||||
|
@ -189,6 +188,7 @@ int main(int argc, char *argv[])
|
|||
break;
|
||||
sf_writef_short(outhandle, amp, len);
|
||||
}
|
||||
tone_gen_release(&tone_state);
|
||||
|
||||
/* Try an AM modulated tone at a modest modulation level (25%) */
|
||||
tone_gen_descriptor_init(&tone_desc,
|
||||
|
@ -202,7 +202,6 @@ int main(int argc, char *argv[])
|
|||
400,
|
||||
true);
|
||||
tone_gen_init(&tone_state, &tone_desc);
|
||||
|
||||
for (i = 0; i < 1000; i++)
|
||||
{
|
||||
len = tone_gen(&tone_state, amp, 160);
|
||||
|
@ -211,6 +210,7 @@ int main(int argc, char *argv[])
|
|||
break;
|
||||
sf_writef_short(outhandle, amp, len);
|
||||
}
|
||||
tone_gen_release(&tone_state);
|
||||
|
||||
/* Try an AM modulated tone at maximum modulation level (100%) */
|
||||
tone_gen_descriptor_init(&tone_desc,
|
||||
|
@ -224,7 +224,6 @@ int main(int argc, char *argv[])
|
|||
400,
|
||||
true);
|
||||
tone_gen_init(&tone_state, &tone_desc);
|
||||
|
||||
for (i = 0; i < 1000; i++)
|
||||
{
|
||||
len = tone_gen(&tone_state, amp, 160);
|
||||
|
@ -233,6 +232,7 @@ int main(int argc, char *argv[])
|
|||
break;
|
||||
sf_writef_short(outhandle, amp, len);
|
||||
}
|
||||
tone_gen_release(&tone_state);
|
||||
|
||||
if (sf_close_telephony(outhandle))
|
||||
{
|
||||
|
|
|
@ -94,6 +94,8 @@ char next_tx_file[1000];
|
|||
|
||||
static int next_step(faxtester_state_t *s);
|
||||
|
||||
static bool test_for_call_drop = false;
|
||||
|
||||
static int phase_b_handler(void *user_data, int result)
|
||||
{
|
||||
int ch;
|
||||
|
@ -641,6 +643,7 @@ static int next_step(faxtester_state_t *s)
|
|||
t4_tx_state_t t4_tx_state;
|
||||
t30_state_t *t30;
|
||||
|
||||
test_for_call_drop = false;
|
||||
if (s->cur == NULL)
|
||||
{
|
||||
if (!s->final_delayed)
|
||||
|
@ -798,6 +801,11 @@ static int next_step(faxtester_state_t *s)
|
|||
{
|
||||
faxtest_set_rx_silence(s);
|
||||
}
|
||||
else if (strcasecmp((const char *) type, "DROPCALL") == 0)
|
||||
{
|
||||
span_log(&s->logging, SPAN_LOG_FLOW, "Far end should drop the call\n");
|
||||
test_for_call_drop = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
span_log(&s->logging, SPAN_LOG_FLOW, "Unrecognised type '%s'\n", (const char *) type);
|
||||
|
@ -1109,6 +1117,11 @@ static int next_step(faxtester_state_t *s)
|
|||
span_log(&s->logging, SPAN_LOG_FLOW, "ECM image is %d bytes (min row bits %d)\n", len, min_row_bits);
|
||||
faxtester_set_ecm_image_buffer(s, image, len, ecm_block, ecm_frame_size, i);
|
||||
}
|
||||
else if (strcasecmp((const char *) type, "DROPCALL") == 0)
|
||||
{
|
||||
span_log(&s->logging, SPAN_LOG_FLOW, "Time to drop the call\n");
|
||||
return 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
span_log(&s->logging, SPAN_LOG_FLOW, "Unrecognised type '%s'\n", (const char *) type);
|
||||
|
@ -1198,6 +1211,16 @@ static void exchange(faxtester_state_t *s)
|
|||
/*endif*/
|
||||
}
|
||||
/*endif*/
|
||||
if (test_for_call_drop)
|
||||
{
|
||||
if (!t30_call_active(fax_get_t30_state(fax)))
|
||||
{
|
||||
printf("Call dropped\n");
|
||||
//break;
|
||||
}
|
||||
/*endif*/
|
||||
}
|
||||
/*endif*/
|
||||
}
|
||||
/*endfor*/
|
||||
if (log_audio)
|
||||
|
@ -1391,6 +1414,7 @@ int main(int argc, char *argv[])
|
|||
span_log_set_level(&state.logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_SHOW_TAG | SPAN_LOG_SHOW_SAMPLE_TIME | SPAN_LOG_FLOW);
|
||||
span_log_set_tag(&state.logging, "B");
|
||||
get_test_set(&state, xml_file_name, test_name);
|
||||
faxtester_release(&state);
|
||||
printf("Done\n");
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -535,7 +535,7 @@ int main(int argc, char *argv[])
|
|||
//rx.eq_put_step = rand()%(192*10/3);
|
||||
bert_init(&bert, bits_per_test, BERT_PATTERN_ITU_O152_11, test_bps, 20);
|
||||
bert_set_report(&bert, 10000, reporter, NULL);
|
||||
one_way_line_model_release(line_model);
|
||||
one_way_line_model_free(line_model);
|
||||
if ((line_model = one_way_line_model_init(line_model_no, (float) noise_level, channel_codec, 0)) == NULL)
|
||||
{
|
||||
fprintf(stderr, " Failed to create line model\n");
|
||||
|
@ -565,7 +565,7 @@ int main(int argc, char *argv[])
|
|||
fprintf(stderr, "At completion:\n");
|
||||
fprintf(stderr, "Final result %ddBm0/%ddBm0, %d bits, %d bad bits, %d resyncs\n", signal_level, noise_level, bert_results.total_bits, bert_results.bad_bits, bert_results.resyncs);
|
||||
fprintf(stderr, "Last report %ddBm0/%ddBm0, %d bits, %d bad bits, %d resyncs\n", signal_level, noise_level, latest_results.total_bits, latest_results.bad_bits, latest_results.resyncs);
|
||||
one_way_line_model_release(line_model);
|
||||
one_way_line_model_free(line_model);
|
||||
|
||||
if (signal_level > -43)
|
||||
{
|
||||
|
@ -575,6 +575,9 @@ int main(int argc, char *argv[])
|
|||
|
||||
printf("Tests passed.\n");
|
||||
}
|
||||
v17_rx_free(rx);
|
||||
if (tx)
|
||||
v17_tx_free(tx);
|
||||
#if defined(ENABLE_GUI)
|
||||
if (use_gui)
|
||||
qam_wait_to_end(qam_monitor);
|
||||
|
|
|
@ -455,6 +455,7 @@ int main(int argc, char *argv[])
|
|||
}
|
||||
}
|
||||
}
|
||||
both_ways_line_model_free(model);
|
||||
#if defined(ENABLE_GUI)
|
||||
if (use_gui)
|
||||
qam_wait_to_end(endpoint[0].qam_monitor);
|
||||
|
|
|
@ -540,7 +540,7 @@ int main(int argc, char *argv[])
|
|||
v27ter_rx_restart(rx, test_bps, false);
|
||||
bert_init(&bert, bits_per_test, BERT_PATTERN_ITU_O152_11, test_bps, 20);
|
||||
bert_set_report(&bert, 10000, reporter, NULL);
|
||||
one_way_line_model_release(line_model);
|
||||
one_way_line_model_free(line_model);
|
||||
if ((line_model = one_way_line_model_init(line_model_no, (float) noise_level, channel_codec, 0)) == NULL)
|
||||
{
|
||||
fprintf(stderr, " Failed to create line model\n");
|
||||
|
@ -571,7 +571,8 @@ int main(int argc, char *argv[])
|
|||
fprintf(stderr, "At completion:\n");
|
||||
fprintf(stderr, "Final result %ddBm0/%ddBm0, %d bits, %d bad bits, %d resyncs\n", signal_level, noise_level, bert_results.total_bits, bert_results.bad_bits, bert_results.resyncs);
|
||||
fprintf(stderr, "Last report %ddBm0/%ddBm0, %d bits, %d bad bits, %d resyncs\n", signal_level, noise_level, latest_results.total_bits, latest_results.bad_bits, latest_results.resyncs);
|
||||
one_way_line_model_release(line_model);
|
||||
one_way_line_model_free(line_model);
|
||||
|
||||
if (signal_level > -43)
|
||||
{
|
||||
printf("Tests failed.\n");
|
||||
|
@ -580,6 +581,10 @@ int main(int argc, char *argv[])
|
|||
|
||||
printf("Tests passed.\n");
|
||||
}
|
||||
v27ter_rx_free(rx);
|
||||
if (tx)
|
||||
v27ter_tx_free(tx);
|
||||
bert_release(&bert);
|
||||
#if defined(ENABLE_GUI)
|
||||
if (use_gui)
|
||||
qam_wait_to_end(qam_monitor);
|
||||
|
|
|
@ -520,7 +520,7 @@ int main(int argc, char *argv[])
|
|||
#endif
|
||||
bert_init(&bert, bits_per_test, BERT_PATTERN_ITU_O152_11, test_bps, 20);
|
||||
bert_set_report(&bert, 10000, reporter, NULL);
|
||||
one_way_line_model_release(line_model);
|
||||
one_way_line_model_free(line_model);
|
||||
if ((line_model = one_way_line_model_init(line_model_no, (float) noise_level, channel_codec, 0)) == NULL)
|
||||
{
|
||||
fprintf(stderr, " Failed to create line model\n");
|
||||
|
@ -550,7 +550,7 @@ int main(int argc, char *argv[])
|
|||
fprintf(stderr, "At completion:\n");
|
||||
fprintf(stderr, "Final result %ddBm0/%ddBm0, %d bits, %d bad bits, %d resyncs\n", signal_level, noise_level, bert_results.total_bits, bert_results.bad_bits, bert_results.resyncs);
|
||||
fprintf(stderr, "Last report %ddBm0/%ddBm0, %d bits, %d bad bits, %d resyncs\n", signal_level, noise_level, latest_results.total_bits, latest_results.bad_bits, latest_results.resyncs);
|
||||
one_way_line_model_release(line_model);
|
||||
one_way_line_model_free(line_model);
|
||||
|
||||
if (signal_level > -43)
|
||||
{
|
||||
|
@ -560,6 +560,10 @@ int main(int argc, char *argv[])
|
|||
|
||||
printf("Tests passed.\n");
|
||||
}
|
||||
v29_rx_free(rx);
|
||||
if (tx)
|
||||
v29_tx_free(tx);
|
||||
bert_release(&bert);
|
||||
#if defined(ENABLE_GUI)
|
||||
if (use_gui)
|
||||
qam_wait_to_end(qam_monitor);
|
||||
|
|
Loading…
Reference in New Issue