libavcodec/g726.c File Reference

#include <limits.h>
#include "avcodec.h"
#include "bitstream.h"

Go to the source code of this file.

Data Structures

struct  Float11
 G.726 11bit float. More...
struct  G726Tables
struct  G726Context

Typedefs

typedef struct Float11 Float11
 G.726 11bit float.
typedef struct G726Tables G726Tables
typedef struct G726Context G726Context

Functions

static Float11i2f (int i, Float11 *f)
static int16_t mult (Float11 *f1, Float11 *f2)
static int sgn (int value)
static uint8_t quant (G726Context *c, int d)
 Para 4.2.2 page 18: Adaptive quantizer.
static int16_t inverse_quant (G726Context *c, int i)
 Para 4.2.3 page 22: Inverse adaptive quantizer.
static int16_t g726_decode (G726Context *c, int I)
static av_cold int g726_reset (G726Context *c, int index)
static av_cold int g726_init (AVCodecContext *avctx)
static av_cold int g726_close (AVCodecContext *avctx)
static int g726_decode_frame (AVCodecContext *avctx, void *data, int *data_size, const uint8_t *buf, int buf_size)

Variables

static const int quant_tbl16 []
 16kbit/s 2bits per sample
static const int16_t iquant_tbl16 []
static const int16_t W_tbl16 []
static const uint8_t F_tbl16 []
static const int quant_tbl24 []
 24kbit/s 3bits per sample
static const int16_t iquant_tbl24 []
static const int16_t W_tbl24 []
static const uint8_t F_tbl24 []
static const int quant_tbl32 []
 32kbit/s 4bits per sample
static const int16_t iquant_tbl32 []
static const int16_t W_tbl32 []
static const uint8_t F_tbl32 []
static const int quant_tbl40 []
 40kbit/s 5bits per sample
static const int16_t iquant_tbl40 []
static const int16_t W_tbl40 []
static const uint8_t F_tbl40 []
static const G726Tables G726Tables_pool []
AVCodec adpcm_g726_decoder

Typedef Documentation

typedef struct Float11 Float11

G.726 11bit float.

G.726 Standard uses rather odd 11bit floating point arithmentic for numerous occasions. It's a mistery to me why they did it this way instead of simply using 32bit integer arithmetic.

typedef struct G726Context G726Context
typedef struct G726Tables G726Tables

Function Documentation

static av_cold int g726_close ( AVCodecContext avctx  )  [static]

Definition at line 339 of file g726.c.

static int16_t g726_decode ( G726Context c,
int  I 
) [static]

Definition at line 186 of file g726.c.

Referenced by g726_decode_frame().

static int g726_decode_frame ( AVCodecContext avctx,
void *  data,
int *  data_size,
const uint8_t *  buf,
int  buf_size 
) [static]

Definition at line 364 of file g726.c.

static av_cold int g726_init ( AVCodecContext avctx  )  [static]

Definition at line 301 of file g726.c.

static av_cold int g726_reset ( G726Context c,
int  index 
) [static]

Definition at line 268 of file g726.c.

Referenced by g726_init().

static Float11* i2f ( int  i,
Float11 f 
) [inline, static]

Definition at line 40 of file g726.c.

Referenced by g726_decode().

static int16_t inverse_quant ( G726Context c,
int  i 
) [inline, static]

Para 4.2.3 page 22: Inverse adaptive quantizer.

Definition at line 176 of file g726.c.

Referenced by g726_decode().

static int16_t mult ( Float11 f1,
Float11 f2 
) [inline, static]

Definition at line 50 of file g726.c.

Referenced by encode_block(), encode_frame(), g726_decode(), and wma_decode_block().

static uint8_t quant ( G726Context c,
int  d 
) [inline, static]

Para 4.2.2 page 18: Adaptive quantizer.

Definition at line 150 of file g726.c.

static int sgn ( int  value  )  [inline, static]

Definition at line 60 of file g726.c.

Referenced by g726_decode().


Variable Documentation

