FFmpeg
|
Enhanced Variable Rate Codec, Service Option 3 decoder. More...
#include "libavutil/mathematics.h"
#include "avcodec.h"
#include "internal.h"
#include "get_bits.h"
#include "evrcdata.h"
#include "acelp_vectors.h"
#include "lsp.h"
Go to the source code of this file.
Data Structures | |
struct | EVRCAFrame |
EVRC-A unpacked data frame. More... | |
struct | EVRCContext |
struct | PfCoeff |
Macros | |
#define | MIN_LSP_SEP (0.05 / (2.0 * M_PI)) |
#define | MIN_DELAY 20 |
#define | MAX_DELAY 120 |
#define | NB_SUBFRAMES 3 |
#define | SUBFRAME_SIZE 54 |
#define | FILTER_ORDER 10 |
#define | ACB_SIZE 128 |
Enumerations | |
enum | evrc_packet_rate { RATE_ERRS = -1, SILENCE, RATE_QUANT, RATE_QUARTER, RATE_HALF, RATE_FULL } |
Functions | |
static void | unpack_frame (EVRCContext *e) |
Frame unpacking for RATE_FULL, RATE_HALF and RATE_QUANT. | |
static evrc_packet_rate | buf_size2bitrate (const int buf_size) |
static evrc_packet_rate | determine_bitrate (AVCodecContext *avctx, int *buf_size, const uint8_t **buf) |
Determine the bitrate from the frame size and/or the first byte of the frame. | |
static void | warn_insufficient_frame_quality (AVCodecContext *avctx, const char *message) |
static av_cold int | evrc_decode_init (AVCodecContext *avctx) |
Initialize the speech codec according to the specification. | |
static int | decode_lspf (EVRCContext *e) |
Decode the 10 vector quantized line spectral pair frequencies from the LSP transmission codes of any bitrate and check for badly received packets. | |
static void | interpolate_lsp (float *ilsp, const float *lsp, const float *prev, int index) |
static void | interpolate_delay (float *dst, float current, float prev, int index) |
static void | decode_predictor_coeffs (const float *ilspf, float *ilpc) |
static void | bl_intrp (EVRCContext *e, float *ex, float delay) |
static void | acb_excitation (EVRCContext *e, float *excitation, float gain, const float delay[3], int length) |
static void | decode_8_pulses_35bits (const uint16_t *fixed_index, float *cod) |
static void | decode_3_pulses_10bits (uint16_t fixed_index, float *cod) |
static void | fcb_excitation (EVRCContext *e, const uint16_t *codebook, float *excitation, float pitch_gain, int pitch_lag, int subframe_size) |
static void | synthesis_filter (const float *in, const float *filter_coeffs, float *memory, int buffer_length, float *samples) |
Synthesis of the decoder output signal. | |
static void | bandwidth_expansion (float *coeff, const float *inbuf, float gamma) |
static void | residual_filter (float *output, const float *input, const float *coef, float *memory, int length) |
static void | postfilter (EVRCContext *e, float *in, const float *coeff, float *out, int idx, const struct PfCoeff *pfc, int length) |
static void | frame_erasure (EVRCContext *e, float *samples) |
static int | evrc_decode_frame (AVCodecContext *avctx, void *data, int *got_frame_ptr, AVPacket *avpkt) |
Variables | |
static struct PfCoeff | postfilter_coeffs [5] |
AVCodec | ff_evrc_decoder |
#define MIN_LSP_SEP (0.05 / (2.0 * M_PI)) |
Definition at line 36 of file evrcdec.c.
Referenced by decode_lspf().
#define MIN_DELAY 20 |
Definition at line 37 of file evrcdec.c.
Referenced by evrc_decode_frame(), frame_erasure(), and postfilter().
#define MAX_DELAY 120 |
Definition at line 38 of file evrcdec.c.
Referenced by evrc_decode_frame(), and postfilter().
#define NB_SUBFRAMES 3 |
Definition at line 39 of file evrcdec.c.
Referenced by evrc_decode_frame(), and frame_erasure().
#define SUBFRAME_SIZE 54 |
Definition at line 40 of file evrcdec.c.
Referenced by decode_frame(), decoder_init(), evrc_decode_frame(), ff_g729_postfilter(), frame_erasure(), g729d_get_new_exc(), long_term_filter(), and postfilter().
#define FILTER_ORDER 10 |
Definition at line 41 of file evrcdec.c.
Referenced by bandwidth_expansion(), decode_lspf(), decode_predictor_coeffs(), evrc_decode_frame(), evrc_decode_init(), frame_erasure(), interpolate_lsp(), postfilter(), residual_filter(), and synthesis_filter().
#define ACB_SIZE 128 |
Definition at line 42 of file evrcdec.c.
Referenced by evrc_decode_frame(), evrc_decode_init(), frame_erasure(), and postfilter().
enum evrc_packet_rate |
|
static |
Frame unpacking for RATE_FULL, RATE_HALF and RATE_QUANT.
e | the context |
TIA/IS-127 Table 4.21-1
Definition at line 103 of file evrcdec.c.
Referenced by evrc_decode_frame().
|
static |
Definition at line 160 of file evrcdec.c.
Referenced by determine_bitrate().
|
static |
Determine the bitrate from the frame size and/or the first byte of the frame.
avctx | the AV codec context |
buf_size | length of the buffer |
buf | the bufffer |
Definition at line 183 of file evrcdec.c.
Referenced by evrc_decode_frame().
|
static |
Definition at line 214 of file evrcdec.c.
Referenced by evrc_decode_frame().
|
static |
|
static |
Decode the 10 vector quantized line spectral pair frequencies from the LSP transmission codes of any bitrate and check for badly received packets.
e | the context |
TIA/IS-127 5.2.1, 5.7.1
Definition at line 277 of file evrcdec.c.
Referenced by evrc_decode_frame().
|
static |
Definition at line 310 of file evrcdec.c.
Referenced by evrc_decode_frame(), and frame_erasure().
|
static |
Definition at line 324 of file evrcdec.c.
Referenced by evrc_decode_frame(), and frame_erasure().
|
static |
Definition at line 341 of file evrcdec.c.
Referenced by evrc_decode_frame(), and frame_erasure().
|
static |
Definition at line 371 of file evrcdec.c.
Referenced by acb_excitation().
|
static |
Definition at line 399 of file evrcdec.c.
Referenced by evrc_decode_frame(), and frame_erasure().
|
static |
Definition at line 426 of file evrcdec.c.
Referenced by fcb_excitation().
|
static |
Definition at line 451 of file evrcdec.c.
Referenced by fcb_excitation().
|
static |
Definition at line 471 of file evrcdec.c.
Referenced by evrc_decode_frame().
|
static |
Synthesis of the decoder output signal.
param[in] in input signal param[in] filter_coeffs LPC coefficients param[in/out] memory synthesis filter memory param buffer_length amount of data to process param[out] samples output samples
TIA/IS-127 5.2.3.15, 5.7.3.4
Definition at line 499 of file evrcdec.c.
Referenced by evrc_decode_frame(), frame_erasure(), and postfilter().
|
static |
Definition at line 515 of file evrcdec.c.
Referenced by evrc_decode_frame(), and postfilter().
|
static |
Definition at line 526 of file evrcdec.c.
Referenced by postfilter().
|
static |
Definition at line 566 of file evrcdec.c.
Referenced by evrc_decode_frame(), and frame_erasure().
|
static |
Definition at line 647 of file evrcdec.c.
Referenced by decode_frame(), and evrc_decode_frame().
|
static |
|
static |
Referenced by evrc_decode_frame(), and frame_erasure().
AVCodec ff_evrc_decoder |