Some spandsp tweaks after studying a klocwork report

This commit is contained in:
Steve Underwood 2013-04-17 09:07:54 +08:00
parent b1447dd635
commit 538d9beacd
5 changed files with 22 additions and 13 deletions

View File

@ -93,8 +93,15 @@
#define T30_DCS_BIT_UNLIMITED_LENGTH 20 #define T30_DCS_BIT_UNLIMITED_LENGTH 20
/* Bits 21, 22, 23 - min scan line time */ /* Bits 21, 22, 23 - min scan line time */
/* When ISDN mode is used, in DIS/DTC bits 21 to 23 shall be set to "1". */ /* When ISDN mode is used, in DIS/DTC bits 21 to 23 shall be set to "1". */
#define T30_DIS_BIT_MIN_SCAN_LINE_TIME_CAPABILITY_1 21
#define T30_DCS_BIT_MIN_SCAN_LINE_TIME_1 21
#define T30_DIS_BIT_MIN_SCAN_LINE_TIME_CAPABILITY_2 22
#define T30_DCS_BIT_MIN_SCAN_LINE_TIME_2 22
#define T30_DIS_BIT_MIN_SCAN_LINE_TIME_CAPABILITY_3 23
#define T30_DCS_BIT_MIN_SCAN_LINE_TIME_3 23
#define T30_DIS_BIT_MIN_SCAN_LINE_TIME_CAPABILITY_4 24
#define T30_DCS_BIT_MIN_SCAN_LINE_TIME_4 24
/* Bit 24 is an extension bit */ /* Bit 24 is an extension bit */

View File

