diff options
author | Philipp Maier <pmaier@sysmocom.de> | 2018-07-13 09:17:07 +0200 |
---|---|---|
committer | Harald Welte <laforge@gnumonks.org> | 2018-07-22 06:16:11 +0000 |
commit | 844876f8d5b3be161b6694e274692679608bad50 (patch) | |
tree | 2ca798db65c7333ba8f29be33b4c39a4d6f3501f /include/osmocom/bsc | |
parent | 16dd64a078783fd9077b6b4f5cc36f0bd90df3d3 (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')
-rw-r--r-- | include/osmocom/bsc/Makefile.am | 1 | ||||
-rw-r--r-- | include/osmocom/bsc/codec_pref.h | 6 |
2 files changed, 7 insertions, 0 deletions
diff --git a/include/osmocom/bsc/Makefile.am b/include/osmocom/bsc/Makefile.am index 5fa39ebc5..dfab5929c 100644 --- a/include/osmocom/bsc/Makefile.am +++ b/include/osmocom/bsc/Makefile.am @@ -12,6 +12,7 @@ noinst_HEADERS = \ bss.h \ bts_ipaccess_nanobts_omlattr.h \ chan_alloc.h \ + codec_pref.h \ ctrl.h \ debug.h \ e1_config.h \ 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); |