libosmocodec 1.10.0.27-aec32
Osmocom codec library
|
#include <stdbool.h>
#include <string.h>
#include <stdint.h>
#include <errno.h>
#include <osmocom/core/bitvec.h>
#include <osmocom/codec/gsm610_bits.h>
#include <osmocom/codec/codec.h>
#include <osmocom/codec/ecu.h>
Macros | |
#define | GSM610_XMAXC_REDUCE 4 |
#define | GSM610_XMAXC_LEN 6 |
Functions | |
static bool | reduce_xmaxcr (struct bitvec *frame_bitvec, const unsigned int index) |
Reduce the XMAXC field. More... | |
static bool | reduce_xmaxcr_all (struct bitvec *frame_bitvec) |
Reduce all XMAXC fields in the frame. More... | |
static int | conceal_frame (uint8_t *frame) |
void | osmo_ecu_fr_reset (struct osmo_ecu_fr_state *state, const uint8_t *frame) |
To be called when a good frame is received. More... | |
int | osmo_ecu_fr_conceal (struct osmo_ecu_fr_state *state, uint8_t *frame) |
To be called when a bad frame is received. More... | |
#define GSM610_XMAXC_LEN 6 |
#define GSM610_XMAXC_REDUCE 4 |
|
static |
References bitvec_alloc(), bitvec_free(), bitvec_pack(), bitvec_unpack(), GSM_FR_BYTES, len(), osmo_fr_check_sid(), and reduce_xmaxcr_all().
Referenced by osmo_ecu_fr_conceal().
int osmo_ecu_fr_conceal | ( | struct osmo_ecu_fr_state * | state, |
uint8_t * | frame | ||
) |
To be called when a bad frame is received.
This function will then generate a replacement frame that can be used to conceal the dropout.
[in] | state | The state object for the ECU |
[out] | frame | The buffer to fill with GSM_FR_BYTES of replacement frame |
References conceal_frame(), osmo_ecu_fr_state::frame_backup, GSM_FR_BYTES, and osmo_ecu_fr_state::subsequent_lost_frame.
void osmo_ecu_fr_reset | ( | struct osmo_ecu_fr_state * | state, |
const uint8_t * | frame | ||
) |
To be called when a good frame is received.
This function will then create a backup of the frame and reset the internal state.
[in] | state | The state object for the ECU |
[out] | frame | The valid frame (GSM_FR_BYTES bytes in RTP payload format) |
References osmo_ecu_fr_state::frame_backup, GSM_FR_BYTES, and osmo_ecu_fr_state::subsequent_lost_frame.
|
static |
Reduce the XMAXC field.
When the XMAXC field reaches zero the function will return true.
References bitvec_read_field(), bitvec_write_field(), GSM610_XMAXC_LEN, and GSM610_XMAXC_REDUCE.
Referenced by reduce_xmaxcr_all().
|
static |
Reduce all XMAXC fields in the frame.
When all XMAXC fields reach zero, then the function will return true.
References GSM610_RTP_XMAXC00, GSM610_RTP_XMAXC10, GSM610_RTP_XMAXC20, GSM610_RTP_XMAXC30, and reduce_xmaxcr().
Referenced by conceal_frame().