mirror of https://github.com/FFmpeg/FFmpeg.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
32 lines
1.0 KiB
32 lines
1.0 KiB
|
|
#define AC3_FRAME_SIZE (6*256) |
|
#define AC3_MAX_CODED_FRAME_SIZE 3840 /* in bytes */ |
|
#define AC3_MAX_CHANNELS 2 /* we handle at most two channels, although |
|
AC3 allows 6 channels */ |
|
|
|
typedef struct AC3EncodeContext { |
|
PutBitContext pb; |
|
int nb_channels; |
|
int bit_rate; |
|
int sample_rate; |
|
int bsid; |
|
int frame_size_min; /* minimum frame size in case rounding is necessary */ |
|
int frame_size; /* current frame size in words */ |
|
int halfratecod; |
|
int frmsizecod; |
|
int fscod; /* frequency */ |
|
int acmod; |
|
int bsmod; |
|
short last_samples[AC3_MAX_CHANNELS][256]; |
|
int chbwcod[AC3_MAX_CHANNELS]; |
|
int nb_coefs[AC3_MAX_CHANNELS]; |
|
|
|
/* bitrate allocation control */ |
|
int sgaincod, sdecaycod, fdecaycod, dbkneecod, floorcod; |
|
int sgain, sdecay, fdecay, dbknee, floor; |
|
int csnroffst; |
|
int fgaincod[AC3_MAX_CHANNELS]; |
|
int fsnroffst[AC3_MAX_CHANNELS]; |
|
/* mantissa encoding */ |
|
int mant1_cnt, mant2_cnt, mant4_cnt; |
|
} AC3EncodeContext;
|
|
|