DTX DL: use FSM for AMR

- consolidate all DTX-specific things in a separate struct
- rename struct fields to better reflect meaning
- add pointer to DL FSM for AMR
- remove unused flag
- expand buffer to hold cached payload alongside with CMR/CMI

Change-Id: Idac8609faf9b5ced818fde899ccfc6ed0c42e8fd
This commit is contained in:
Max 2016-10-05 17:29:02 +02:00
parent 756fb30c8a
commit 1e646f02f4
1 changed files with 9 additions and 12 deletions

View File

@ -295,23 +295,20 @@ struct gsm_lchan {
struct {
struct amr_multirate_conf amr_mr;
struct {
uint8_t buf[18];
struct osmo_fsm_inst *dl_amr_fsm;
uint8_t cache[20];
uint8_t len;
uint32_t fn;
bool is_update;
} last_sid;
/* FIXME: 2 flags below are mutually exclusive - is it worth it
to merge them? */
/* set for each SID frame to detect talkspurt for codecs without
explicit ONSET event */
bool ul_sid;
/* set for each SID_FIRST_P1 sent to L1 but not followed by
either of _P2 or InH */
bool dl_fst;
/* set for each SID frame to detect talkspurt for codecs
without explicit ONSET event */
bool ul_sid;
/* indicates if DTXd was active during DL measurement
period */
bool dl_active;
} dtx;
uint8_t last_cmr;
uint32_t last_fn;
/* indicates if DTXd was active during DL measurement period */
bool dtxd_active;
} tch;
/* BTS-side ciphering state (rx only, bi-directional, ...) */
uint8_t ciph_state;