0
|
1
|
|
2 #define AC3_FRAME_SIZE (6*256)
|
|
3 #define AC3_MAX_CODED_FRAME_SIZE 3840 /* in bytes */
|
314
|
4 #define AC3_MAX_CHANNELS 6
|
0
|
5
|
|
6 typedef struct AC3EncodeContext {
|
|
7 PutBitContext pb;
|
|
8 int nb_channels;
|
314
|
9 int nb_all_channels;
|
|
10 int lfe_channel;
|
0
|
11 int bit_rate;
|
|
12 int sample_rate;
|
|
13 int bsid;
|
|
14 int frame_size_min; /* minimum frame size in case rounding is necessary */
|
|
15 int frame_size; /* current frame size in words */
|
|
16 int halfratecod;
|
|
17 int frmsizecod;
|
|
18 int fscod; /* frequency */
|
|
19 int acmod;
|
314
|
20 int lfe;
|
0
|
21 int bsmod;
|
|
22 short last_samples[AC3_MAX_CHANNELS][256];
|
|
23 int chbwcod[AC3_MAX_CHANNELS];
|
|
24 int nb_coefs[AC3_MAX_CHANNELS];
|
|
25
|
|
26 /* bitrate allocation control */
|
|
27 int sgaincod, sdecaycod, fdecaycod, dbkneecod, floorcod;
|
|
28 int sgain, sdecay, fdecay, dbknee, floor;
|
|
29 int csnroffst;
|
|
30 int fgaincod[AC3_MAX_CHANNELS];
|
|
31 int fsnroffst[AC3_MAX_CHANNELS];
|
|
32 /* mantissa encoding */
|
|
33 int mant1_cnt, mant2_cnt, mant4_cnt;
|
|
34 } AC3EncodeContext;
|