FFmpeg
Macros | Variables
g723_1dec.c File Reference

G.723.1 compatible decoder. More...

#include "libavutil/channel_layout.h"
#include "libavutil/mem.h"
#include "libavutil/opt.h"
#include "acelp_vectors.h"
#include "avcodec.h"
#include "celp_filters.h"
#include "celp_math.h"
#include "get_bits.h"
#include "internal.h"
#include "g723_1.h"

Macros

#define BITSTREAM_READER_LE
 
#define CNG_RANDOM_SEED   12345
 
#define iir_filter(fir_coef, iir_coef, src, dest, width)
 Perform IIR filtering. More...
 
#define OFFSET(x)   offsetof(G723_1_Context, x)
 
#define AD   AV_OPT_FLAG_AUDIO_PARAM | AV_OPT_FLAG_DECODING_PARAM
 

Variables

AVCodec ff_g723_1_decoder
 

Detailed Description

G.723.1 compatible decoder.

Macro Definition Documentation

§ iir_filter

#define iir_filter (   fir_coef,
  iir_coef,
  src,
  dest,
  width 
)
Value:
{\
int m, n;\
int res_shift = 16 & ~-(width);\
int in_shift = 16 - res_shift;\
\
for (m = 0; m < SUBFRAME_LEN; m++) {\
int64_t filter = 0;\
for (n = 1; n <= LPC_ORDER; n++) {\
filter -= (fir_coef)[n - 1] * (src)[m - n] -\
(iir_coef)[n - 1] * ((dest)[m - n] >> in_shift);\
}\
\
(dest)[m] = av_clipl_int32(((src)[m] * 65536) + (filter * 8) +\
(1 << 15)) >> res_shift;\
}\
}

Perform IIR filtering.

Parameters
fir_coefFIR coefficients
iir_coefIIR coefficients
srcsource vector
destdestination vector
widthwidth of the output, 16 bits(0) / 32 bits(1)

Variable Documentation

§ ff_g723_1_decoder

AVCodec ff_g723_1_decoder
Initial value:
= {
.name = "g723_1",
.long_name = NULL_IF_CONFIG_SMALL("G.723.1"),
.type = AVMEDIA_TYPE_AUDIO,
.id = AV_CODEC_ID_G723_1,
.priv_data_size = sizeof(G723_1_Context),
.init = g723_1_decode_init,
.decode = g723_1_decode_frame,
.priv_class = &g723_1dec_class,
}
#define NULL_IF_CONFIG_SMALL(x)
Return NULL if CONFIG_SMALL is true, otherwise the argument without modification. ...
Definition: internal.h:186
Definition: g723_1.h:119
#define AV_CODEC_CAP_SUBFRAMES
Codec can output multiple frames per AVPacket Normally demuxers return one frame at a time...
Definition: avcodec.h:1002
#define AV_CODEC_CAP_DR1
Codec uses get_buffer() for allocating buffers and supports custom allocators.
Definition: avcodec.h:959