26# ifndef LIBMAD_FRAME_H
27# define LIBMAD_FRAME_H
40 MAD_MODE_SINGLE_CHANNEL = 0,
41 MAD_MODE_DUAL_CHANNEL = 1,
42 MAD_MODE_JOINT_STEREO = 2,
47 MAD_EMPHASIS_NONE = 0,
48 MAD_EMPHASIS_50_15_US = 1,
49 MAD_EMPHASIS_CCITT_J_17 = 3,
50 MAD_EMPHASIS_RESERVED = 2
57 enum mad_emphasis emphasis;
59 unsigned long bitrate;
60 unsigned int samplerate;
62 unsigned short crc_check;
63 unsigned short crc_target;
72 struct mad_header header;
76 mad_fixed_t sbsample[2][36][32];
77 mad_fixed_t (*overlap)[2][32][18];
80# define MAD_NCHANNELS(header) ((header)->mode ? 2 : 1)
81# define MAD_NSBSAMPLES(header) \
82 ((header)->layer == MAD_LAYER_I ? 12 : \
83 (((header)->layer == MAD_LAYER_III && \
84 ((header)->flags & MAD_FLAG_LSF_EXT)) ? 18 : 36))
87 MAD_FLAG_NPRIVATE_III = 0x0007,
88 MAD_FLAG_INCOMPLETE = 0x0008,
90 MAD_FLAG_PROTECTION = 0x0010,
91 MAD_FLAG_COPYRIGHT = 0x0020,
92 MAD_FLAG_ORIGINAL = 0x0040,
93 MAD_FLAG_PADDING = 0x0080,
95 MAD_FLAG_I_STEREO = 0x0100,
96 MAD_FLAG_MS_STEREO = 0x0200,
97 MAD_FLAG_FREEFORMAT = 0x0400,
99 MAD_FLAG_LSF_EXT = 0x1000,
100 MAD_FLAG_MC_EXT = 0x2000,
101 MAD_FLAG_MPEG_2_5_EXT = 0x4000
105 MAD_PRIVATE_HEADER = 0x0100,
106 MAD_PRIVATE_III = 0x001f
111# define mad_header_finish(header)
116void mad_frame_finish(
struct mad_frame *);