FFmpeg
Loading...
Searching...
No Matches
g722dec.c File Reference

G.722 ADPCM audio decoder. More...

#include "libavutil/channel_layout.h"
#include "libavutil/opt.h"
#include "avcodec.h"
#include "codec_internal.h"
#include "decode.h"
#include "get_bits.h"
#include "g722.h"

Go to the source code of this file.

Macros

#define OFFSET(x)
 
#define AD   AV_OPT_FLAG_AUDIO_PARAM | AV_OPT_FLAG_DECODING_PARAM
 

Functions

static av_cold int g722_decode_init (AVCodecContext *avctx)
 
static int g722_decode_frame (AVCodecContext *avctx, AVFrame *frame, int *got_frame_ptr, AVPacket *avpkt)
 

Variables

static const AVOption options []
 
static const AVClass g722_decoder_class
 
static const int16_t low_inv_quant5 [32]
 
static const int16_t *const low_inv_quants [3]
 
const FFCodec ff_adpcm_g722_decoder
 

Detailed Description

G.722 ADPCM audio decoder.

This G.722 decoder is a bit-exact implementation of the ITU G.722 specification for all three specified bitrates - 64000bps, 56000bps and 48000bps. It passes the ITU tests.

Note
For the 56000bps and 48000bps bitrates, the lowest 1 or 2 bits respectively of each byte are ignored.

Definition in file g722dec.c.

Macro Definition Documentation

◆ OFFSET

#define OFFSET ( x)
Value:
offsetof(G722Context, x)

Definition at line 45 of file g722dec.c.

◆ AD

Definition at line 46 of file g722dec.c.

Function Documentation

◆ g722_decode_init()

static av_cold int g722_decode_init ( AVCodecContext * avctx)
static

Definition at line 59 of file g722dec.c.

◆ g722_decode_frame()

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

Definition at line 89 of file g722dec.c.

Variable Documentation

◆ options

const AVOption options[]
static
Initial value:
= {
{ "bits_per_codeword", "Bits per G722 codeword", OFFSET(bits_per_codeword), AV_OPT_TYPE_INT, { .i64 = 8 }, 6, 8, AD },
{ NULL }
}
#define NULL
Definition coverity.c:32
#define AD
Definition evrcdec.c:920
#define OFFSET(x)
@ AV_OPT_TYPE_INT
Underlying C type is int.
Definition opt.h:258

Definition at line 47 of file g722dec.c.

◆ g722_decoder_class

const AVClass g722_decoder_class
static
Initial value:
= {
.class_name = "g722 decoder",
.item_name = av_default_item_name,
.option = options,
}
const char * av_default_item_name(void *ptr)
Return the context name.
Definition log.c:241
#define LIBAVUTIL_VERSION_INT
Definition version.h:85

Definition at line 52 of file g722dec.c.

◆ low_inv_quant5

const int16_t low_inv_quant5[32]
static
Initial value:
= {
-35, -35, -2919, -2195, -1765, -1458, -1219, -1023,
-858, -714, -587, -473, -370, -276, -190, -110,
2919, 2195, 1765, 1458, 1219, 1023, 858, 714,
587, 473, 370, 276, 190, 110, 35, -35
}

Definition at line 78 of file g722dec.c.

◆ low_inv_quants

const int16_t* const low_inv_quants[3]
static
Initial value:
static const int16_t low_inv_quant5[32]
Definition g722dec.c:78
const int16_t ff_g722_low_inv_quant6[64]
Definition g722.c:63
const int16_t ff_g722_low_inv_quant4[16]
Definition g722.c:59

Definition at line 85 of file g722dec.c.

Referenced by g722_decode_frame().

◆ ff_adpcm_g722_decoder

const FFCodec ff_adpcm_g722_decoder
Initial value:
= {
.p.name = "g722",
CODEC_LONG_NAME("G.722 ADPCM"),
.p.type = AVMEDIA_TYPE_AUDIO,
.priv_data_size = sizeof(G722Context),
.p.priv_class = &g722_decoder_class,
}
#define FF_CODEC_DECODE_CB(func)
#define CODEC_LONG_NAME(str)
int(* init)(AVBSFContext *ctx)
Definition dts2pts.c:608
static const AVClass g722_decoder_class
Definition g722dec.c:52
static int g722_decode_frame(AVCodecContext *avctx, AVFrame *frame, int *got_frame_ptr, AVPacket *avpkt)
Definition g722dec.c:89
static av_cold int g722_decode_init(AVCodecContext *avctx)
Definition g722dec.c:59
#define AV_CODEC_CAP_DR1
Codec uses get_buffer() or get_encode_buffer() for allocating buffers and supports custom allocators.
Definition codec.h:49
#define AV_CODEC_CAP_CHANNEL_CONF
Codec should fill in channel configuration and samplerate instead of container.
Definition codec.h:94
@ AV_CODEC_ID_ADPCM_G722
Definition codec_id.h:398
@ AVMEDIA_TYPE_AUDIO
Definition avutil.h:201

Definition at line 144 of file g722dec.c.