Commit 6ee6d068 authored by Justin Ruggles's avatar Justin Ruggles

simplify decoding of coupling frequency range

Originally committed as revision 15809 to svn://svn.ffmpeg.org/ffmpeg/trunk
parent 24834c19
...@@ -802,16 +802,18 @@ static int decode_audio_block(AC3DecodeContext *s, int blk) ...@@ -802,16 +802,18 @@ static int decode_audio_block(AC3DecodeContext *s, int blk)
/* coupling frequency range */ /* coupling frequency range */
/* TODO: modify coupling end freq if spectral extension is used */ /* TODO: modify coupling end freq if spectral extension is used */
cpl_start_subband = get_bits(gbc, 4); cpl_start_subband = get_bits(gbc, 4);
cpl_end_subband = get_bits(gbc, 4); cpl_end_subband = get_bits(gbc, 4) + 3;
if (3 + cpl_end_subband - cpl_start_subband < 0) { s->num_cpl_subbands = cpl_end_subband - cpl_start_subband;
av_log(s->avctx, AV_LOG_ERROR, "3+cplendf = %d < cplbegf = %d\n", 3+cpl_end_subband, cpl_start_subband); if (s->num_cpl_subbands < 0) {
av_log(s->avctx, AV_LOG_ERROR, "invalid coupling range (%d > %d)\n",
cpl_start_subband, cpl_end_subband);
return -1; return -1;
} }
s->num_cpl_bands = s->num_cpl_subbands = 3 + cpl_end_subband - cpl_start_subband;
s->start_freq[CPL_CH] = cpl_start_subband * 12 + 37; s->start_freq[CPL_CH] = cpl_start_subband * 12 + 37;
s->end_freq[CPL_CH] = cpl_end_subband * 12 + 73; s->end_freq[CPL_CH] = cpl_end_subband * 12 + 37;
/* coupling band structure */ /* coupling band structure */
s->num_cpl_bands = s->num_cpl_subbands;
if (!s->eac3 || get_bits1(gbc)) { if (!s->eac3 || get_bits1(gbc)) {
for (bnd = 0; bnd < s->num_cpl_subbands - 1; bnd++) { for (bnd = 0; bnd < s->num_cpl_subbands - 1; bnd++) {
s->cpl_band_struct[bnd] = get_bits1(gbc); s->cpl_band_struct[bnd] = get_bits1(gbc);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment