FFmpeg
Data Structures | Macros | Typedefs | Functions | Variables
speexdec.c File Reference
#include "libavutil/avassert.h"
#include "libavutil/float_dsp.h"
#include "avcodec.h"
#include "bytestream.h"
#include "codec_internal.h"
#include "get_bits.h"
#include "internal.h"
#include "speexdata.h"

Go to the source code of this file.

Data Structures

struct  LtpParams
 
struct  SplitCodebookParams
 
struct  SpeexSubmode
 
struct  SpeexMode
 
struct  DecoderState
 
struct  StereoState
 
struct  SpeexContext
 

Macros

#define SPEEX_NB_MODES   3
 
#define SPEEX_INBAND_STEREO   9
 
#define QMF_ORDER   64
 
#define NB_ORDER   10
 
#define NB_FRAME_SIZE   160
 
#define NB_SUBMODES   9
 
#define NB_SUBMODE_BITS   4
 
#define SB_SUBMODE_BITS   3
 
#define NB_SUBFRAME_SIZE   40
 
#define NB_NB_SUBFRAMES   4
 
#define NB_PITCH_START   17
 
#define NB_PITCH_END   144
 
#define NB_DEC_BUFFER   (NB_FRAME_SIZE + 2 * NB_PITCH_END + NB_SUBFRAME_SIZE + 12)
 
#define SPEEX_MEMSET(dst, c, n)   (memset((dst), (c), (n) * sizeof(*(dst))))
 
#define SPEEX_COPY(dst, src, n)   (memcpy((dst), (src), (n) * sizeof(*(dst))))
 
#define LSP_LINEAR(i)   (.25f * (i) + .25f)
 
#define LSP_LINEAR_HIGH(i)   (.3125f * (i) + .75f)
 
#define LSP_DIV_256(x)   (0.00390625f * (x))
 
#define LSP_DIV_512(x)   (0.001953125f * (x))
 
#define LSP_DIV_1024(x)   (0.0009765625f * (x))
 
#define SUBMODE(x)   st->submodes[st->submodeID]->x
 
#define gain_3tap_to_1tap(g)   (FFABS(g[1]) + (g[0] > 0.f ? g[0] : -.5f * g[0]) + (g[2] > 0.f ? g[2] : -.5f * g[2]))
 
#define median3(a, b, c)
 

Typedefs

typedef void(* lsp_quant_func) (float *, float *, int, GetBitContext *)
 Quantizes LSPs. More...
 
typedef void(* lsp_unquant_func) (float *, int, GetBitContext *)
 Decodes quantized LSPs. More...
 
typedef int(* ltp_quant_func) (float *, float *, float *, float *, float *, float *, const void *, int, int, float, int, int, GetBitContext *, char *, float *, float *, int, int, int, float *)
 Long-term predictor quantization. More...
 
typedef void(* ltp_unquant_func) (float *, float *, int, int, float, const void *, int, int *, float *, GetBitContext *, int, int, float, int)
 Long-term un-quantize. More...
 
typedef void(* innovation_quant_func) (float *, float *, float *, float *, const void *, int, int, float *, float *, GetBitContext *, char *, int, int)
 Innovation quantization function. More...
 
typedef void(* innovation_unquant_func) (float *, const void *, int, GetBitContext *, uint32_t *)
 Innovation unquantization function. More...
 

Functions

static int speex_default_user_handler (GetBitContext *gb, void *state, void *data)
 
static void lsp_unquant_lbr (float *lsp, int order, GetBitContext *gb)
 
static void forced_pitch_unquant (float *exc, float *exc_out, int start, int end, float pitch_coef, const void *par, int nsf, int *pitch_val, float *gain_val, GetBitContext *gb, int count_lost, int subframe_offset, float last_pitch_gain, int cdbk_offset)
 
static float speex_rand (float std, uint32_t *seed)
 
static void noise_codebook_unquant (float *exc, const void *par, int nsf, GetBitContext *gb, uint32_t *seed)
 
static void split_cb_shape_sign_unquant (float *exc, const void *par, int nsf, GetBitContext *gb, uint32_t *seed)
 
static void pitch_unquant_3tap (float *exc, float *exc_out, int start, int end, float pitch_coef, const void *par, int nsf, int *pitch_val, float *gain_val, GetBitContext *gb, int count_lost, int subframe_offset, float last_pitch_gain, int cdbk_offset)
 
static void lsp_unquant_nb (float *lsp, int order, GetBitContext *gb)
 
static void lsp_unquant_high (float *lsp, int order, GetBitContext *gb)
 
static int nb_decode (AVCodecContext *, void *, GetBitContext *, float *)
 
static int sb_decode (AVCodecContext *, void *, GetBitContext *, float *)
 
static float compute_rms (const float *x, int len)
 
static void bw_lpc (float gamma, const float *lpc_in, float *lpc_out, int order)
 
static void iir_mem (const float *x, const float *den, float *y, int N, int ord, float *mem)
 
static void highpass (const float *x, float *y, int len, float *mem, int wide)
 
static int speex_std_stereo (GetBitContext *gb, void *state, void *data)
 
static int speex_inband_handler (GetBitContext *gb, void *state, StereoState *stereo)
 
static void sanitize_values (float *vec, float min_val, float max_val, int len)
 
static void signal_mul (const float *x, float *y, float scale, int len)
 
static float inner_prod (const float *x, const float *y, int len)
 
static int interp_pitch (const float *exc, float *interp, int pitch, int len)
 
static void multicomb (const float *exc, float *new_exc, float *ak, int p, int nsf, int pitch, int max_pitch, float comb_gain)
 
static void lsp_interpolate (const float *old_lsp, const float *new_lsp, float *lsp, int len, int subframe, int nb_subframes, float margin)
 
static void lsp_to_lpc (const float *freq, float *ak, int lpcrdr)
 
static void qmf_synth (const float *x1, const float *x2, const float *a, float *y, int N, int M, float *mem1, float *mem2)
 
static int decoder_init (SpeexContext *s, DecoderState *st, const SpeexMode *mode)
 
static int parse_speex_extradata (AVCodecContext *avctx, const uint8_t *extradata, int extradata_size)
 
static av_cold int speex_decode_init (AVCodecContext *avctx)
 
static void speex_decode_stereo (float *data, int frame_size, StereoState *stereo)
 
static int speex_decode_frame (AVCodecContext *avctx, AVFrame *frame, int *got_frame_ptr, AVPacket *avpkt)
 
static av_cold int speex_decode_close (AVCodecContext *avctx)
 

Variables

static const LtpParam ltp_params_vlbr = { gain_cdbk_lbr, 5, 0 }
 
static const LtpParam ltp_params_lbr = { gain_cdbk_lbr, 5, 7 }
 
static const LtpParam ltp_params_med = { gain_cdbk_lbr, 5, 7 }
 
static const LtpParam ltp_params_nb = { gain_cdbk_nb, 7, 7 }
 
static const SplitCodebookParams split_cb_nb_ulbr = { 20, 2, exc_20_32_table, 5, 0 }
 
static const SplitCodebookParams split_cb_nb_vlbr = { 10, 4, exc_10_16_table, 4, 0 }
 
static const SplitCodebookParams split_cb_nb_lbr = { 10, 4, exc_10_32_table, 5, 0 }
 
static const SplitCodebookParams split_cb_nb_med = { 8, 5, exc_8_128_table, 7, 0 }
 
static const SplitCodebookParams split_cb_nb = { 5, 8, exc_5_64_table, 6, 0 }
 
static const SplitCodebookParams split_cb_sb = { 5, 8, exc_5_256_table, 8, 0 }
 
static const SplitCodebookParams split_cb_high = { 8, 5, hexc_table, 7, 1 }
 
static const SplitCodebookParams split_cb_high_lbr = { 10, 4, hexc_10_32_table,5, 0 }
 
static const SpeexSubmode nb_submode1
 
static const SpeexSubmode nb_submode2
 
static const SpeexSubmode nb_submode3
 
static const SpeexSubmode nb_submode4
 
static const SpeexSubmode nb_submode5
 
static const SpeexSubmode nb_submode6
 
static const SpeexSubmode nb_submode7
 
static const SpeexSubmode nb_submode8
 
static const SpeexSubmode wb_submode1
 
static const SpeexSubmode wb_submode2
 
static const SpeexSubmode wb_submode3
 
static const SpeexSubmode wb_submode4
 
static const SpeexMode speex_modes [SPEEX_NB_MODES]
 
const FFCodec ff_speex_decoder
 

Macro Definition Documentation

◆ SPEEX_NB_MODES

#define SPEEX_NB_MODES   3

Definition at line 63 of file speexdec.c.

◆ SPEEX_INBAND_STEREO

#define SPEEX_INBAND_STEREO   9

Definition at line 64 of file speexdec.c.

◆ QMF_ORDER

#define QMF_ORDER   64

Definition at line 66 of file speexdec.c.

◆ NB_ORDER

#define NB_ORDER   10

Definition at line 67 of file speexdec.c.

◆ NB_FRAME_SIZE

#define NB_FRAME_SIZE   160

Definition at line 68 of file speexdec.c.

◆ NB_SUBMODES

#define NB_SUBMODES   9

Definition at line 69 of file speexdec.c.

◆ NB_SUBMODE_BITS

#define NB_SUBMODE_BITS   4

Definition at line 70 of file speexdec.c.

◆ SB_SUBMODE_BITS

#define SB_SUBMODE_BITS   3

Definition at line 71 of file speexdec.c.

◆ NB_SUBFRAME_SIZE

#define NB_SUBFRAME_SIZE   40

Definition at line 73 of file speexdec.c.

◆ NB_NB_SUBFRAMES

#define NB_NB_SUBFRAMES   4

Definition at line 74 of file speexdec.c.

◆ NB_PITCH_START

#define NB_PITCH_START   17

Definition at line 75 of file speexdec.c.

◆ NB_PITCH_END

#define NB_PITCH_END   144

Definition at line 76 of file speexdec.c.

◆ NB_DEC_BUFFER

#define NB_DEC_BUFFER   (NB_FRAME_SIZE + 2 * NB_PITCH_END + NB_SUBFRAME_SIZE + 12)

Definition at line 78 of file speexdec.c.

◆ SPEEX_MEMSET

#define SPEEX_MEMSET (   dst,
  c,
 
)    (memset((dst), (c), (n) * sizeof(*(dst))))

Definition at line 80 of file speexdec.c.

◆ SPEEX_COPY

#define SPEEX_COPY (   dst,
  src,
 
)    (memcpy((dst), (src), (n) * sizeof(*(dst))))

Definition at line 81 of file speexdec.c.

◆ LSP_LINEAR

#define LSP_LINEAR (   i)    (.25f * (i) + .25f)

Definition at line 83 of file speexdec.c.

◆ LSP_LINEAR_HIGH

#define LSP_LINEAR_HIGH (   i)    (.3125f * (i) + .75f)

Definition at line 84 of file speexdec.c.

◆ LSP_DIV_256

#define LSP_DIV_256 (   x)    (0.00390625f * (x))

Definition at line 85 of file speexdec.c.

◆ LSP_DIV_512

#define LSP_DIV_512 (   x)    (0.001953125f * (x))

Definition at line 86 of file speexdec.c.

◆ LSP_DIV_1024

#define LSP_DIV_1024 (   x)    (0.0009765625f * (x))

Definition at line 87 of file speexdec.c.

