summaryrefslogtreecommitdiffstats
path: root/src/codec
Commit message (Collapse)AuthorAgeFilesLines
* codec/ecu: Introduce new generic Error Concealment Unit abstractionHarald Welte2019-09-023-1/+170
| | | | | | | | | | | | | | | | | | | | We don't want to expose the details of a given ECU implementation to the user (e.g. osmo-bts), but have a generic abstraction layer where an ECU implementation can simply register a few call-back functions with the generic core. As the developer and copyright holder of the related code, I hereby state that any ECU implementation using 'struct osmo_ecu_ops' and registering with the 'osmo_ecu_register()' function shall not be considered as a derivative work under any applicable copyright law; the copyleft terms of GPLv2 shall hence not apply to any such ECU implementation. The intent of the above exception is to allow anyone to combine third party Error Concealment Unit implementations with libosmocore, including but not limited to such published by ETSI. Change-Id: I4d33c9c7c2d4c7462ff38a49c178b65accae1915
* codec/ecu_fr: Mark input TCH frame as 'const' as we only read itHarald Welte2019-08-121-1/+1
| | | | Change-Id: I64c6d3dc08ff87b673ba6225f98546e86f91bcfd
* codec/ecu: Add a bit of precision about the actual frame format usedSylvain Munaut2019-05-151-2/+7
| | | | | Change-Id: I9620088e449c31e966ecb9ec5ddf283b949c5a4a Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
* Bump version: 0.11.0.91-9d4a3-dirty → 0.12.0Pau Espin Pedrol2018-07-271-1/+1
| | | | Change-Id: I7e66432f37e13fd4c31389e3d89593fa0981e58f
* libosmocodec: FR err concealment: Fix too many silent frames generatedPau Espin Pedrol2018-07-211-10/+6
| | | | | | | | | | | | | As stated in its own documentation, reduce_xmaxcr_all() should only return true when ALL XMAXC fields return true. However, previous implementation returned true when at least one of them returned true. As a result, if any of the sections is silent (for instance because one of the bursts was lost), the whole frame is silenced, returning a zeroed buffer. Related: OS#2700 Fixes: 40def49ac4b8babbd1b17c232137ce50a428706b ("libosmocodec: implement ECU (Error Concealment Unit) for FR") Change-Id: I1624b7c6574f53d0593a61645d4fdc5d56cabe96
* Bump version: 0.10.2.284-bc47-dirty → 0.11.0Pau Espin Pedrol2018-05-031-1/+1
| | | | | | | Remark: For libosmogb and libosmogsm, LIBVERSION was already bumped in c4fce1425e19d604c199c895e227dc2519110456. Change-Id: Ib4fa53a9bb9954ae48d0a610ba9a81dd8e8b4ef6
* libosmocodec: implement ECU (Error Concealment Unit) for FRPhilipp Maier2018-01-152-1/+166
| | | | | | | | | | | When a bad GSM voice frame is received, it's being replaced by a silence frame. This may cause unpleasant audio effects. This change implements a functionality to craft a replacement frame from the last known good frame. Currently, only FR is supported, support for other codecs may be added latter. Change-Id: I06a21f60db01bfe1c2b838f93866fad1d53fdcd1
* Fix/Update copyright notices; Add SPDX annotationHarald Welte2017-11-134-0/+8
| | | | | | | | 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
* doxygen: unify use of \file across the boardNeels Hofmeyr2017-06-234-8/+8
| | | | | | | | | | | | | | | | | 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
* doxygen: enable AUTOBRIEF, drop \briefNeels Hofmeyr2017-06-233-4/+4
| | | | | | | | | | 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
* Include codec.h file from codec C filesHarald Welte2017-06-093-0/+3
| | | | | | | failure to do so would prevent the compiler from catching inconsistencies between declaration and definition. Change-Id: I88617c97adcff328292e501fd5d254eeae96a660
* osmo_{fr,hr}_check_sid(): Use const input argumentHarald Welte2017-06-092-4/+4
| | | | Change-Id: If779cce63f06a18d4f3b0cb3d6dd7a99aa52a646
* Fix wrongful GSM FR codec SID frame detection in DTX.Jean-Francois Dionne2017-06-091-10/+10
| | | | | | | | Based on ETSI TS 101 318 section 5.1.2 the 95 bits SID code word is not detected correctly due to a wrongful offset in the bits location indexes. Change-Id: I45d98c6edf267f313883503a65385190ffbc65ca
* add libpseudotalloc as super-simplistic talloc replacementHarald Welte2017-05-171-0/+5
| | | | | | | | | | | 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
* DTX: fix AMR SID-FIRST detectionJean-Francois Dionne2017-01-101-2/+2
| | | | | | | Max's note: adjusted test output. Change-Id: I46477c631bf86345cb757f31d7f2e2935b12adcc Related: OS#1801
* Catch-up with git version tagsMax2016-12-211-1/+2
| | | | | | | | | | | | * update debian/changelog * update TODO-RELEASE * add comments to Makefile.am and TODO-RELEASE to simplify the process in future * add link to libtool docs to Makefile.am to simplify LIBVERSION maintenance Related: OS#1861 Change-Id: I22c257e357f597519120232d742d6a61289db021
* Add null-pointer check to osmo_amr_rtp_dec()Max2016-11-071-3/+3
| | | | | | | Check that RTP payload we're about to decode is not NULL and return proper error code instead of segfaulting. Add corresponding test case. Change-Id: Ib6cda9900a41ed16bbfbde9df3de9d38e0a7469b
* libosmocodec link fix on MacOSXAnatoly Orlov2016-09-091-0/+1
| | | | | | | | | | | | | | | | Fixes the following bug: CCLD libosmocodec.la Undefined symbols for architecture x86_64: "_bitvec_get_bit_pos", referenced from: _osmo_fr_check_sid in gsm610.o "_bitvec_get_uint", referenced from: _osmo_hr_check_sid in gsm620.o ld: symbol(s) not found for architecture x86_64 clang: error: linker command failed with exit code 1 (use -v to see invocation) make[2]: *** [libosmocodec.la] Error 1 Change-Id: Id7358b94e274b529a8da38a0b2ef8c892b6dd7a5
* Add functions to detect HR/FR SID framesMax2016-06-012-0/+71
| | | | | | | | | | | Add functions which check if given FR or HR frame (packed in RTP) contains SID (SIlence Descriptor) and corresponding tests. Related: OS#22 Change-Id: I4051e3c0d4fb9ee93d7e9e0ef4abaf9f18e227ca Reviewed-on: https://gerrit.osmocom.org/160 Tested-by: Jenkins Builder Reviewed-by: Harald Welte <laforge@gnumonks.org>
* Add helper functions for AMR codecMax2016-05-312-1/+107
| | | | | | | | | | | | | | | | | | | * add functions to encode/decode various codec paramters from RTP payload with AMR frame according to RFC 4867 * those functions are extended version based on code from osmo-bts' amr.c by Andreas Eversberg * add corresponding enum types and strings for logging * add regression tests It's useful both to replace manual parsing in osmo-bts with fuctions covered by test suite and as a debugging helpers for issues related to AMR. Change-Id: Ia217679a07d3fbc970f435e20f6eac33d34bd597 Related: OS#1562 Reviewed-on: https://gerrit.osmocom.org/118 Tested-by: Jenkins Builder Reviewed-by: Holger Freyther <holger@freyther.de>
* build: remove unused all_includes and use AM_CPPFLAGSJan Engelhardt2014-10-031-1/+2
| | | | | Preprocessor flags are best placed in AM_CPPFLAGS. Remove use of the unused all_includes variable, which is never set.
* cygwin: Link many libraries with -no-undefined to create a dllHolger Hans Peter Freyther2013-03-031-1/+1
| | | | | | Only the Gb library relies on having undefined references to a symbol that needs to be provided by the host application. For all other libraries we can link with -no-undefined.
* codec: Fix the GSM 06.20 ordering tablesSylvain Munaut2013-03-011-41/+41
| | | | | | | | | | Seems the script I used to parse those had a bug where range of bits in the 'decreasing' direction ( like 6..0 ) were not processed properly. Thanks to Andreas for noticing this ! Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
* build: Don't use the deprecated INCLUDES in the various Makefile.amSylvain Munaut2012-12-111-2/+1
| | | | Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
* build: use LT_INIT(pic-only) instead of forcing -fPIC.Diego Elio Pettenò2012-06-301-1/+1
| | | | | | | | This actually allows for the user to override the decision and at the same time supports compilers that might not be able to use -fPIC at all. Signed-off-by: Diego Elio Pettenò <flameeyes@flameeyes.eu>
* codec: make data tables constant.Diego Elio Pettenò2012-06-304-12/+12
| | | | | | | | When declaring them constant, they are written on the .rodata section instead of .data, which means that they can be mapped directly from disk to memory. Signed-off-by: Diego Elio Pettenò <flameeyes@flameeyes.eu>
* src/codec: Fix typo in MakefileSylvain Munaut2012-05-141-1/+1
| | | | | | Thanks to horizon for pointing this out Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
* libosmocore: bump library interface version to '1' for new osmo_ namesHarald Welte2011-05-081-0/+1
|
* codec: Add bit ordering tables from specs for HR,FR,EFR & AMRSylvain Munaut2010-10-155-0/+1032
Signed-off-by: Sylvain Munaut <tnt@246tNt.com>