Initial value:
 {
    "g726",
    CODEC_TYPE_AUDIO,
    CODEC_ID_ADPCM_G726,
    sizeof(G726Context),
    g726_init,
    NULL,
    g726_close,
    g726_decode_frame,
    .long_name = NULL_IF_CONFIG_SMALL("G.726 ADPCM"),
}

Definition at line 399 of file g726.c.

const uint8_t F_tbl16[] [static]
Initial value:
           { 0, 7, 7, 0 }

Definition at line 100 of file g726.c.

const uint8_t F_tbl24[] [static]
Initial value:
           { 0, 1, 2, 7, 7, 2, 1, 0 }

Definition at line 109 of file g726.c.

const uint8_t F_tbl32[] [static]
Initial value:
           { 0, 0, 0, 1, 1, 1, 3, 7, 7, 3, 1, 1, 1, 0, 0, 0 }

Definition at line 120 of file g726.c.

const uint8_t F_tbl40[] [static]
Initial value:
           { 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 2, 3, 4, 5, 6, 6,
             6, 6, 5, 4, 3, 2, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0 }

Definition at line 136 of file g726.c.

const G726Tables G726Tables_pool[] [static]
const int16_t iquant_tbl16[] [static]
Initial value:
           { 116, 365, 365, 116 }

Definition at line 96 of file g726.c.

const int16_t iquant_tbl24[] [static]
Initial value:
           { INT16_MIN, 135, 273, 373, 373, 273, 135, INT16_MIN }

Definition at line 105 of file g726.c.

const int16_t iquant_tbl32[] [static]
Initial value:
         { INT16_MIN,   4, 135, 213, 273, 323, 373, 425,
                 425, 373, 323, 273, 213, 135,   4, INT16_MIN }

Definition at line 114 of file g726.c.

const int16_t iquant_tbl40[] [static]
Initial value:
         { INT16_MIN, -66,  28, 104, 169, 224, 274, 318,
                 358, 395, 429, 459, 488, 514, 539, 566,
                 566, 539, 514, 488, 459, 429, 395, 358,
                 318, 274, 224, 169, 104,  28, -66, INT16_MIN }

Definition at line 126 of file g726.c.

const int quant_tbl16[] [static]
Initial value:
           { 260, INT_MAX }

16kbit/s 2bits per sample

Definition at line 94 of file g726.c.

const int quant_tbl24[] [static]
Initial value:
           {  7, 217, 330, INT_MAX }

24kbit/s 3bits per sample

Definition at line 103 of file g726.c.

const int quant_tbl32[] [static]
Initial value:
           { -125,  79, 177, 245, 299, 348, 399, INT_MAX }

32kbit/s 4bits per sample

Definition at line 112 of file g726.c.

const int quant_tbl40[] [static]
Initial value:
           { -122, -16,  67, 138, 197, 249, 297, 338,
              377, 412, 444, 474, 501, 527, 552, INT_MAX }

40kbit/s 5bits per sample

Definition at line 123 of file g726.c.

const int16_t W_tbl16[] [static]
Initial value:
           { -22, 439, 439, -22 }

Definition at line 98 of file g726.c.

const int16_t W_tbl24[] [static]
Initial value:
           { -4,  30, 137, 582, 582, 137,  30, -4 }

Definition at line 107 of file g726.c.

const int16_t W_tbl32[] [static]
Initial value:
           { -12,  18,  41,  64, 112, 198, 355, 1122,
            1122, 355, 198, 112,  64,  41,  18, -12}

Definition at line 117 of file g726.c.

const int16_t W_tbl40[] [static]
Initial value:
           {   14,  14,  24,  39,  40,  41,   58,  100,
              141, 179, 219, 280, 358, 440,  529,  696,
              696, 529, 440, 358, 280, 219,  179,  141,
              100,  58,  41,  40,  39,  24,   14,   14 }

Definition at line 131 of file g726.c.

Generated on Wed Dec 21 18:42:29 2011 for ffmpeg by  doxygen 1.6.3