◆ SUBMODE

#define SUBMODE (   x)    st->submodes[st->submodeID]->x

Definition at line 348 of file speexdec.c.

◆ gain_3tap_to_1tap

#define gain_3tap_to_1tap (   g)    (FFABS(g[1]) + (g[0] > 0.f ? g[0] : -.5f * g[0]) + (g[2] > 0.f ? g[2] : -.5f * g[2]))

Definition at line 350 of file speexdec.c.

◆ median3

#define median3 (   a,
  b,
  c 
)
Value:
((a) < (b) ? ((b) < (c) ? (b) : ((a) < (c) ? (c) : (a))) \
: ((c) < (b) ? (b) : ((c) < (a) ? (c) : (a))))

Definition at line 614 of file speexdec.c.

Typedef Documentation

◆ lsp_quant_func

typedef void(* lsp_quant_func) (float *, float *, int, GetBitContext *)

Quantizes LSPs.

Definition at line 118 of file speexdec.c.

◆ lsp_unquant_func

typedef void(* lsp_unquant_func) (float *, int, GetBitContext *)

Decodes quantized LSPs.

Definition at line 121 of file speexdec.c.

◆ ltp_quant_func

typedef int(* ltp_quant_func) (float *, float *, float *, float *, float *, float *, const void *, int, int, float, int, int, GetBitContext *, char *, float *, float *, int, int, int, float *)

Long-term predictor quantization.

Definition at line 124 of file speexdec.c.

◆ ltp_unquant_func

typedef void(* ltp_unquant_func) (float *, float *, int, int, float, const void *, int, int *, float *, GetBitContext *, int, int, float, int)

Long-term un-quantize.

Definition at line 131 of file speexdec.c.

◆ innovation_quant_func

typedef void(* innovation_quant_func) (float *, float *, float *, float *, const void *, int, int, float *, float *, GetBitContext *, char *, int, int)

Innovation quantization function.

Definition at line 137 of file speexdec.c.

◆ innovation_unquant_func

typedef void(* innovation_unquant_func) (float *, const void *, int, GetBitContext *, uint32_t *)

Innovation unquantization function.

Definition at line 143 of file speexdec.c.

Function Documentation

◆ speex_default_user_handler()

static int speex_default_user_handler ( GetBitContext gb,
void *  state,
void *  data 
)
static

Definition at line 224 of file speexdec.c.

Referenced by nb_decode().

◆ lsp_unquant_lbr()

static void lsp_unquant_lbr ( float lsp,
int  order,
GetBitContext gb 
)
static

Definition at line 261 of file speexdec.c.

◆ forced_pitch_unquant()

static void forced_pitch_unquant ( float exc,
float exc_out,
int  start,
int  end,
float  pitch_coef,
const void *  par,
int  nsf,
int pitch_val,
float gain_val,
GetBitContext gb,
int  count_lost,
int  subframe_offset,
float  last_pitch_gain,
int  cdbk_offset 
)
static

Definition at line 281 of file speexdec.c.

◆ speex_rand()

static float speex_rand ( float  std,
uint32_t *  seed 
)
inlinestatic

Definition at line 297 of file speexdec.c.

Referenced by nb_decode(), and noise_codebook_unquant().

◆ noise_codebook_unquant()

static void noise_codebook_unquant ( float exc,
const void *  par,
int  nsf,
GetBitContext gb,
uint32_t *  seed 
)
static

Definition at line 311 of file speexdec.c.

◆ split_cb_shape_sign_unquant()

static void split_cb_shape_sign_unquant ( float exc,
const void *  par,
int  nsf,
GetBitContext gb,
uint32_t *  seed 
)
static

Definition at line 318 of file speexdec.c.

◆ pitch_unquant_3tap()

