FreeCalypso > hg > gsm-codec-lib
view libgsmfr2/tfo_dtxd.c @ 554:b66fb6be73c3
CHANGES: list those planned for inclusion in gsm-codec-lib-r4
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Mon, 07 Oct 2024 18:21:32 +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 */ }