aboutsummaryrefslogtreecommitdiffstats
path: root/src/coding
AgeCommit message (Collapse)AuthorFilesLines
2017-11-13Fix/Update copyright notices; Add SPDX annotationHarald Welte5-0/+10
Let's fix some erroneous/accidential references to wrong license, update copyright information where applicable and introduce a SPDX-License-Identifier to all files. Change-Id: I39af26c6aaaf5c926966391f6565fc5936be21af
2017-11-03gsm0503_coding.c: Use majority vote in tch_efr_unreorder()Niro Mahasinghe1-3/+3
The EFR coding contains some repeated bits. In case there are transmission errors, some bits may of course get corrupted. It looks like there's an improvement can be made by taking a majority vote on those "repetition bits", i.e. if 2 out of 3 bits are the same, then use that instead of expecting to match all 3 bits. See 3GPP TS 45.003 Section 3.1.1.3 for reference. Change-Id: I2a28a4d7fb82aed4d39fe8efeea702effdba3858
2017-11-03gsm0503_coding.c: Fix tch_efr_unreorder() of one bitNiro Mahasinghe1-1/+1
There's an error in tch_efr_unreorder() function in gsm0503_coding.c that results in increased RBER. One of the indices used by repetition bit recombining in this function doesn't match 3GPP TS 45.003 section 3.1.1.3, specifically "w(k) = s(223) for k = 231 and 232". This bug resulted in RBER even under ideal conditions, with no fading or AWGN present. Change-Id: I153da7bbc1bb3e01ed31eb5a7417e90841cfcde3
2017-08-31Makefile.am: fix missing LTLDFLAGS for libosmocodingVadim Yanitskiy1-0/+1
Despite the libosmocoding.map is preset since the library release, one was not used in a proper way. The LTLDFLAGS were missing, so let's add them. Change-Id: Idf677825ff642d50bea43c7f970810783e864fdd
2017-06-23doxygen: unify use of \file across the boardNeels Hofmeyr5-47/+38
Considering the various styles and implications found in the sources, edit scores of files to follow the same API doc guidelines around the doxygen grouping and the \file tag. Many files now show a short description in the generated API doc that was so far only available as C comment. The guidelines and reasoning behind it is documented at https://osmocom.org/projects/cellular-infrastructure/wiki/Guidelines_for_API_documentation In some instances, remove file comments and add to the corresponding group instead, to be shared among several files (e.g. bitvec). Change-Id: Ifa70e77e90462b5eb2b0457c70fd25275910c72b
2017-06-23doxygen: enable AUTOBRIEF, drop \briefNeels Hofmeyr5-73/+73
Especially for short descriptions, it is annoying to have to type \brief for every single API doc. Drop all \brief and enable the AUTOBRIEF feature of doxygen, which always takes the first sentence of an API doc as the brief description. Change-Id: I11a8a821b065a128108641a2a63fb5a2b1916e87
2017-06-19Move NUM_BYTES macro to core libraryMax1-1/+1
It's universally useful so it make sense to have it in the shared core: * move macro from libosmocoding to libosmocore * add OSMO_ prefix * add doxygen docs Change-Id: I5386ba3e1f1cc153ba96c29dc71c9075a052aa02
2017-06-12gsm0503_coding: Mark gsm0503_mcs_{ul,dl}_codes as constHarald Welte1-6/+6
The table describing the various MCS convolutional codes are constant data and should be marked as such. Change-Id: I4918521ee4572a67cbee5f9b49257fc5bfcde511
2017-06-12gsm0503_interleaving: Mark input arguments as 'const *'Harald Welte1-5/+5
The interleaving/deinterleaving functions were missing 'const' qualifiers on their input data buffers Change-Id: I2118c34a6353167787b23f877f1d81d60151aaf9
2017-06-12Add doxygen documentation to libosmocodingHarald Welte5-30/+414
This adds the minimum amount of API documentation that we should have on all our code, particularly new code merged into a library. Change-Id: I526804f64313867913574e50e5b9e9205ad3aa74
2017-06-12gsm0503_{coding,mapping}: Mark input arguments as 'const'Harald Welte2-55/+54
It is generally our coding style to mark pointers to constant input data as 'const *'. For some reason the gsm0503 coding and mapping was not adhering to this, so let's bring it into compliance. Change-Id: Id8731d7ae6171dff94741b6ddbb95ab5f03bfd4e
2017-05-24Distinguish between unsupported and invalid MCSMax1-6/+9
Previously MCS0 was incorrectly set for some of type1 header values while according to 3GPP TS 44.060 it can only be set for type3. Fix this: * use EGPRS_MCS* constants instead of magic values * do not set MCS0 for reserved bits values in EGPRS header type1 * return different error codes for invalid and unsupported MCS as well as for other decoding errors Note: there's no need to adjust tests because MCS0 decoding is not supported but it's better to explicitly distinguish between unsupported and invalid values nevertheless. Change-Id: Id665d5c0cf50efa18b1bcbf4f17359418a380f9e Related: OS#1524
2017-05-17add libpseudotalloc as super-simplistic talloc replacementHarald Welte1-0/+4
In tightly embedded builds (--enable-embedded), we want the ability to replace talloc with a very simple heap allocator to avoid the complexity of talloc without modifying all our code that assumes talloc. This will break the hierarchical notion of the allocator, but libosmo{core,gsm,coding,codec} don't rely on that anyway. Change-Id: Ie341034076f242a813f081919dd09d845775ad35
2017-03-20build: coding/gsm0503: fix build in sep. dir: -I builddirNeels Hofmeyr1-0/+1
To allow building coding/gsm0503_interleaving.c which includes the generated bit*gen.h (via bits.h), add -I to the builddir include path in order to find the generated bit*gen.h headers there. Change-Id: I0d465bc109765b1315d615243bea6af027afa368
2017-03-13build: cosmetic: coding: break a CPPFLAGS lineNeels Hofmeyr1-1/+3
Matches our general scheme and helps readability of an upcoming patch. Change-Id: I174086a988b51b6e80f3661609069b69a3d41cc7
2017-03-07libosmocoding: migrate transcoding routines from OsmoBTSVadim Yanitskiy7-0/+5553
There are some projects, such as GR-GSM and OsmocomBB, which would benefit from using one shared implementation of GSM 05.03 code. So, this commit introduces a new sub-library called libosmocoding, which (for now) provides GSM, GPRS and EDGE transcoding routines, migrated from OsmoBTS. The original GSM 05.03 code from OsmoBTS was relicensed under GPLv2-or-later with permission of copyright holders (Andreas Eversberg, Alexander Chemeris and Tom Tsou). The following data types are currently supported: - xCCH - PDTCH (CS 1-4 and MCS 1-9) - TCH/FR - TCH/HR - TCH/AFS - RCH/AHS - RACH - SCH Change-Id: I0c3256b87686d878e4e716d12393cad5924fdfa1