static void pitch_unquant_3tap ( float exc,
float exc_out,
int  start,
int  end,
float  pitch_coef,
const void *  par,
int  nsf,
int pitch_val,
float gain_val,
GetBitContext gb,
int  count_lost,
int  subframe_offset,
float  last_pitch_gain,
int  cdbk_offset 
)
static

Definition at line 353 of file speexdec.c.

◆ lsp_unquant_nb()

static void lsp_unquant_nb ( float lsp,
int  order,
GetBitContext gb 
)
static

Definition at line 409 of file speexdec.c.

◆ lsp_unquant_high()

static void lsp_unquant_high ( float lsp,
int  order,
GetBitContext gb 
)
static

Definition at line 437 of file speexdec.c.

◆ nb_decode()

static int nb_decode ( AVCodecContext avctx,
void *  ptr_st,
GetBitContext gb,
float out 
)
static

Definition at line 866 of file speexdec.c.

◆ sb_decode()

static int sb_decode ( AVCodecContext avctx,
void *  ptr_st,
GetBitContext gb,
float out 
)
static

Definition at line 1217 of file speexdec.c.

◆ compute_rms()

static float compute_rms ( const float x,
int  len 
)
static

Definition at line 563 of file speexdec.c.

Referenced by multicomb(), nb_decode(), and sb_decode().

◆ bw_lpc()

static void bw_lpc ( float  gamma,
const float lpc_in,
float lpc_out,
int  order 
)
static

Definition at line 574 of file speexdec.c.

Referenced by nb_decode().

◆ iir_mem()

static void iir_mem ( const float x,
const float den,
float y,
int  N,
int  ord,
float mem 
)
static

Definition at line 585 of file speexdec.c.

Referenced by nb_decode(), postfilter(), and sb_decode().

◆ highpass()

static void highpass ( const float x,
float y,
int  len,
float mem,
int  wide 
)
static

Definition at line 598 of file speexdec.c.

Referenced by nb_decode().

◆ speex_std_stereo()

static int speex_std_stereo ( GetBitContext gb,
void *  state,
void *  data 
)
static

Definition at line 618 of file speexdec.c.

Referenced by speex_inband_handler().

◆ speex_inband_handler()

static int speex_inband_handler ( GetBitContext gb,
void *  state,
StereoState stereo 
)
static

Definition at line 629 of file speexdec.c.

Referenced by nb_decode().

◆ sanitize_values()

static void sanitize_values ( float vec,
float  min_val,
float  max_val,
int  len 
)
static

Definition at line 655 of file speexdec.c.

Referenced by nb_decode().

◆ signal_mul()

static void signal_mul ( const float x,
float y,
float  scale,
int  len 
)
static

Definition at line 665 of file speexdec.c.

Referenced by nb_decode(), and sb_decode().

◆ inner_prod()

static float inner_prod ( const float x,
const float y,
int  len 
)
static

Definition at line 671 of file speexdec.c.

Referenced by interp_pitch(), and multicomb().

◆ interp_pitch()

static int interp_pitch ( const float exc,
float interp,
int  pitch,
int  len 
)
static

Definition at line 691 of file speexdec.c.

Referenced by multicomb().

◆ multicomb()

static void multicomb ( const float exc,
float new_exc,
float ak,
int  p,
int  nsf,
int  pitch,
int  max_pitch,
float  comb_gain 
)
static

Definition at line 738 of file speexdec.c.

Referenced by nb_decode().

◆ lsp_interpolate()

static void lsp_interpolate ( const float old_lsp,
const float new_lsp,
float lsp,
int  len,
int  subframe,
int  nb_subframes,
float  margin 
)
static

Definition at line 805 of file speexdec.c.

Referenced by nb_decode(), and sb_decode().

◆ lsp_to_lpc()

static void lsp_to_lpc ( const float freq,
float ak,
int  lpcrdr 
)
static

Definition at line 822 of file speexdec.c.

Referenced by nb_decode(), and sb_decode().

◆ qmf_synth()

