FFmpeg
Classes | Macros | Typedefs
mpegaudiodec_template.c File Reference

MPEG Audio decoder. More...

#include "libavutil/attributes.h"
#include "libavutil/avassert.h"
#include "libavutil/channel_layout.h"
#include "libavutil/float_dsp.h"
#include "libavutil/libm.h"
#include "avcodec.h"
#include "get_bits.h"
#include "internal.h"
#include "mathops.h"
#include "mpegaudiodsp.h"
#include "mpegaudio.h"
#include "mpegaudiodecheader.h"
#include "mpegaudiodata.h"
#include "mpegaudiodectab.h"
#include "mpegaudio_tablegen.h"

Classes

struct  GranuleDef
 
struct  MPADecodeContext
 

Macros

#define BACKSTEP_SIZE   512
 
#define EXTRABYTES   24
 
#define LAST_BUF_SIZE   2 * BACKSTEP_SIZE + EXTRABYTES
 
#define HEADER_SIZE   4
 
#define SCALE_GEN(v)   { FIXR_OLD(1.0 * (v)), FIXR_OLD(0.7937005259 * (v)), FIXR_OLD(0.6299605249 * (v)) }
 
#define C3   FIXHR(0.86602540378443864676/2)
 
#define C4   FIXHR(0.70710678118654752439/2)
 
#define C5   FIXHR(0.51763809020504152469/2)
 
#define C6   FIXHR(1.93185165257813657349/4)
 
#define SPLIT(dst, sf, n)
 
#define READ_FLIP_SIGN(dst, src)
 
#define ISQRT2   FIXR(0.70710678118654752440)
 
#define AA(j)
 

Typedefs

typedef struct GranuleDef GranuleDef
 
typedef struct MPADecodeContext MPADecodeContext
 

Detailed Description

MPEG Audio decoder.

Macro Definition Documentation

§ AA

#define AA (   j)
Value:
do { \
SUINT tmp0 = ptr[-1-j]; \
SUINT tmp1 = ptr[ j]; \
SUINT tmp2 = MULH(tmp0 + tmp1, csa_table[j][0]); \
ptr[-1-j] = 4 * (tmp2 - MULH(tmp1, csa_table[j][2])); \
ptr[ j] = 4 * (tmp2 + MULH(tmp0, csa_table[j][3])); \
} while (0)

§ READ_FLIP_SIGN

#define READ_FLIP_SIGN (   dst,
  src 
)
Value:
v = -get_bits1(&s->gb); \
*(dst) = (*(src) ^ v) - v;

§ SPLIT

#define SPLIT (   dst,
  sf,
 
)
Value:
if (n == 3) { \
int m = (sf * 171) >> 9; \
dst = sf - 3 * m; \
sf = m; \
} else if (n == 4) { \
dst = sf & 3; \
sf >>= 2; \
} else if (n == 5) { \
int m = (sf * 205) >> 10; \
dst = sf - 5 * m; \
sf = m; \
} else if (n == 6) { \
int m = (sf * 171) >> 10; \
dst = sf - 6 * m; \
sf = m; \
} else { \
dst = 0; \
}