aboutsummaryrefslogtreecommitdiffstats
path: root/include/osmocom/bsc/codec_pref.h
diff options
context:
space:
mode:
authorPhilipp Maier <pmaier@sysmocom.de>2018-07-13 09:17:07 +0200
committerHarald Welte <laforge@gnumonks.org>2018-07-22 06:16:11 +0000
commit844876f8d5b3be161b6694e274692679608bad50 (patch)
tree2ca798db65c7333ba8f29be33b4c39a4d6f3501f /include/osmocom/bsc/codec_pref.h
parent16dd64a078783fd9077b6b4f5cc36f0bd90df3d3 (diff)
codec_pref: move match_codec_pref() to separate c-file and add unit-test
At the moment there are three sources that may advertise a list of supported audio codec/rate settings. There is the MS that advertises advertises a speech codec list and the MSC that sends a channel type information element over A and there are also settings in the bsc configuration file that may restrict the codec/rate types that are allowed to use. The function match_codec_pref() looks at all of the three buckets and selects a codec that satisfies all three. This is already a somewhat complicated process, overit is very isolated, so lets give it its own c-file. Due to the lack of unit-tests it is very hard to make changes here so lets add also unit-test to make sure that regressions are catched early. - Put match_codec_pref() and all its helper functions into a separate c-file. - Add a unit test. Change-Id: Iabedfdcec8b99a319f2d57cbea45c5e36c7b6e29 Related: OS#3361
Diffstat (limited to 'include/osmocom/bsc/codec_pref.h')
-rw-r--r--include/osmocom/bsc/codec_pref.h6
1 files changed, 6 insertions, 0 deletions
diff --git a/include/osmocom/bsc/codec_pref.h b/include/osmocom/bsc/codec_pref.h
new file mode 100644
index 000000000..6933ceacd
--- /dev/null
+++ b/include/osmocom/bsc/codec_pref.h
@@ -0,0 +1,6 @@
+#pragma once
+
+int match_codec_pref(int *full_rate, enum gsm48_chan_mode *chan_mode,
+ const struct gsm0808_channel_type *ct,
+ const struct gsm0808_speech_codec_list *scl,
+ const struct bsc_msc_data *msc);