FreeCalypso > hg > gsm-codec-lib
view libgsmfr2/tfo_dtxd.c @ 542:f2d0f2f15d5f
libgsmefr: add wrapper for TW-TS-001 RTP input
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Sat, 28 Sep 2024 06:38:08 +0000 |
parents | 5a3535470c95 |
children |
line wrap: on
line source
/* * The function implemented in this module is a post-processor to be invoked * after Rx DTX preproc functions if the Rx DTX handler block is used as a * TFO transform with DTXd enabled. It selectively transforms certain * preproc output frames (CN and silence frames specifically) into SID, * thereby allowing the network operator to reap the benefits of DTX on * the radio downlink leg. */ #include <stdint.h> #include "tw_gsmfr.h" #include "pp_state.h" int gsmfr_tfo_xfrm_dtxd(struct gsmfr_preproc_state *st, uint8_t *frame) { uint8_t *p, sub; if (!st->dtxd_sid_flag) return 1; /* SP=1: output is a speech frame */ /* turn the output frame into SID */ p = frame + 5; /* skip magic+LARc */ for (sub = 0; sub < 4; sub++) { *p++ = 0; *p++ &= 0x1F; /* upper 5 bits of Xmaxc field */ *p++ &= 0x80; /* and the lsb spilling into the next byte */ *p++ = 0; *p++ = 0; *p++ = 0; *p++ = 0; } return 0; /* SP=0: output is SID */ }