g722enc.c File Reference

G.722 ADPCM audio encoder. More...

#include "libavutil/avassert.h"
#include "avcodec.h"
#include "internal.h"
#include "g722.h"
#include "libavutil/common.h"
Include dependency graph for g722enc.c:

Go to the source code of this file.

Macros

#define FREEZE_INTERVAL   128
 
#define MAX_FRAME_SIZE   32768
 
#define MIN_TRELLIS   0
 
#define MAX_TRELLIS   16
 
#define STORE_NODE(index, UPDATE, VALUE)
 

Functions

static av_cold int g722_encode_close (AVCodecContext *avctx)
 
static av_cold int g722_encode_init (AVCodecContext *avctx)
 
static void filter_samples (G722Context *c, const int16_t *samples, int *xlow, int *xhigh)
 
static int encode_high (const struct G722Band *state, int xhigh)
 
static int encode_low (const struct G722Band *state, int xlow)
 
static void g722_encode_trellis (G722Context *c, int trellis, uint8_t *dst, int nb_samples, const int16_t *samples)
 
static av_always_inline void encode_byte (G722Context *c, uint8_t *dst, const int16_t *samples)
 
static void g722_encode_no_trellis (G722Context *c, uint8_t *dst, int nb_samples, const int16_t *samples)
 
static int g722_encode_frame (AVCodecContext *avctx, AVPacket *avpkt, const AVFrame *frame, int *got_packet_ptr)
 

Variables

static const int16_t low_quant [33]
 
AVCodec ff_adpcm_g722_encoder
 

Detailed Description

G.722 ADPCM audio encoder.

Definition in file g722enc.c.

Macro Definition Documentation

#define FREEZE_INTERVAL   128

Definition at line 36 of file g722enc.c.

Referenced by g722_encode_init(), and g722_encode_trellis().

#define MAX_FRAME_SIZE   32768

Definition at line 40 of file g722enc.c.

Referenced by g722_encode_init().

#define MAX_TRELLIS   16

Definition at line 45 of file g722enc.c.

Referenced by g722_encode_init().

#define MIN_TRELLIS   0

Definition at line 44 of file g722enc.c.

Referenced by g722_encode_init().

#define STORE_NODE (   index,
  UPDATE,
  VALUE 
)

Referenced by g722_encode_trellis().

Function Documentation

static av_always_inline void encode_byte ( G722Context c,
uint8_t dst,
const int16_t *  samples 
)
static

Definition at line 330 of file g722enc.c.

Referenced by g722_encode_frame(), and g722_encode_no_trellis().

static int encode_high ( const struct G722Band *  state,
int  xhigh 
)
inlinestatic

Definition at line 153 of file g722enc.c.

Referenced by encode_byte().

static int encode_low ( const struct G722Band *  state,
int  xlow 
)
inlinestatic

Definition at line 161 of file g722enc.c.

Referenced by encode_byte(), and g722_encode_trellis().

static void filter_samples ( G722Context c,
const int16_t *  samples,
int *  xlow,
int *  xhigh 
)
inlinestatic

Definition at line 136 of file g722enc.c.

Referenced by encode_byte(), and g722_encode_trellis().

static av_cold int g722_encode_close ( AVCodecContext avctx)
static

Definition at line 47 of file g722enc.c.

Referenced by g722_encode_init().

static int g722_encode_frame ( AVCodecContext avctx,
AVPacket avpkt,
const AVFrame frame,
int *  got_packet_ptr 
)
static

Definition at line 352 of file g722enc.c.

static av_cold int g722_encode_init ( AVCodecContext avctx)
static

Definition at line 59 of file g722enc.c.

static void g722_encode_no_trellis ( G722Context c,
uint8_t dst,
int  nb_samples,
const int16_t *  samples 
)
static

Definition at line 343 of file g722enc.c.

Referenced by g722_encode_frame().

static void g722_encode_trellis ( G722Context c,
int  trellis,
uint8_t dst,
int  nb_samples,
const int16_t *  samples 
)
static

Definition at line 175 of file g722enc.c.

Referenced by g722_encode_frame().

Variable Documentation

AVCodec ff_adpcm_g722_encoder
Initial value:
= {
.name = "g722",
.priv_data_size = sizeof(G722Context),
.encode2 = g722_encode_frame,
.capabilities = CODEC_CAP_SMALL_LAST_FRAME,
.long_name = NULL_IF_CONFIG_SMALL("G.722 ADPCM"),
.sample_fmts = (const enum AVSampleFormat[]){ AV_SAMPLE_FMT_S16,
}
static av_cold int init(AVCodecContext *avctx)
Definition: avrndec.c:35
signed 16 bits
Definition: samplefmt.h:52
static av_cold int g722_encode_init(AVCodecContext *avctx)
Definition: g722enc.c:59
#define CODEC_CAP_SMALL_LAST_FRAME
Codec can be fed a final frame with a smaller size.
#define NULL_IF_CONFIG_SMALL(x)
Return NULL if CONFIG_SMALL is true, otherwise the argument without modification. ...
static av_cold int g722_encode_close(AVCodecContext *avctx)
Definition: g722enc.c:47
static void close(AVCodecParserContext *s)
Definition: h264_parser.c:375
struct G722Context G722Context
AVSampleFormat
Audio Sample Formats.
Definition: samplefmt.h:49
static int g722_encode_frame(AVCodecContext *avctx, AVPacket *avpkt, const AVFrame *frame, int *got_packet_ptr)
Definition: g722enc.c:352

Definition at line 382 of file g722enc.c.

const int16_t low_quant[33]
static
Initial value:
= {
35, 72, 110, 150, 190, 233, 276, 323,
370, 422, 473, 530, 587, 650, 714, 786,
858, 940, 1023, 1121, 1219, 1339, 1458, 1612,
1765, 1980, 2195, 2557, 2919
}

Definition at line 129 of file g722enc.c.

Referenced by encode_low().