Change in osmo-bsc[master]: codec_pref: cosmetic: seperate half/full rate determination

This is merely a historical archive of years 2008-2021, before the migration to mailman3.

A maintained and still updated list archive can be found at https://lists.osmocom.org/hyperkitty/list/gerrit-log@lists.osmocom.org/.

Harald Welte gerrit-no-reply at lists.osmocom.org
Wed Oct 10 20:43:53 UTC 2018


Harald Welte has submitted this change and it was merged. ( https://gerrit.osmocom.org/11295 )

Change subject: codec_pref: cosmetic: seperate half/full rate determination
......................................................................

codec_pref: cosmetic: seperate half/full rate determination

The function match_codec_pref determines whether a permitted speech
value belongs to a half-rate or full-rate codec. Lets seperate this into
a separate function.

Change-Id: Iec1db4621ba5a09bc0e3fc40b66f3a3bc5f54add
Related: OS#3503
---
M src/osmo-bsc/codec_pref.c
1 file changed, 36 insertions(+), 21 deletions(-)

Approvals:
  Jenkins Builder: Verified
  Harald Welte: Looks good to me, approved



diff --git a/src/osmo-bsc/codec_pref.c b/src/osmo-bsc/codec_pref.c
index 0f0ffa5..a741e11 100644
--- a/src/osmo-bsc/codec_pref.c
+++ b/src/osmo-bsc/codec_pref.c
@@ -26,6 +26,38 @@
 #include <osmocom/bsc/codec_pref.h>
 #include <osmocom/bsc/gsm_data.h>
 
+/* Determine whether a permitted speech value is specifies a half rate or full
+ * rate codec */
+static int full_rate_from_perm_spch(bool * full_rate,
+				    enum gsm0808_permitted_speech perm_spch)
+{
+	/* Check if the result is a half or full rate codec */
+	switch (perm_spch) {
+	case GSM0808_PERM_HR1:
+	case GSM0808_PERM_HR2:
+	case GSM0808_PERM_HR3:
+	case GSM0808_PERM_HR4:
+	case GSM0808_PERM_HR6:
+		*full_rate = false;
+		break;
+
+	case GSM0808_PERM_FR1:
+	case GSM0808_PERM_FR2:
+	case GSM0808_PERM_FR3:
+	case GSM0808_PERM_FR4:
+	case GSM0808_PERM_FR5:
+		*full_rate = true;
+		break;
+
+	default:
+		LOGP(DMSC, LOGL_ERROR, "Invalid permitted-speech value: %u\n",
+		     perm_spch);
+		return -EINVAL;
+	}
+
+	return 0;
+}
+
 /* Helper function for match_codec_pref(), looks up a matching chan mode for
  * a given permitted speech value */
 static enum gsm48_chan_mode gsm88_to_chan_mode(enum gsm0808_permitted_speech speech)
@@ -225,6 +257,7 @@
 	bool match = false;
 	const struct gsm0808_speech_codec *sc_match = NULL;
 	uint16_t amr_s15_s0_supported;
+	int rc;
 
 	/* Note: Normally the MSC should never try to advertise a codec that
 	 * we did not advertise as supported before. In order to ensure that
@@ -255,28 +288,10 @@
 		return -1;
 	}
 
-	/* Check if the result is a half or full rate codec */
-	switch (perm_spch) {
-	case GSM0808_PERM_HR1:
-	case GSM0808_PERM_HR2:
-	case GSM0808_PERM_HR3:
-	case GSM0808_PERM_HR4:
-	case GSM0808_PERM_HR6:
-		*full_rate = false;
-		break;
-
-	case GSM0808_PERM_FR1:
-	case GSM0808_PERM_FR2:
-	case GSM0808_PERM_FR3:
-	case GSM0808_PERM_FR4:
-	case GSM0808_PERM_FR5:
-		*full_rate = true;
-		break;
-
-	default:
-		LOGP(DMSC, LOGL_ERROR, "Invalid permitted-speech value: %u\n", perm_spch);
+	/* Determine if the result is a half or full rate codec */
+	rc = full_rate_from_perm_spch(full_rate, perm_spch);
+	if (rc < 0)
 		return -EINVAL;
-	}
 
 	/* Lookup a channel mode for the selected codec */
 	*chan_mode = gsm88_to_chan_mode(perm_spch);

-- 
To view, visit https://gerrit.osmocom.org/11295
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings

Gerrit-Project: osmo-bsc
Gerrit-Branch: master
Gerrit-MessageType: merged
Gerrit-Change-Id: Iec1db4621ba5a09bc0e3fc40b66f3a3bc5f54add
Gerrit-Change-Number: 11295
Gerrit-PatchSet: 1
Gerrit-Owner: dexter <pmaier at sysmocom.de>
Gerrit-Reviewer: Harald Welte <laforge at gnumonks.org>
Gerrit-Reviewer: Jenkins Builder (1000002)
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osmocom.org/pipermail/gerrit-log/attachments/20181010/4e17d3ec/attachment.htm>


More information about the gerrit-log mailing list