static void qmf_synth ( const float x1,
const float x2,
const float a,
float y,
int  N,
int  M,
float mem1,
float mem2 
)
static

Definition at line 1160 of file speexdec.c.

Referenced by sb_decode().

◆ decoder_init()

static int decoder_init ( SpeexContext s,
DecoderState st,
const SpeexMode mode 
)
static

Definition at line 1363 of file speexdec.c.

Referenced by speex_decode_init().

◆ parse_speex_extradata()

static int parse_speex_extradata ( AVCodecContext avctx,
const uint8_t *  extradata,
int  extradata_size 
)
static

Definition at line 1396 of file speexdec.c.

Referenced by speex_decode_init().

◆ speex_decode_init()

static av_cold int speex_decode_init ( AVCodecContext avctx)
static

Definition at line 1436 of file speexdec.c.

◆ speex_decode_stereo()

static void speex_decode_stereo ( float data,
int  frame_size,
StereoState stereo 
)
static

Definition at line 1516 of file speexdec.c.

Referenced by speex_decode_frame().

◆ speex_decode_frame()

static int speex_decode_frame ( AVCodecContext avctx,
AVFrame frame,
int got_frame_ptr,
AVPacket avpkt 
)
static

Definition at line 1536 of file speexdec.c.

◆ speex_decode_close()

static av_cold int speex_decode_close ( AVCodecContext avctx)
static

Definition at line 1572 of file speexdec.c.

Variable Documentation

◆ ltp_params_vlbr

const LtpParam ltp_params_vlbr = { gain_cdbk_lbr, 5, 0 }
static

Definition at line 95 of file speexdec.c.

◆ ltp_params_lbr

const LtpParam ltp_params_lbr = { gain_cdbk_lbr, 5, 7 }
static

Definition at line 96 of file speexdec.c.

◆ ltp_params_med

const LtpParam ltp_params_med = { gain_cdbk_lbr, 5, 7 }
static

Definition at line 97 of file speexdec.c.

◆ ltp_params_nb

const LtpParam ltp_params_nb = { gain_cdbk_nb, 7, 7 }
static

Definition at line 98 of file speexdec.c.

◆ split_cb_nb_ulbr

const SplitCodebookParams split_cb_nb_ulbr = { 20, 2, exc_20_32_table, 5, 0 }
static

Definition at line 108 of file speexdec.c.

◆ split_cb_nb_vlbr

const SplitCodebookParams split_cb_nb_vlbr = { 10, 4, exc_10_16_table, 4, 0 }
static

Definition at line 109 of file speexdec.c.

◆ split_cb_nb_lbr

const SplitCodebookParams split_cb_nb_lbr = { 10, 4, exc_10_32_table, 5, 0 }
static

Definition at line 110 of file speexdec.c.

◆ split_cb_nb_med

const SplitCodebookParams split_cb_nb_med = { 8, 5, exc_8_128_table, 7, 0 }
static

Definition at line 111 of file speexdec.c.

◆ split_cb_nb

const SplitCodebookParams split_cb_nb = { 5, 8, exc_5_64_table, 6, 0 }
static

Definition at line 112 of file speexdec.c.

◆ split_cb_sb

const SplitCodebookParams split_cb_sb = { 5, 8, exc_5_256_table, 8, 0 }
static

Definition at line 113 of file speexdec.c.

◆ split_cb_high

const SplitCodebookParams split_cb_high = { 8, 5, hexc_table, 7, 1 }
static

Definition at line 114 of file speexdec.c.

◆ split_cb_high_lbr

const SplitCodebookParams split_cb_high_lbr = { 10, 4, hexc_10_32_table,5, 0 }
static

Definition at line 115 of file speexdec.c.

◆ nb_submode1

const SpeexSubmode nb_submode1
static
Initial value:

Definition at line 454 of file speexdec.c.

◆ nb_submode2

