From 6cb9e7d8981e127161f14f22ad9271252c531aec Mon Sep 17 00:00:00 2001 From: Philipp Maier Date: Fri, 15 Dec 2017 09:35:21 +0100 Subject: 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 --- include/Makefile.am | 1 + include/osmocom/codec/gsm610_bits.h | 272 ++++++++++++++++++++++++++++++++++++ 2 files changed, 273 insertions(+) create mode 100644 include/osmocom/codec/gsm610_bits.h 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 +}; -- cgit v1.2.3