From a7918c2241483dea31904d035f845f3697ae61d2 Mon Sep 17 00:00:00 2001 From: Neels Hofmeyr Date: Sun, 25 Feb 2024 03:48:51 +0100 Subject: [PATCH] ran_infra codecs init Change-Id: I7f7d50eecbd1dcde3a31eb34789e385815bb5a72 --- src/libmsc/ran_infra.c | 43 ++++++++++++++++++++---------------------- 1 file changed, 20 insertions(+), 23 deletions(-) diff --git a/src/libmsc/ran_infra.c b/src/libmsc/ran_infra.c index 07a1cd2da..0c4f88b83 100644 --- a/src/libmsc/ran_infra.c +++ b/src/libmsc/ran_infra.c @@ -130,30 +130,27 @@ struct ran_infra msc_ran_infra[] = { const int msc_ran_infra_len = ARRAY_SIZE(msc_ran_infra); -static __attribute__((constructor)) void on_dso_load_geran(void) +static __attribute__((constructor)) void on_dso_load_ran_codecs(void) { - /* Initialize GERAN default codecs, in order of preference. By definition, all codec_mapping entries that match - * one of the GERAN GMSK Speech Versions are available. */ - static const enum gsm48_bcap_speech_ver mobile_codecs[] = { - GSM48_BCAP_SV_AMR_F /*!< 4 GSM FR V3 (FR AMR) */, - GSM48_BCAP_SV_AMR_H /*!< 5 GSM HR V3 (HR_AMR) */, - GSM48_BCAP_SV_EFR /*!< 2 GSM FR V2 (GSM EFR) */, - GSM48_BCAP_SV_FR /*!< 0 GSM FR V1 (GSM FR) */, - GSM48_BCAP_SV_HR /*!< 1 GSM HR V1 (GSM HR) */, + msc_ran_infra[OSMO_RAT_GERAN_A].codecs = (struct sdp_audio_codecs){ + .count = 7, + .codec = { + { .subtype_name = "AMR", .rate = 8000, .fmtp = "octet-align=1;mode-set=0,2,4,7", .payload_type = 112, }, + { .subtype_name = "AMR", .rate = 8000, .fmtp = "octet-align=1;mode-set=0,2,4", .payload_type = 112, }, + { .subtype_name = "AMR", .rate = 8000, .fmtp = "mode-set=0,2,4,7", .payload_type = 112, }, + { .subtype_name = "AMR", .rate = 8000, .fmtp = "mode-set=0,2,4", .payload_type = 112, }, + { .subtype_name = "GSM-EFR", .rate = 8000, .payload_type = 110, }, + { .subtype_name = "GSM", .rate = 8000, .payload_type = 3, }, + { .subtype_name = "GSM-HR-08", .rate = 8000, .payload_type = 111, }, + }, }; - int i; - for (i = 0; i < ARRAY_SIZE(mobile_codecs); i++) - sdp_audio_codecs_add_speech_ver(&msc_ran_infra[OSMO_RAT_GERAN_A].codecs, mobile_codecs[i]); -} - -static __attribute__((constructor)) void on_dso_load_utran(void) -{ - static const enum gsm48_bcap_speech_ver utran_codecs[] = { - GSM48_BCAP_SV_AMR_F /*!< 4 GSM FR V3 (FR AMR) */, - GSM48_BCAP_SV_AMR_H /*!< 5 GSM HR V3 (HR_AMR) */, - GSM48_BCAP_SV_AMR_FW /*!< 8 GSM FR V5 (FR AMR-WB) */, + msc_ran_infra[OSMO_RAT_UTRAN_IU].codecs = (struct sdp_audio_codecs){ + .count = 4, + .codec = { + { .subtype_name = "AMR", .rate = 8000, .fmtp = "octet-align=1;mode-set=0,2,4,7", .payload_type = 112, }, + { .subtype_name = "AMR", .rate = 8000, .fmtp = "octet-align=1;mode-set=0,2,4", .payload_type = 112, }, + { .subtype_name = "AMR", .rate = 8000, .fmtp = "mode-set=0,2,4,7", .payload_type = 112, }, + { .subtype_name = "AMR", .rate = 8000, .fmtp = "mode-set=0,2,4", .payload_type = 112, }, + }, }; - int i; - for (i = 0; i < ARRAY_SIZE(utran_codecs); i++) - sdp_audio_codecs_add_speech_ver(&msc_ran_infra[OSMO_RAT_UTRAN_IU].codecs, utran_codecs[i]); }