]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
Some spandsp tweaks after studying a klocwork report
authorSteve Underwood <steveu@coppice.org>
Wed, 17 Apr 2013 01:07:54 +0000 (09:07 +0800)
committerSteve Underwood <steveu@coppice.org>
Wed, 17 Apr 2013 01:07:54 +0000 (09:07 +0800)
libs/spandsp/src/spandsp/private/t30_dis_dtc_dcs_bits.h
libs/spandsp/src/v27ter_rx.c
libs/spandsp/src/v29rx.c
libs/spandsp/src/v42.c
libs/spandsp/src/v8.c

index 52e0ac8dd2d0f20dfac24997b8a4918c57d6a404..229fafab3523b799e2733315c9c18196b997a836 100644 (file)
 #define T30_DCS_BIT_UNLIMITED_LENGTH                        20
 
 /* 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". */
+#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 */
 
index 459163a997592fa778d5ea5fc3f905e9e34ca88c..5dabe1c6f06ec7c9142ee94178ea65bfa15e7091 100644 (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->carrier_drop_pending = FALSE;
 #endif
+    vec_zeroi32(s->diff_angles, 16);
 
     s->carrier_phase = 0;
 #if defined(SPANDSP_USE_FIXED_POINT)
index f875966056d0c499eabc89dd88faefe6dcbca253..3bb476726dcd16f9123df5c596bba449c05e0e72 100644 (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;
 #endif
     s->old_train = old_train;
+    vec_zeroi32(s->diff_angles, 16);
 
     s->carrier_phase = 0;
 
index 3830f5c53a83dfa8f8284c9c2b86f641f9d1a25f..29255eea07d33fcbc4c26766086aa3e8a2f063c3 100644 (file)
@@ -305,9 +305,9 @@ static int receive_xid(v42_state_t *ss, const uint8_t *frame, int len)
                 param_id = buf[0];
                 param_len = buf[1];
                 buf += 2;
-                group_len -= (2 + param_len);
-                if (group_len < 0)
+                if (group_len < (2 + param_len))
                     break;
+                group_len -= (2 + param_len);
                 switch (param_id)
                 {
                 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_len = buf[1];
                 buf += 2;
-                group_len -= (2 + param_len);
-                if (group_len < 0)
+                if (group_len < 2 + param_len)
                     break;
+                group_len -= (2 + param_len);
                 switch (param_id)
                 {
                 case PI_PARAMETER_SET_ID:
index e04a1eba9cf44e3ce060baedceb32f70ff8323b6..3cf63ceacba9793908229202bec95c2c139eadda 100644 (file)
@@ -190,15 +190,15 @@ SPAN_DECLARE(const char *) v8_pstn_access_to_str(int pstn_access)
         return "Calling modem on cellular";
     case V8_PSTN_ACCESS_ANSWER_DCE_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";
     case V8_PSTN_ACCESS_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";
-    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";
-    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 "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";
     case V8_PSTN_PCM_MODEM_V90_V92_DIGITAL:
         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";
     case V8_PSTN_PCM_MODEM_V91:
         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";
-    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";
-    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 "PCM availability unknown";