1
0
mirror of https://github.com/FFmpeg/FFmpeg.git synced 2024-12-23 12:43:46 +02:00

cosmetics: rename common ac3 variables

Originally committed as revision 11196 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
Justin Ruggles 2007-12-09 03:27:14 +00:00
parent 8001d92345
commit e59cc20593
4 changed files with 111 additions and 111 deletions

View File

@ -53,14 +53,14 @@ typedef enum {
/** Channel mode (audio coding mode) */
typedef enum {
AC3_ACMOD_DUALMONO = 0,
AC3_ACMOD_MONO,
AC3_ACMOD_STEREO,
AC3_ACMOD_3F,
AC3_ACMOD_2F1R,
AC3_ACMOD_3F1R,
AC3_ACMOD_2F2R,
AC3_ACMOD_3F2R
AC3_CHMODE_DUALMONO = 0,
AC3_CHMODE_MONO,
AC3_CHMODE_STEREO,
AC3_CHMODE_3F,
AC3_CHMODE_2F1R,
AC3_CHMODE_3F1R,
AC3_CHMODE_2F2R,
AC3_CHMODE_3F2R
} AC3ChannelMode;
typedef struct AC3BitAllocParameters {
@ -81,14 +81,14 @@ typedef struct {
uint16_t sync_word;
uint16_t crc1;
uint8_t sr_code;
uint8_t frmsizecod;
uint8_t bsid;
uint8_t bsmod;
uint8_t acmod;
uint8_t cmixlev;
uint8_t surmixlev;
uint8_t dsurmod;
uint8_t lfeon;
uint8_t frame_size_code;
uint8_t bitstream_id;
uint8_t bitstream_mode;
uint8_t channel_mode;
uint8_t center_mix_level;
uint8_t surround_mix_level;
uint8_t dolby_surround_mode;
uint8_t lfe_on;
/** @} */
/** @defgroup derived Derived values

View File

@ -47,8 +47,8 @@ int ff_ac3_parse_header(const uint8_t buf[7], AC3HeaderInfo *hdr)
return AC3_PARSE_ERROR_SYNC;
/* read ahead to bsid to make sure this is AC-3, not E-AC-3 */
hdr->bsid = show_bits_long(&gbc, 29) & 0x1F;
if(hdr->bsid > 10)
hdr->bitstream_id = show_bits_long(&gbc, 29) & 0x1F;
if(hdr->bitstream_id > 10)
return AC3_PARSE_ERROR_BSID;
hdr->crc1 = get_bits(&gbc, 16);
@ -56,30 +56,30 @@ int ff_ac3_parse_header(const uint8_t buf[7], AC3HeaderInfo *hdr)
if(hdr->sr_code == 3)
return AC3_PARSE_ERROR_SAMPLE_RATE;
hdr->frmsizecod = get_bits(&gbc, 6);
if(hdr->frmsizecod > 37)
hdr->frame_size_code = get_bits(&gbc, 6);
if(hdr->frame_size_code > 37)
return AC3_PARSE_ERROR_FRAME_SIZE;
skip_bits(&gbc, 5); // skip bsid, already got it
hdr->bsmod = get_bits(&gbc, 3);
hdr->acmod = get_bits(&gbc, 3);
if((hdr->acmod & 1) && hdr->acmod != AC3_ACMOD_MONO) {
hdr->cmixlev = get_bits(&gbc, 2);
hdr->bitstream_mode = get_bits(&gbc, 3);
hdr->channel_mode = get_bits(&gbc, 3);
if((hdr->channel_mode & 1) && hdr->channel_mode != AC3_CHMODE_MONO) {
hdr->center_mix_level = get_bits(&gbc, 2);
}
if(hdr->acmod & 4) {
hdr->surmixlev = get_bits(&gbc, 2);
if(hdr->channel_mode & 4) {
hdr->surround_mix_level = get_bits(&gbc, 2);
}
if(hdr->acmod == AC3_ACMOD_STEREO) {
hdr->dsurmod = get_bits(&gbc, 2);
if(hdr->channel_mode == AC3_CHMODE_STEREO) {
hdr->dolby_surround_mode = get_bits(&gbc, 2);
}
hdr->lfeon = get_bits1(&gbc);
hdr->lfe_on = get_bits1(&gbc);
hdr->sr_shift = FFMAX(hdr->bsid, 8) - 8;
hdr->sr_shift = FFMAX(hdr->bitstream_id, 8) - 8;
hdr->sample_rate = ff_ac3_sample_rate_tab[hdr->sr_code] >> hdr->sr_shift;
hdr->bit_rate = (ff_ac3_bitrate_tab[hdr->frmsizecod>>1] * 1000) >> hdr->sr_shift;
hdr->channels = ff_ac3_channels_tab[hdr->acmod] + hdr->lfeon;
hdr->frame_size = ff_ac3_frame_size_tab[hdr->frmsizecod][hdr->sr_code] * 2;
hdr->bit_rate = (ff_ac3_bitrate_tab[hdr->frame_size_code>>1] * 1000) >> hdr->sr_shift;
hdr->channels = ff_ac3_channels_tab[hdr->channel_mode] + hdr->lfe_on;
hdr->frame_size = ff_ac3_frame_size_tab[hdr->frame_size_code][hdr->sr_code] * 2;
return 0;
}
@ -88,8 +88,8 @@ static int ac3_sync(const uint8_t *buf, int *channels, int *sample_rate,
int *bit_rate, int *samples)
{
int err;
unsigned int sr_code, acmod, bsid, lfeon;
unsigned int strmtyp, substreamid, frmsiz, sr_code2, numblkscod;
unsigned int sr_code, channel_mode, bitstream_id, lfe_on;
unsigned int stream_type, substream_id, frame_size, sr_code2, num_blocks_code;
GetBitContext bits;
AC3HeaderInfo hdr;
@ -98,48 +98,48 @@ static int ac3_sync(const uint8_t *buf, int *channels, int *sample_rate,
if(err < 0 && err != -2)
return 0;
bsid = hdr.bsid;
if(bsid <= 10) { /* Normal AC-3 */
bitstream_id = hdr.bitstream_id;
if(bitstream_id <= 10) { /* Normal AC-3 */
*sample_rate = hdr.sample_rate;
*bit_rate = hdr.bit_rate;
*channels = hdr.channels;
*samples = AC3_FRAME_SIZE;
return hdr.frame_size;
} else if (bsid > 10 && bsid <= 16) { /* Enhanced AC-3 */
} else if (bitstream_id > 10 && bitstream_id <= 16) { /* Enhanced AC-3 */
init_get_bits(&bits, &buf[2], (AC3_HEADER_SIZE-2) * 8);
strmtyp = get_bits(&bits, 2);
substreamid = get_bits(&bits, 3);
stream_type = get_bits(&bits, 2);
substream_id = get_bits(&bits, 3);
if (strmtyp != 0 || substreamid != 0)
if (stream_type != 0 || substream_id != 0)
return 0; /* Currently don't support additional streams */
frmsiz = get_bits(&bits, 11) + 1;
if(frmsiz*2 < AC3_HEADER_SIZE)
frame_size = get_bits(&bits, 11) + 1;
if(frame_size*2 < AC3_HEADER_SIZE)
return 0;
sr_code = get_bits(&bits, 2);
if (sr_code == 3) {
sr_code2 = get_bits(&bits, 2);
numblkscod = 3;
num_blocks_code = 3;
if(sr_code2 == 3)
return 0;
*sample_rate = ff_ac3_sample_rate_tab[sr_code2] / 2;
} else {
numblkscod = get_bits(&bits, 2);
num_blocks_code = get_bits(&bits, 2);
*sample_rate = ff_ac3_sample_rate_tab[sr_code];
}
acmod = get_bits(&bits, 3);
lfeon = get_bits1(&bits);
channel_mode = get_bits(&bits, 3);
lfe_on = get_bits1(&bits);
*samples = eac3_blocks[numblkscod] * 256;
*bit_rate = frmsiz * (*sample_rate) * 16 / (*samples);
*channels = ff_ac3_channels_tab[acmod] + lfeon;
*samples = eac3_blocks[num_blocks_code] * 256;
*bit_rate = frame_size * (*sample_rate) * 16 / (*samples);
*channels = ff_ac3_channels_tab[channel_mode] + lfe_on;
return frmsiz * 2;
return frame_size * 2;
}
/* Unsupported bitstream version */

View File

@ -97,13 +97,13 @@ static const float gain_levels[6] = {
* Table for center mix levels
* reference: Section 5.4.2.4 cmixlev
*/
static const uint8_t clevs[4] = { 2, 3, 4, 3 };
static const uint8_t center_levels[4] = { 2, 3, 4, 3 };
/**
* Table for surround mix levels
* reference: Section 5.4.2.5 surmixlev
*/
static const uint8_t slevs[4] = { 2, 4, 0, 4 };
static const uint8_t surround_levels[4] = { 2, 4, 0, 4 };
/**
* Table for default stereo downmixing coefficients
@ -128,8 +128,8 @@ static const uint8_t ac3_default_coeffs[8][5][2] = {
#define AC3_OUTPUT_LFEON 8
typedef struct {
int acmod; ///< audio coding mode
int dsurmod; ///< dolby surround mode
int channel_mode; ///< channel mode (acmod)
int dolby_surround_mode; ///< dolby surround mode
int blksw[AC3_MAX_CHANNELS]; ///< block switch flags
int dithflag[AC3_MAX_CHANNELS]; ///< dither flags
int dither_all; ///< true if all channels are dithered
@ -155,7 +155,7 @@ typedef struct {
int nchans; ///< number of total channels
int nfchans; ///< number of full-bandwidth channels
int lfeon; ///< lfe channel in use
int lfe_on; ///< lfe channel in use
int lfe_ch; ///< index of LFE channel
int output_mode; ///< output channel configuration
int out_channels; ///< number of output channels
@ -336,7 +336,7 @@ static int ac3_parse_header(AC3DecodeContext *ctx)
{
AC3HeaderInfo hdr;
GetBitContext *gb = &ctx->gb;
float cmixlev, surmixlev;
float center_mix_level, surround_mix_level;
int err, i;
err = ff_ac3_parse_header(gb->buffer, &hdr);
@ -345,23 +345,23 @@ static int ac3_parse_header(AC3DecodeContext *ctx)
/* get decoding parameters from header info */
ctx->bit_alloc_params.sr_code = hdr.sr_code;
ctx->acmod = hdr.acmod;
cmixlev = gain_levels[clevs[hdr.cmixlev]];
surmixlev = gain_levels[slevs[hdr.surmixlev]];
ctx->dsurmod = hdr.dsurmod;
ctx->lfeon = hdr.lfeon;
ctx->channel_mode = hdr.channel_mode;
center_mix_level = gain_levels[center_levels[hdr.center_mix_level]];
surround_mix_level = gain_levels[surround_levels[hdr.surround_mix_level]];
ctx->dolby_surround_mode = hdr.dolby_surround_mode;
ctx->lfe_on = hdr.lfe_on;
ctx->bit_alloc_params.sr_shift = hdr.sr_shift;
ctx->sampling_rate = hdr.sample_rate;
ctx->bit_rate = hdr.bit_rate;
ctx->nchans = hdr.channels;
ctx->nfchans = ctx->nchans - ctx->lfeon;
ctx->nfchans = ctx->nchans - ctx->lfe_on;
ctx->lfe_ch = ctx->nfchans + 1;
ctx->frame_size = hdr.frame_size;
/* set default output to all source channels */
ctx->out_channels = ctx->nchans;
ctx->output_mode = ctx->acmod;
if(ctx->lfeon)
ctx->output_mode = ctx->channel_mode;
if(ctx->lfe_on)
ctx->output_mode |= AC3_OUTPUT_LFEON;
/* skip over portion of header which has already been read */
@ -369,18 +369,18 @@ static int ac3_parse_header(AC3DecodeContext *ctx)
skip_bits(gb, 16); // skip crc1
skip_bits(gb, 8); // skip fscod and frmsizecod
skip_bits(gb, 11); // skip bsid, bsmod, and acmod
if(ctx->acmod == AC3_ACMOD_STEREO) {
if(ctx->channel_mode == AC3_CHMODE_STEREO) {
skip_bits(gb, 2); // skip dsurmod
} else {
if((ctx->acmod & 1) && ctx->acmod != AC3_ACMOD_MONO)
if((ctx->channel_mode & 1) && ctx->channel_mode != AC3_CHMODE_MONO)
skip_bits(gb, 2); // skip cmixlev
if(ctx->acmod & 4)
if(ctx->channel_mode & 4)
skip_bits(gb, 2); // skip surmixlev
}
skip_bits1(gb); // skip lfeon
/* read the rest of the bsi. read twice for dual mono mode. */
i = !(ctx->acmod);
i = !(ctx->channel_mode);
do {
ctx->dialnorm[i] = dialnorm_tab[get_bits(gb, 5)]; // dialog normalization
if (get_bits1(gb))
@ -411,19 +411,19 @@ static int ac3_parse_header(AC3DecodeContext *ctx)
/* set stereo downmixing coefficients
reference: Section 7.8.2 Downmixing Into Two Channels */
for(i=0; i<ctx->nfchans; i++) {
ctx->downmix_coeffs[i][0] = gain_levels[ac3_default_coeffs[ctx->acmod][i][0]];
ctx->downmix_coeffs[i][1] = gain_levels[ac3_default_coeffs[ctx->acmod][i][1]];
ctx->downmix_coeffs[i][0] = gain_levels[ac3_default_coeffs[ctx->channel_mode][i][0]];
ctx->downmix_coeffs[i][1] = gain_levels[ac3_default_coeffs[ctx->channel_mode][i][1]];
}
if(ctx->acmod > 1 && ctx->acmod & 1) {
ctx->downmix_coeffs[1][0] = ctx->downmix_coeffs[1][1] = cmixlev;
if(ctx->channel_mode > 1 && ctx->channel_mode & 1) {
ctx->downmix_coeffs[1][0] = ctx->downmix_coeffs[1][1] = center_mix_level;
}
if(ctx->acmod == AC3_ACMOD_2F1R || ctx->acmod == AC3_ACMOD_3F1R) {
int nf = ctx->acmod - 2;
ctx->downmix_coeffs[nf][0] = ctx->downmix_coeffs[nf][1] = surmixlev * LEVEL_MINUS_3DB;
if(ctx->channel_mode == AC3_CHMODE_2F1R || ctx->channel_mode == AC3_CHMODE_3F1R) {
int nf = ctx->channel_mode - 2;
ctx->downmix_coeffs[nf][0] = ctx->downmix_coeffs[nf][1] = surround_mix_level * LEVEL_MINUS_3DB;
}
if(ctx->acmod == AC3_ACMOD_2F2R || ctx->acmod == AC3_ACMOD_3F2R) {
int nf = ctx->acmod - 4;
ctx->downmix_coeffs[nf][0] = ctx->downmix_coeffs[nf+1][1] = surmixlev;
if(ctx->channel_mode == AC3_CHMODE_2F2R || ctx->channel_mode == AC3_CHMODE_3F2R) {
int nf = ctx->channel_mode - 4;
ctx->downmix_coeffs[nf][0] = ctx->downmix_coeffs[nf+1][1] = surround_mix_level;
}
return 0;
@ -766,9 +766,9 @@ static void ac3_downmix(float samples[AC3_MAX_CHANNELS][256], int nfchans,
}
v0 /= s0;
v1 /= s1;
if(output_mode == AC3_ACMOD_MONO) {
if(output_mode == AC3_CHMODE_MONO) {
samples[0][i] = (v0 + v1) * LEVEL_MINUS_3DB;
} else if(output_mode == AC3_ACMOD_STEREO) {
} else if(output_mode == AC3_CHMODE_STEREO) {
samples[0][i] = v0;
samples[1][i] = v1;
}
@ -781,7 +781,7 @@ static void ac3_downmix(float samples[AC3_MAX_CHANNELS][256], int nfchans,
static int ac3_parse_audio_block(AC3DecodeContext *ctx, int blk)
{
int nfchans = ctx->nfchans;
int acmod = ctx->acmod;
int channel_mode = ctx->channel_mode;
int i, bnd, seg, ch;
GetBitContext *gb = &ctx->gb;
uint8_t bit_alloc_stages[AC3_MAX_CHANNELS];
@ -801,7 +801,7 @@ static int ac3_parse_audio_block(AC3DecodeContext *ctx, int blk)
}
/* dynamic range */
i = !(ctx->acmod);
i = !(ctx->channel_mode);
do {
if(get_bits1(gb)) {
ctx->dynrng[i] = dynrng_tab[get_bits(gb, 8)];
@ -823,7 +823,7 @@ static int ac3_parse_audio_block(AC3DecodeContext *ctx, int blk)
ctx->chincpl[ch] = get_bits1(gb);
/* phase flags in use */
if (acmod == AC3_ACMOD_STEREO)
if (channel_mode == AC3_CHMODE_STEREO)
ctx->phsflginu = get_bits1(gb);
/* coupling frequency range and band structure */
@ -872,7 +872,7 @@ static int ac3_parse_audio_block(AC3DecodeContext *ctx, int blk)
}
}
/* phase flags */
if (acmod == AC3_ACMOD_STEREO && ctx->phsflginu && cplcoe) {
if (channel_mode == AC3_CHMODE_STEREO && ctx->phsflginu && cplcoe) {
for (bnd = 0; bnd < ctx->ncplbnd; bnd++) {
if (get_bits1(gb))
ctx->cplco[2][bnd] = -ctx->cplco[2][bnd];
@ -881,7 +881,7 @@ static int ac3_parse_audio_block(AC3DecodeContext *ctx, int blk)
}
/* stereo rematrixing strategy and band structure */
if (acmod == AC3_ACMOD_STEREO) {
if (channel_mode == AC3_CHMODE_STEREO) {
ctx->rematstr = get_bits1(gb);
if (ctx->rematstr) {
ctx->nrematbnd = 4;
@ -1046,13 +1046,13 @@ static int ac3_parse_audio_block(AC3DecodeContext *ctx, int blk)
}
/* recover coefficients if rematrixing is in use */
if(ctx->acmod == AC3_ACMOD_STEREO)
if(ctx->channel_mode == AC3_CHMODE_STEREO)
do_rematrixing(ctx);
/* apply scaling to coefficients (headroom, dialnorm, dynrng) */
for(ch=1; ch<=ctx->nchans; ch++) {
float gain = 2.0f * ctx->mul_bias;
if(ctx->acmod == AC3_ACMOD_DUALMONO) {
if(ctx->channel_mode == AC3_CHMODE_DUALMONO) {
gain *= ctx->dialnorm[ch-1] * ctx->dynrng[ch-1];
} else {
gain *= ctx->dialnorm[0] * ctx->dynrng[0];
@ -1136,9 +1136,9 @@ static int ac3_decode_frame(AVCodecContext * avctx, void *data, int *data_size,
return -1;
}
if(avctx->channels == 2) {
ctx->output_mode = AC3_ACMOD_STEREO;
ctx->output_mode = AC3_CHMODE_STEREO;
} else if(avctx->channels == 1) {
ctx->output_mode = AC3_ACMOD_MONO;
ctx->output_mode = AC3_CHMODE_MONO;
} else if(avctx->channels != ctx->out_channels) {
av_log(avctx, AV_LOG_ERROR, "Cannot downmix AC3 from %d to %d channels.\n",
ctx->out_channels, avctx->channels);

View File

@ -37,17 +37,17 @@ typedef struct AC3EncodeContext {
int lfe_channel;
int bit_rate;
unsigned int sample_rate;
unsigned int bsid;
unsigned int bitstream_id;
unsigned int frame_size_min; /* minimum frame size in case rounding is necessary */
unsigned int frame_size; /* current frame size in words */
unsigned int bits_written;
unsigned int samples_written;
int sr_shift;
unsigned int frmsizecod;
unsigned int frame_size_code;
unsigned int sr_code; /* frequency */
unsigned int acmod;
unsigned int channel_mode;
int lfe;
unsigned int bsmod;
unsigned int bitstream_mode;
short last_samples[AC3_MAX_CHANNELS][256];
unsigned int chbwcod[AC3_MAX_CHANNELS];
int nb_coefs[AC3_MAX_CHANNELS];
@ -527,14 +527,14 @@ static int compute_bit_allocation(AC3EncodeContext *s,
/* header size */
frame_bits += 65;
// if (s->acmod == 2)
// if (s->channel_mode == 2)
// frame_bits += 2;
frame_bits += frame_bits_inc[s->acmod];
frame_bits += frame_bits_inc[s->channel_mode];
/* audio blocks */
for(i=0;i<NB_BLOCKS;i++) {
frame_bits += s->nb_channels * 2 + 2; /* blksw * c, dithflag * c, dynrnge, cplstre */
if (s->acmod == AC3_ACMOD_STEREO) {
if (s->channel_mode == AC3_CHMODE_STEREO) {
frame_bits++; /* rematstr */
if(i==0) frame_bits += 4;
}
@ -632,7 +632,7 @@ static int AC3_encode_init(AVCodecContext *avctx)
AC3EncodeContext *s = avctx->priv_data;
int i, j, ch;
float alpha;
static const uint8_t acmod_defs[6] = {
static const uint8_t channel_mode_defs[6] = {
0x01, /* C */
0x02, /* L R */
0x03, /* L C R */
@ -648,7 +648,7 @@ static int AC3_encode_init(AVCodecContext *avctx)
/* number of channels */
if (channels < 1 || channels > 6)
return -1;
s->acmod = acmod_defs[channels - 1];
s->channel_mode = channel_mode_defs[channels - 1];
s->lfe = (channels == 6) ? 1 : 0;
s->nb_all_channels = channels;
s->nb_channels = channels > 5 ? 5 : channels;
@ -665,8 +665,8 @@ static int AC3_encode_init(AVCodecContext *avctx)
s->sample_rate = freq;
s->sr_shift = i;
s->sr_code = j;
s->bsid = 8 + s->sr_shift;
s->bsmod = 0; /* complete main audio service */
s->bitstream_id = 8 + s->sr_shift;
s->bitstream_mode = 0; /* complete main audio service */
/* bitrate & frame size */
bitrate /= 1000;
@ -677,8 +677,8 @@ static int AC3_encode_init(AVCodecContext *avctx)
if (i == 19)
return -1;
s->bit_rate = bitrate;
s->frmsizecod = i << 1;
s->frame_size_min = ff_ac3_frame_size_tab[s->frmsizecod][s->sr_code];
s->frame_size_code = i << 1;
s->frame_size_min = ff_ac3_frame_size_tab[s->frame_size_code][s->sr_code];
s->bits_written = 0;
s->samples_written = 0;
s->frame_size = s->frame_size_min;
@ -719,15 +719,15 @@ static void output_frame_header(AC3EncodeContext *s, unsigned char *frame)
put_bits(&s->pb, 16, 0x0b77); /* frame header */
put_bits(&s->pb, 16, 0); /* crc1: will be filled later */
put_bits(&s->pb, 2, s->sr_code);
put_bits(&s->pb, 6, s->frmsizecod + (s->frame_size - s->frame_size_min));
put_bits(&s->pb, 5, s->bsid);
put_bits(&s->pb, 3, s->bsmod);
put_bits(&s->pb, 3, s->acmod);
if ((s->acmod & 0x01) && s->acmod != AC3_ACMOD_MONO)
put_bits(&s->pb, 6, s->frame_size_code + (s->frame_size - s->frame_size_min));
put_bits(&s->pb, 5, s->bitstream_id);
put_bits(&s->pb, 3, s->bitstream_mode);
put_bits(&s->pb, 3, s->channel_mode);
if ((s->channel_mode & 0x01) && s->channel_mode != AC3_CHMODE_MONO)
put_bits(&s->pb, 2, 1); /* XXX -4.5 dB */
if (s->acmod & 0x04)
if (s->channel_mode & 0x04)
put_bits(&s->pb, 2, 1); /* XXX -6 dB */
if (s->acmod == AC3_ACMOD_STEREO)
if (s->channel_mode == AC3_CHMODE_STEREO)
put_bits(&s->pb, 2, 0); /* surround not indicated */
put_bits(&s->pb, 1, s->lfe); /* LFE */
put_bits(&s->pb, 5, 31); /* dialog norm: -31 db */
@ -810,7 +810,7 @@ static void output_audio_block(AC3EncodeContext *s,
put_bits(&s->pb, 1, 0); /* no new coupling strategy */
}
if (s->acmod == AC3_ACMOD_STEREO)
if (s->channel_mode == AC3_CHMODE_STEREO)
{
if(block_num==0)
{