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"
|
|
#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) |
| |
§ AA
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, |
|
|
|
n |
|
) |
| |
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; \
}