@ -1033,6 +1033,7 @@ SPAN_DECLARE(int) v27ter_rx_restart(v27ter_rx_state_t *s, int bit_rate, int old_
s->low_samples = 0; s->low_samples = 0;
s->carrier_drop_pending = FALSE; s->carrier_drop_pending = FALSE;
#endif #endif
vec_zeroi32(s->diff_angles, 16);
s->carrier_phase = 0; s->carrier_phase = 0;
#if defined(SPANDSP_USE_FIXED_POINT) #if defined(SPANDSP_USE_FIXED_POINT)

View File

@ -1085,6 +1085,7 @@ SPAN_DECLARE(int) v29_rx_restart(v29_rx_state_t *s, int bit_rate, int old_train)
s->carrier_drop_pending = FALSE; s->carrier_drop_pending = FALSE;
#endif #endif
s->old_train = old_train; s->old_train = old_train;
vec_zeroi32(s->diff_angles, 16);
s->carrier_phase = 0; s->carrier_phase = 0;

View File

@ -305,9 +305,9 @@ static int receive_xid(v42_state_t *ss, const uint8_t *frame, int len)
param_id = buf[0]; param_id = buf[0];
param_len = buf[1]; param_len = buf[1];
buf += 2; buf += 2;
group_len -= (2 + param_len); if (group_len < (2 + param_len))
if (group_len < 0)
break; break;
group_len -= (2 + param_len);
switch (param_id) switch (param_id)
{ {
case PI_HDLC_OPTIONAL_FUNCTIONS: case PI_HDLC_OPTIONAL_FUNCTIONS:
@ -347,9 +347,9 @@ static int receive_xid(v42_state_t *ss, const uint8_t *frame, int len)
param_id = buf[0]; param_id = buf[0];
param_len = buf[1]; param_len = buf[1];
buf += 2; buf += 2;
group_len -= (2 + param_len); if (group_len < 2 + param_len)
if (group_len < 0)
break; break;
group_len -= (2 + param_len);
switch (param_id) switch (param_id)
{ {
case PI_PARAMETER_SET_ID: case PI_PARAMETER_SET_ID:

View File

@ -190,15 +190,15 @@ SPAN_DECLARE(const char *) v8_pstn_access_to_str(int pstn_access)
return "Calling modem on cellular"; return "Calling modem on cellular";
case V8_PSTN_ACCESS_ANSWER_DCE_CELLULAR: case V8_PSTN_ACCESS_ANSWER_DCE_CELLULAR:
return "Answering modem on cellular"; return "Answering modem on cellular";
case V8_PSTN_ACCESS_ANSWER_DCE_CELLULAR | V8_PSTN_ACCESS_CALL_DCE_CELLULAR: case (V8_PSTN_ACCESS_ANSWER_DCE_CELLULAR | V8_PSTN_ACCESS_CALL_DCE_CELLULAR):
return "Answering and calling modems on cellular"; return "Answering and calling modems on cellular";
case V8_PSTN_ACCESS_DCE_ON_DIGITAL: case V8_PSTN_ACCESS_DCE_ON_DIGITAL:
return "DCE on digital"; return "DCE on digital";
case V8_PSTN_ACCESS_DCE_ON_DIGITAL | V8_PSTN_ACCESS_CALL_DCE_CELLULAR: case (V8_PSTN_ACCESS_DCE_ON_DIGITAL | V8_PSTN_ACCESS_CALL_DCE_CELLULAR):
return "DCE on digital, and calling modem on cellular"; return "DCE on digital, and calling modem on cellular";
case V8_PSTN_ACCESS_DCE_ON_DIGITAL | V8_PSTN_ACCESS_ANSWER_DCE_CELLULAR: case (V8_PSTN_ACCESS_DCE_ON_DIGITAL | V8_PSTN_ACCESS_ANSWER_DCE_CELLULAR):
return "DCE on digital, answering modem on cellular"; return "DCE on digital, answering modem on cellular";
case V8_PSTN_ACCESS_DCE_ON_DIGITAL | V8_PSTN_ACCESS_ANSWER_DCE_CELLULAR | V8_PSTN_ACCESS_CALL_DCE_CELLULAR: case (V8_PSTN_ACCESS_DCE_ON_DIGITAL | V8_PSTN_ACCESS_ANSWER_DCE_CELLULAR | V8_PSTN_ACCESS_CALL_DCE_CELLULAR):
return "DCE on digital, and answering and calling modems on cellular"; return "DCE on digital, and answering and calling modems on cellular";
} }
return "PSTN access unknown"; return "PSTN access unknown";
@ -226,15 +226,15 @@ SPAN_DECLARE(const char *) v8_pcm_modem_availability_to_str(int pcm_modem_availa
return "V.90/V.92 analogue available"; return "V.90/V.92 analogue available";
case V8_PSTN_PCM_MODEM_V90_V92_DIGITAL: case V8_PSTN_PCM_MODEM_V90_V92_DIGITAL:
return "V.90/V.92 digital available"; return "V.90/V.92 digital available";
case V8_PSTN_PCM_MODEM_V90_V92_DIGITAL | V8_PSTN_PCM_MODEM_V90_V92_ANALOGUE: case (V8_PSTN_PCM_MODEM_V90_V92_DIGITAL | V8_PSTN_PCM_MODEM_V90_V92_ANALOGUE):
return "V.90/V.92 digital/analogue available"; return "V.90/V.92 digital/analogue available";
case V8_PSTN_PCM_MODEM_V91: case V8_PSTN_PCM_MODEM_V91:
return "V.91 available"; return "V.91 available";
case V8_PSTN_PCM_MODEM_V91 | V8_PSTN_PCM_MODEM_V90_V92_ANALOGUE: case (V8_PSTN_PCM_MODEM_V91 | V8_PSTN_PCM_MODEM_V90_V92_ANALOGUE):
return "V.91 and V.90/V.92 analogue available"; return "V.91 and V.90/V.92 analogue available";
case V8_PSTN_PCM_MODEM_V91 | V8_PSTN_PCM_MODEM_V90_V92_DIGITAL: case (V8_PSTN_PCM_MODEM_V91 | V8_PSTN_PCM_MODEM_V90_V92_DIGITAL):
return "V.91 and V.90/V.92 digital available"; return "V.91 and V.90/V.92 digital available";
case V8_PSTN_PCM_MODEM_V91 | V8_PSTN_PCM_MODEM_V90_V92_DIGITAL | V8_PSTN_PCM_MODEM_V90_V92_ANALOGUE: case (V8_PSTN_PCM_MODEM_V91 | V8_PSTN_PCM_MODEM_V90_V92_DIGITAL | V8_PSTN_PCM_MODEM_V90_V92_ANALOGUE):
return "V.91 and V.90/V.92 digital/analogue available"; return "V.91 and V.90/V.92 digital/analogue available";
} }
return "PCM availability unknown"; return "PCM availability unknown";