41 int sample_rate_index, bitrate_index;
48 memset(
s, 0,
sizeof(*
s));
51 s->lsf = (
header & (1<<19)) ? 0 : 1;
58 s->layer = 4 - ((
header >> 17) & 3);
60 sample_rate_index = (
header >> 10) & 3;
62 sample_rate_index = 0;
64 sample_rate_index += 3 * (
s->lsf + mpeg25);
65 s->sample_rate_index = sample_rate_index;
66 s->error_protection = ((
header >> 16) & 1) ^ 1;
67 s->sample_rate = sample_rate;
69 bitrate_index = (
header >> 12) & 0xf;
70 padding = (
header >> 9) & 1;
71 s->bitrate_index = bitrate_index;
73 s->private_bit = (
header >> 8) & 1;
75 s->mode_ext = (
header >> 4) & 3;
76 s->copyright = (
header >> 3) & 1;
77 s->original = (
header >> 2) & 1;
85 if (bitrate_index != 0) {
111 s->layer,
s->sample_rate,
s->bit_rate);
112 if (
s->nb_channels == 2) {
150#if FF_MPEGAUDIO_LEGACY_DECODE_HEADER
151int avpriv_mpegaudio_decode_header(MPADecodeHeader *
s, uint32_t
header)
204 *sample_rate =
s->sample_rate;
206 *bit_rate =
s->bit_rate;
207 return s->frame_size;
static const uint8_t frame_size[4]
AVCodecID
Identify the syntax and semantics of the bitstream.
@ AV_CODEC_ID_MP3
preferred ID for decoding MPEG audio layer 1, 2 or 3
Utility Preprocessor macros.
Memory handling functions.
mpeg audio declarations for both encoder and decoder.
mpeg audio layer common tables.
#define MODE_EXT_MS_STEREO
FF_VISIBILITY_PUSH_HIDDEN const uint16_t ff_mpa_bitrate_tab[2][3][15]
#define MODE_EXT_I_STEREO
const uint16_t ff_mpa_freq_tab[3]
static const uint8_t header[24]
#define FF_ARRAY_ELEMS(a)