28 #define SHR(a,b) ((a)>>(b))
30 #define FIXR_OLD(a) ((int)((a) * FRAC_ONE + 0.5))
31 #define FIXR(a) ((int)((a) * FRAC_ONE + 0.5))
32 #define FIXHR(a) ((int)((a) * (1LL<<32) + 0.5))
33 #define MULH3(x, y, s) MULH((s)*(x), y)
34 #define MULLx(x, y, s) MULL(x,y,s)
35 #define RENAME(a) a ## _fixed
36 #define OUT_FMT AV_SAMPLE_FMT_S16
37 #define OUT_FMT_P AV_SAMPLE_FMT_S16P
41 #if CONFIG_MP1_DECODER
57 #if CONFIG_MP2_DECODER
73 #if CONFIG_MP3_DECODER
89 #if CONFIG_MP3ADU_DECODER
97 .
decode = decode_frame_adu,
105 #if CONFIG_MP3ON4_DECODER
111 .priv_data_size =
sizeof(MP3On4DecodeContext),
112 .
init = decode_init_mp3on4,
113 .close = decode_close_mp3on4,
114 .
decode = decode_frame_mp3on4,
116 .
flush = flush_mp3on4,
static av_cold int init(AVCodecContext *avctx)
#define CODEC_CAP_DR1
Codec uses get_buffer() for allocating buffers and supports custom allocators.
static av_cold int decode_init(AVCodecContext *avctx)
static int decode_frame(AVCodecContext *avctx, void *data, int *got_frame, AVPacket *avpkt)
#define NULL_IF_CONFIG_SMALL(x)
Return NULL if CONFIG_SMALL is true, otherwise the argument without modification. ...
preferred ID for decoding MPEG audio layer 1, 2 or 3
const char * name
Name of the codec implementation.
static void flush(AVCodecContext *avctx)
AVSampleFormat
Audio sample formats.
static int decode(AVCodecContext *avctx, void *data, int *got_sub, AVPacket *avpkt)
mpeg audio declarations for both encoder and decoder.
static enum AVSampleFormat sample_fmts[]