1/*
2 * copyright (c) 2001 Fabrice Bellard
3 *
4 * This file is part of Libav.
5 *
6 * Libav is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU Lesser General Public
8 * License as published by the Free Software Foundation; either
9 * version 2.1 of the License, or (at your option) any later version.
10 *
11 * Libav is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
14 * Lesser General Public License for more details.
15 *
16 * You should have received a copy of the GNU Lesser General Public
17 * License along with Libav; if not, write to the Free Software
18 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
19 */
20
21/**
22 * @file
23 * mpeg audio declarations for both encoder and decoder.
24 */
25
26#ifndef AVCODEC_MPEGAUDIO_H
27#define AVCODEC_MPEGAUDIO_H
28
29#ifndef CONFIG_FLOAT
30#   define CONFIG_FLOAT 0
31#endif
32
33#include <stdint.h>
34
35/* max frame size, in samples */
36#define MPA_FRAME_SIZE 1152
37
38/* max compressed frame size */
39#define MPA_MAX_CODED_FRAME_SIZE 1792
40
41#define MPA_MAX_CHANNELS 2
42
43#define SBLIMIT 32 /* number of subbands */
44
45#define MPA_STEREO  0
46#define MPA_JSTEREO 1
47#define MPA_DUAL    2
48#define MPA_MONO    3
49
50#ifndef FRAC_BITS
51#define FRAC_BITS   23   /* fractional bits for sb_samples and dct */
52#define WFRAC_BITS  16   /* fractional bits for window */
53#endif
54
55#define FRAC_ONE    (1 << FRAC_BITS)
56
57#define FIX(a)   ((int)((a) * FRAC_ONE))
58
59#if CONFIG_FLOAT
60#   define INTFLOAT float
61typedef float MPA_INT;
62typedef float OUT_INT;
63#elif FRAC_BITS <= 15
64#   define INTFLOAT int
65typedef int16_t MPA_INT;
66typedef int16_t OUT_INT;
67#else
68#   define INTFLOAT int
69typedef int32_t MPA_INT;
70typedef int16_t OUT_INT;
71#endif
72
73int ff_mpa_l2_select_table(int bitrate, int nb_channels, int freq, int lsf);
74
75#endif /* AVCODEC_MPEGAUDIO_H */
76