28 #define SHR(a,b) (((int)(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((int)(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 42 { 0x000000, 0x1B0CB1, 0x2ED9EC, 0x400000, 0x512614, 0x64F34F, 0x800000 },
43 { 0x800000, 0x64F34F, 0x512614, 0x400000, 0x2ED9EC, 0x1B0CB1, 0x000000 }
49 { 0x36E129F8, 0xDF128056, 0x15F3AA4E, 0xA831565E },
50 { 0x386E75F2, 0xE1CF24A5, 0x1A3D9A97, 0xA960AEB3 },
51 { 0x3CC6B73A, 0xEBF19FA6, 0x28B856E0, 0xAF2AE86C },
52 { 0x3EEEA054, 0xF45B88BC, 0x334A2910, 0xB56CE868 },
53 { 0x3FB6905C, 0xF9F27F18, 0x39A90F74, 0xBA3BEEBC },
54 { 0x3FF23F20, 0xFD60D1E4, 0x3D531104, 0xBD6E92C4 },
55 { 0x3FFE5932, 0xFF175EE4, 0x3F15B816, 0xBF1905B2 },
56 { 0x3FFFE34A, 0xFFC3612F, 0x3FC34479, 0xBFC37DE5 }
61 #if CONFIG_MP1_DECODER 79 #if CONFIG_MP2_DECODER 97 #if CONFIG_MP3_DECODER 115 #if CONFIG_MP3ADU_DECODER 123 .
decode = decode_frame_adu,
133 #if CONFIG_MP3ON4_DECODER 139 .priv_data_size =
sizeof(MP3On4DecodeContext),
140 .
init = decode_init_mp3on4,
141 .close = decode_close_mp3on4,
142 .
decode = decode_frame_mp3on4,
145 .
flush = flush_mp3on4,
#define FF_CODEC_CAP_INIT_CLEANUP
The codec allows calling the close function for deallocation even if the init function returned a fai...
static void flush(AVCodecContext *avctx)
static av_cold int init(AVCodecContext *avctx)
#define AV_CODEC_CAP_CHANNEL_CONF
Codec should fill in channel configuration and samplerate instead of container.
static const int32_t csa_table[8][4]
static void decode(AVCodecContext *dec_ctx, AVPacket *pkt, AVFrame *frame, FILE *outfile)
#define FF_CODEC_CAP_INIT_THREADSAFE
The codec does not modify any global variables in the init function, allowing to call the init functi...
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 const int32_t is_table[2][16]
AVCodec ff_mp3on4_decoder
AVSampleFormat
Audio sample formats.
AVCodec ff_mp3adu_decoder
mpeg audio declarations for both encoder and decoder.
static enum AVSampleFormat sample_fmts[]
#define AV_CODEC_CAP_DR1
Codec uses get_buffer() for allocating buffers and supports custom allocators.