const SpeexSubmode nb_submode2
static
Initial value:

Definition at line 460 of file speexdec.c.

◆ nb_submode3

const SpeexSubmode nb_submode3
static
Initial value:

Definition at line 466 of file speexdec.c.

◆ nb_submode4

const SpeexSubmode nb_submode4
static
Initial value:

Definition at line 472 of file speexdec.c.

◆ nb_submode5

const SpeexSubmode nb_submode5
static
Initial value:

Definition at line 478 of file speexdec.c.

◆ nb_submode6

const SpeexSubmode nb_submode6
static
Initial value:

Definition at line 484 of file speexdec.c.

◆ nb_submode7

const SpeexSubmode nb_submode7
static
Initial value:

Definition at line 490 of file speexdec.c.

◆ nb_submode8

const SpeexSubmode nb_submode8
static
Initial value:

Definition at line 496 of file speexdec.c.

◆ wb_submode1

const SpeexSubmode wb_submode1
static
Initial value:
= {
0, 0, 1, 0, lsp_unquant_high, NULL, NULL,
NULL, NULL, -1.f
}

Definition at line 501 of file speexdec.c.

◆ wb_submode2

const SpeexSubmode wb_submode2
static
Initial value:

Definition at line 506 of file speexdec.c.

◆ wb_submode3

const SpeexSubmode wb_submode3
static
Initial value:

Definition at line 511 of file speexdec.c.

◆ wb_submode4

const SpeexSubmode wb_submode4
static
Initial value:

Definition at line 516 of file speexdec.c.

◆ speex_modes

const SpeexMode speex_modes[SPEEX_NB_MODES]
static

Definition at line 524 of file speexdec.c.

Referenced by sb_decode(), speex_decode_frame(), and speex_decode_init().

◆ ff_speex_decoder

const FFCodec ff_speex_decoder
Initial value:
= {
.p.name = "speex",
.p.long_name = NULL_IF_CONFIG_SMALL("Speex"),
.p.type = AVMEDIA_TYPE_AUDIO,
.priv_data_size = sizeof(SpeexContext),
}

Definition at line 1579 of file speexdec.c.

