libosmocodec 1.10.0.27-aec32
Osmocom codec library
|
#include <stdint.h>
#include <stdbool.h>
#include <osmocom/core/defs.h>
#include <osmocom/codec/codec.h>
Go to the source code of this file.
Data Structures | |
struct | osmo_ecu_fr_state |
struct | osmo_ecu_state |
struct | osmo_ecu_ops |
Enumerations | |
enum | osmo_ecu_codec { OSMO_ECU_CODEC_HR , OSMO_ECU_CODEC_FR , OSMO_ECU_CODEC_EFR , OSMO_ECU_CODEC_AMR , _NUM_OSMO_ECU_CODECS } |
Functions | |
void | osmo_ecu_fr_reset (struct osmo_ecu_fr_state *state, const uint8_t *frame) OSMO_DEPRECATED_OUTSIDE("Use generic ECU override ion layer instead") |
To be called when a good frame is received. More... | |
int | osmo_ecu_fr_conceal (struct osmo_ecu_fr_state *state, uint8_t *frame) OSMO_DEPRECATED_OUTSIDE("Use generic ECU override ion layer instead") |
To be called when a bad frame is received. More... | |
struct osmo_ecu_state * | osmo_ecu_init (void *ctx, enum osmo_ecu_codec codec) |
initialize an ECU instance for given codec. More... | |
void | osmo_ecu_destroy (struct osmo_ecu_state *st) |
destroy an ECU instance More... | |
int | osmo_ecu_frame_in (struct osmo_ecu_state *st, bool bfi, const uint8_t *frame, unsigned int frame_bytes) |
process a received frame a substitute/erroneous frame. More... | |
int | osmo_ecu_frame_out (struct osmo_ecu_state *st, uint8_t *frame_out) |
generate output data for a substitute/erroneous frame. More... | |
bool | osmo_ecu_is_dtx_pause (struct osmo_ecu_state *st) |
check if the current state of this ECU is a DTX pause. More... | |
int | osmo_ecu_register (const struct osmo_ecu_ops *ops, enum osmo_ecu_codec codec) |
register an ECU implementation for a given codec More... | |
enum osmo_ecu_codec |
void osmo_ecu_destroy | ( | struct osmo_ecu_state * | st | ) |
destroy an ECU instance
References ARRAY_SIZE, osmo_ecu_state::codec, osmo_ecu_ops::destroy, and g_ecu_ops.
|
pure virtual |
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.
|
pure virtual |
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.
int osmo_ecu_frame_in | ( | struct osmo_ecu_state * | st, |
bool | bfi, | ||
const uint8_t * | frame, | ||
unsigned int | frame_bytes | ||
) |
process a received frame a substitute/erroneous frame.
[in] | st | ECU state/instance on which to operate |
[in] | bfi | Bad Frame Indication |
[in] | frame | received codec frame to be processed |
[in] | frame_bytes | number of bytes available in frame |
References ARRAY_SIZE, osmo_ecu_state::codec, osmo_ecu_ops::frame_in, and g_ecu_ops.
int osmo_ecu_frame_out | ( | struct osmo_ecu_state * | st, |
uint8_t * | frame_out | ||
) |
generate output data for a substitute/erroneous frame.
[in] | st | ECU state/instance on which to operate |
[out] | frame_out | buffer for generated output frame |
References ARRAY_SIZE, osmo_ecu_state::codec, osmo_ecu_ops::frame_out, and g_ecu_ops.
struct osmo_ecu_state * osmo_ecu_init | ( | void * | ctx, |
enum osmo_ecu_codec | codec | ||
) |
initialize an ECU instance for given codec.
[in] | ctx | talloc context from which to allocate |
[in] | codec | codec for which to initialize/create ECU |
References ARRAY_SIZE, osmo_ecu_state::codec, g_ecu_ops, and osmo_ecu_ops::init.
bool osmo_ecu_is_dtx_pause | ( | struct osmo_ecu_state * | st | ) |
check if the current state of this ECU is a DTX pause.
[in] | st | ECU state/instance on which to operate |
References ARRAY_SIZE, osmo_ecu_state::codec, g_ecu_ops, and osmo_ecu_ops::is_dtx_pause.
int osmo_ecu_register | ( | const struct osmo_ecu_ops * | ops, |
enum osmo_ecu_codec | codec | ||
) |
register an ECU implementation for a given codec
References ARRAY_SIZE, osmo_ecu_state::codec, and g_ecu_ops.
Referenced by __attribute__().