aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPhilipp Maier <pmaier@sysmocom.de>2017-12-15 09:35:21 +0100
committerHarald Welte <laforge@gnumonks.org>2017-12-20 15:48:38 +0000
commit6cb9e7d8981e127161f14f22ad9271252c531aec (patch)
treeca2efe5811db52e265e87d8d17a24f1efcf6f4a7
parente094157e125a70b9a384ba3cec01261624f4eb59 (diff)
libosmocodec: add FR bit offset definitions
This change defines the GSM FR bit positions as described in RFC 3551, which will be used by further ECU (Error Correction Unit) implementation. Change-Id: I1d0a198af0f8dd1f690b5a81f5c9eb92c43aefed
-rw-r--r--include/Makefile.am1
-rw-r--r--include/osmocom/codec/gsm610_bits.h272
2 files changed, 273 insertions, 0 deletions
diff --git a/include/Makefile.am b/include/Makefile.am
index 47140031..09f5ca65 100644
--- a/include/Makefile.am
+++ b/include/Makefile.am
@@ -2,6 +2,7 @@ BUILT_SOURCES = osmocom/gsm/gsm0503.h
nobase_include_HEADERS = \
osmocom/codec/codec.h \
+ osmocom/codec/gsm610_bits.h \
osmocom/core/application.h \
osmocom/core/backtrace.h \
osmocom/core/bit16gen.h \
diff --git a/include/osmocom/codec/gsm610_bits.h b/include/osmocom/codec/gsm610_bits.h
new file mode 100644
index 00000000..cef4cf4a
--- /dev/null
+++ b/include/osmocom/codec/gsm610_bits.h
@@ -0,0 +1,272 @@
+/*! \file gsm610_bits.h */
+
+#pragma once
+
+/* This enumeration describs a GSM-FR (GSM 06.10) frame in ints RTP bit order
+ * representation. See also RFC 3551 Table 3: GSM payload format */
+enum gsm610_rtp_bit_offsets {
+ GSM610_RTP_SIGNATURE_0,
+ GSM610_RTP_SIGNATURE_1,
+ GSM610_RTP_SIGNATURE_2,
+ GSM610_RTP_SIGNATURE_3,
+ GSM610_RTP_LARC0_0,
+ GSM610_RTP_LARC0_1,
+ GSM610_RTP_LARC0_2,
+ GSM610_RTP_LARC0_3,
+ GSM610_RTP_LARC0_4,
+ GSM610_RTP_LARC0_5,
+ GSM610_RTP_LARC1_0,
+ GSM610_RTP_LARC1_1,
+ GSM610_RTP_LARC1_2,
+ GSM610_RTP_LARC1_3,
+ GSM610_RTP_LARC1_4,
+ GSM610_RTP_LARC1_5,
+ GSM610_RTP_LARC2_0,
+ GSM610_RTP_LARC2_1,
+ GSM610_RTP_LARC2_2,
+ GSM610_RTP_LARC2_3,
+ GSM610_RTP_LARC2_4,
+ GSM610_RTP_LARC3_0,
+ GSM610_RTP_LARC3_1,
+ GSM610_RTP_LARC3_2,
+ GSM610_RTP_LARC3_3,
+ GSM610_RTP_LARC3_4,
+ GSM610_RTP_LARC4_0,
+ GSM610_RTP_LARC4_1,
+ GSM610_RTP_LARC4_2,
+ GSM610_RTP_LARC4_3,
+ GSM610_RTP_LARC5_0,
+ GSM610_RTP_LARC5_1,
+ GSM610_RTP_LARC5_2,
+ GSM610_RTP_LARC5_3,
+ GSM610_RTP_LARC6_0,
+ GSM610_RTP_LARC6_1,
+ GSM610_RTP_LARC6_2,
+ GSM610_RTP_LARC7_0,
+ GSM610_RTP_LARC7_1,
+ GSM610_RTP_LARC7_2,
+ GSM610_RTP_NC0_0,
+ GSM610_RTP_NC0_1,
+ GSM610_RTP_NC0_2,
+ GSM610_RTP_NC0_3,
+ GSM610_RTP_NC0_4,
+ GSM610_RTP_NC0_5,
+ GSM610_RTP_NC0_6,
+ GSM610_RTP_BC0_0,
+ GSM610_RTP_BC0_1,
+ GSM610_RTP_MC0_0,
+ GSM610_RTP_MC0_1,
+ GSM610_RTP_XMAXC00,
+ GSM610_RTP_XMAXC01,
+ GSM610_RTP_XMAXC02,
+ GSM610_RTP_XMAXC03,
+ GSM610_RTP_XMAXC04,
+ GSM610_RTP_XMAXC05,
+ GSM610_RTP_XMC0_0,
+ GSM610_RTP_XMC0_1,
+ GSM610_RTP_XMC0_2,
+ GSM610_RTP_XMC1_0,
+ GSM610_RTP_XMC1_1,
+ GSM610_RTP_XMC1_2,
+ GSM610_RTP_XMC2_0,
+ GSM610_RTP_XMC2_1,
+ GSM610_RTP_XMC2_2,
+ GSM610_RTP_XMC3_0,
+ GSM610_RTP_XMC3_1,
+ GSM610_RTP_XMC3_2,
+ GSM610_RTP_XMC4_0,
+ GSM610_RTP_XMC4_1,
+ GSM610_RTP_XMC4_2,
+ GSM610_RTP_XMC5_0,
+ GSM610_RTP_XMC5_1,
+ GSM610_RTP_XMC5_2,
+ GSM610_RTP_XMC6_0,
+ GSM610_RTP_XMC6_1,
+ GSM610_RTP_XMC6_2,
+ GSM610_RTP_XMC7_0,
+ GSM610_RTP_XMC7_1,
+ GSM610_RTP_XMC7_2,
+ GSM610_RTP_XMC8_0,
+ GSM610_RTP_XMC8_1,
+ GSM610_RTP_XMC8_2,
+ GSM610_RTP_XMC9_0,
+ GSM610_RTP_XMC9_1,
+ GSM610_RTP_XMC9_2,
+ GSM610_RTP_XMC10_0,
+ GSM610_RTP_XMC10_1,
+ GSM610_RTP_XMC10_2,
+ GSM610_RTP_XMC11_0,
+ GSM610_RTP_XMC11_1,
+ GSM610_RTP_XMC11_2,
+ GSM610_RTP_XMC12_0,
+ GSM610_RTP_XMC12_1,
+ GSM610_RTP_XCM12_2,
+ GSM610_RTP_NC1_0,
+ GSM610_RTP_NC1_1,
+ GSM610_RTP_NC1_2,
+ GSM610_RTP_NC1_3,
+ GSM610_RTP_NC1_4,
+ GSM610_RTP_NC1_5,
+ GSM610_RTP_NC1_6,
+ GSM610_RTP_BC1_0,
+ GSM610_RTP_BC1_1,
+ GSM610_RTP_MC1_0,
+ GSM610_RTP_MC1_1,
+ GSM610_RTP_XMAXC10,
+ GSM610_RTP_XMAXC11,
+ GSM610_RTP_XMAXC12,
+ GSM610_RTP_XMAXC13,
+ GSM610_RTP_XMAXC14,
+ GSM610_RTP_XMAX15,
+ GSM610_RTP_XMC13_0,
+ GSM610_RTP_XMC13_1,
+ GSM610_RTP_XMC13_2,
+ GSM610_RTP_XMC14_0,
+ GSM610_RTP_XMC14_1,
+ GSM610_RTP_XMC14_2,
+ GSM610_RTP_XMC15_0,
+ GSM610_RTP_XMC15_1,
+ GSM610_RTP_XMC15_2,
+ GSM610_RTP_XMC16_0,
+ GSM610_RTP_XMC16_1,
+ GSM610_RTP_XMC16_2,
+ GSM610_RTP_XMC17_0,
+ GSM610_RTP_XMC17_1,
+ GSM610_RTP_XMC17_2,
+ GSM610_RTP_XMC18_0,
+ GSM610_RTP_XMC18_1,
+ GSM610_RTP_XMC18_2,
+ GSM610_RTP_XMC19_0,
+ GSM610_RTP_XMC19_1,
+ GSM610_RTP_XMC19_2,
+ GSM610_RTP_XMC20_0,
+ GSM610_RTP_XMC20_1,
+ GSM610_RTP_XMC20_2,
+ GSM610_RTP_XMC21_0,
+ GSM610_RTP_XMC21_1,
+ GSM610_RTP_XMC21_2,
+ GSM610_RTP_XMC22_0,
+ GSM610_RTP_XMC22_1,
+ GSM610_RTP_XMC22_2,
+ GSM610_RTP_XMC23_0,
+ GSM610_RTP_XMC23_1,
+ GSM610_RTP_XMC23_2,
+ GSM610_RTP_XMC24_0,
+ GSM610_RTP_XMC24_1,
+ GSM610_RTP_XMC24_2,
+ GSM610_RTP_XMC25_0,
+ GSM610_RTP_XMC25_1,
+ GSM610_RTP_XMC25_2,
+ GSM610_RTP_NC2_0,
+ GSM610_RTP_NC2_1,
+ GSM610_RTP_NC2_2,
+ GSM610_RTP_NC2_3,
+ GSM610_RTP_NC2_4,
+ GSM610_RTP_NC2_5,
+ GSM610_RTP_NC2_6,
+ GSM610_RTP_BC2_0,
+ GSM610_RTP_BC2_1,
+ GSM610_RTP_MC2_0,
+ GSM610_RTP_MC2_1,
+ GSM610_RTP_XMAXC20,
+ GSM610_RTP_XMAXC21,
+ GSM610_RTP_XMAXC22,
+ GSM610_RTP_XMAXC23,
+ GSM610_RTP_XMAXC24,
+ GSM610_RTP_XMAXC25,
+ GSM610_RTP_XMC26_0,
+ GSM610_RTP_XMC26_1,
+ GSM610_RTP_XMC26_2,
+ GSM610_RTP_XMC27_0,
+ GSM610_RTP_XMC27_1,
+ GSM610_RTP_XMC27_2,
+ GSM610_RTP_XMC28_0,
+ GSM610_RTP_XMC28_1,
+ GSM610_RTP_XMC28_2,
+ GSM610_RTP_XMC29_0,
+ GSM610_RTP_XMC29_1,
+ GSM610_RTP_XMC29_2,
+ GSM610_RTP_XMC30_0,
+ GSM610_RTP_XMC30_1,
+ GSM610_RTP_XMC30_2,
+ GSM610_RTP_XMC31_0,
+ GSM610_RTP_XMC31_1,
+ GSM610_RTP_XMC31_2,
+ GSM610_RTP_XMC32_0,
+ GSM610_RTP_XMC32_1,
+ GSM610_RTP_XMC32_2,
+ GSM610_RTP_XMC33_0,
+ GSM610_RTP_XMC33_1,
+ GSM610_RTP_XMC33_2,
+ GSM610_RTP_XMC34_0,
+ GSM610_RTP_XMC34_1,
+ GSM610_RTP_XMC34_2,
+ GSM610_RTP_XMC35_0,
+ GSM610_RTP_XMC35_1,
+ GSM610_RTP_XMC35_2,
+ GSM610_RTP_XMC36_0,
+ GSM610_RTP_XMC36_1,
+ GSM610_RTP_XMC36_2,
+ GSM610_RTP_XMC37_0,
+ GSM610_RTP_XMC37_1,
+ GSM610_RTP_XMC37_2,
+ GSM610_RTP_XMC38_0,
+ GSM610_RTP_XMC38_1,
+ GSM610_RTP_XMC38_2,
+ GSM610_RTP_NC3_0,
+ GSM610_RTP_NC3_1,
+ GSM610_RTP_NC3_2,
+ GSM610_RTP_NC3_3,
+ GSM610_RTP_NC3_4,
+ GSM610_RTP_NC3_5,
+ GSM610_RTP_NC3_6,
+ GSM610_RTP_BC3_0,
+ GSM610_RTP_BC3_1,
+ GSM610_RTP_MC3_0,
+ GSM610_RTP_MC3_1,
+ GSM610_RTP_XMAXC30,
+ GSM610_RTP_XMAXC31,
+ GSM610_RTP_XMAXC32,
+ GSM610_RTP_XMAXC33,
+ GSM610_RTP_XMAXC34,
+ GSM610_RTP_XMAXC35,
+ GSM610_RTP_XMC39_0,
+ GSM610_RTP_XMC39_1,
+ GSM610_RTP_XMC39_2,
+ GSM610_RTP_XMC40_0,
+ GSM610_RTP_XMC40_1,
+ GSM610_RTP_XMC40_2,
+ GSM610_RTP_XMC41_0,
+ GSM610_RTP_XMC41_1,
+ GSM610_RTP_XMC41_2,
+ GSM610_RTP_XMC42_0,
+ GSM610_RTP_XMC42_1,
+ GSM610_RTP_XMC42_2,
+ GSM610_RTP_XMC43_0,
+ GSM610_RTP_XMC43_1,
+ GSM610_RTP_XMC43_2,
+ GSM610_RTP_XMC44_0,
+ GSM610_RTP_XMC44_1,
+ GSM610_RTP_XMC44_2,
+ GSM610_RTP_XMC45_0,
+ GSM610_RTP_XMC45_1,
+ GSM610_RTP_XMC45_2,
+ GSM610_RTP_XMC46_0,
+ GSM610_RTP_XMC46_1,
+ GSM610_RTP_XMC46_2,
+ GSM610_RTP_XMC47_0,
+ GSM610_RTP_XMC47_1,
+ GSM610_RTP_XMC47_2,
+ GSM610_RTP_XMC48_0,
+ GSM610_RTP_XMC48_1,
+ GSM610_RTP_XMC48_2,
+ GSM610_RTP_XMC49_0,
+ GSM610_RTP_XMC49_1,
+ GSM610_RTP_XMC49_2,
+ GSM610_RTP_XMC50_0,
+ GSM610_RTP_XMC50_1,
+ GSM610_RTP_XMC50_2,
+ GSM610_RTP_XMC51_0,
+ GSM610_RTP_XMC51_1,
+ GSM610_RTP_XMC51_2
+};