split_cb_high
static const SplitCodebookParams split_cb_high
Definition: speexdec.c:114
FF_CODEC_CAP_INIT_CLEANUP
#define FF_CODEC_CAP_INIT_CLEANUP
The codec allows calling the close function for deallocation even if the init function returned a fai...
Definition: codec_internal.h:39
b
#define b
Definition: input.c:34
AV_CODEC_ID_SPEEX
@ AV_CODEC_ID_SPEEX
Definition: codec_id.h:461
split_cb_nb_lbr
static const SplitCodebookParams split_cb_nb_lbr
Definition: speexdec.c:110
split_cb_nb_ulbr
static const SplitCodebookParams split_cb_nb_ulbr
Definition: speexdec.c:108
FF_CODEC_DECODE_CB
#define FF_CODEC_DECODE_CB(func)
Definition: codec_internal.h:254
split_cb_sb
static const SplitCodebookParams split_cb_sb
Definition: speexdec.c:113
AVMEDIA_TYPE_AUDIO
@ AVMEDIA_TYPE_AUDIO
Definition: avutil.h:202
speex_decode_frame
static int speex_decode_frame(AVCodecContext *avctx, AVFrame *frame, int *got_frame_ptr, AVPacket *avpkt)
Definition: speexdec.c:1536
NULL
#define NULL
Definition: coverity.c:32
split_cb_nb
static const SplitCodebookParams split_cb_nb
Definition: speexdec.c:112
ltp_params_nb
static const LtpParam ltp_params_nb
Definition: speexdec.c:98
c
Undefined Behavior In the C some operations are like signed integer dereferencing freed accessing outside allocated Undefined Behavior must not occur in a C it is not safe even if the output of undefined operations is unused The unsafety may seem nit picking but Optimizing compilers have in fact optimized code on the assumption that no undefined Behavior occurs Optimizing code based on wrong assumptions can and has in some cases lead to effects beyond the output of computations The signed integer overflow problem in speed critical code Code which is highly optimized and works with signed integers sometimes has the problem that often the output of the computation does not c
Definition: undefined.txt:32
AV_CODEC_CAP_CHANNEL_CONF
#define AV_CODEC_CAP_CHANNEL_CONF
Codec should fill in channel configuration and samplerate instead of container.
Definition: codec.h:109
AV_CODEC_CAP_DR1
#define AV_CODEC_CAP_DR1
Codec uses get_buffer() or get_encode_buffer() for allocating buffers and supports custom allocators.
Definition: codec.h:52
NULL_IF_CONFIG_SMALL
#define NULL_IF_CONFIG_SMALL(x)
Return NULL if CONFIG_SMALL is true, otherwise the argument without modification.
Definition: internal.h:117
lsp_unquant_nb
static void lsp_unquant_nb(float *lsp, int order, GetBitContext *gb)
Definition: speexdec.c:409
ltp_params_lbr
static const LtpParam ltp_params_lbr
Definition: speexdec.c:96
ltp_params_med
static const LtpParam ltp_params_med
Definition: speexdec.c:97
SpeexContext
Definition: speexdec.c:238
noise_codebook_unquant
static void noise_codebook_unquant(float *exc, const void *par, int nsf, GetBitContext *gb, uint32_t *seed)
Definition: speexdec.c:311
pitch_unquant_3tap
static void pitch_unquant_3tap(float *exc, float *exc_out, int start, int end, float pitch_coef, const void *par, int nsf, int *pitch_val, float *gain_val, GetBitContext *gb, int count_lost, int subframe_offset, float last_pitch_gain, int cdbk_offset)
Definition: speexdec.c:353
a
The reader does not expect b to be semantically here and if the code is changed by maybe adding a a division or other the signedness will almost certainly be mistaken To avoid this confusion a new type was SUINT is the C unsigned type but it holds a signed int to use the same example SUINT a
Definition: undefined.txt:41
lsp_unquant_lbr
static void lsp_unquant_lbr(float *lsp, int order, GetBitContext *gb)
Definition: speexdec.c:261
split_cb_nb_med
static const SplitCodebookParams split_cb_nb_med
Definition: speexdec.c:111
forced_pitch_unquant
static void forced_pitch_unquant(float *exc, float *exc_out, int start, int end, float pitch_coef, const void *par, int nsf, int *pitch_val, float *gain_val, GetBitContext *gb, int count_lost, int subframe_offset, float last_pitch_gain, int cdbk_offset)
Definition: speexdec.c:281
FF_CODEC_CAP_INIT_THREADSAFE
#define FF_CODEC_CAP_INIT_THREADSAFE
The codec does not modify any global variables in the init function, allowing to call the init functi...
Definition: codec_internal.h:31
split_cb_nb_vlbr
static const SplitCodebookParams split_cb_nb_vlbr
Definition: speexdec.c:109
speex_decode_close
static av_cold int speex_decode_close(AVCodecContext *avctx)
Definition: speexdec.c:1572
ltp_params_vlbr
static const LtpParam ltp_params_vlbr
Definition: speexdec.c:95
speex_decode_init
static av_cold int speex_decode_init(AVCodecContext *avctx)
Definition: speexdec.c:1436
lsp_unquant_high
static void lsp_unquant_high(float *lsp, int order, GetBitContext *gb)
Definition: speexdec.c:437
split_cb_high_lbr
static const SplitCodebookParams split_cb_high_lbr
Definition: speexdec.c:115
split_cb_shape_sign_unquant
static void split_cb_shape_sign_unquant(float *exc, const void *par, int nsf, GetBitContext *gb, uint32_t *seed)
Definition: speexdec.c:318