History

dca: Check LFEScaleIndex.

Its not clear from the spec what to do with values larger than 127 so iam opting for the safe side and ask for a sample.

Michael Niedermayer committed 14 years ago

Commit d6bc2731 parent 33b9fe51 file · +7 −1Browse files

Unified · Split

libavcodec/dca.c+7−1
@@ -817,6 +817,7 @@ static int dca_subframe_header(DCAContext *s, int base_channel, int block_index) · 816 unmodified lines
817 817
818 /* Low frequency effect data */818 /* Low frequency effect data */
819 if (!base_channel && s->lfe) {819 if (!base_channel && s->lfe) {
820 int quant7;
820 /* LFE samples */821 /* LFE samples */
821 int lfe_samples = 2 * s->lfe * (4 + block_index);822 int lfe_samples = 2 * s->lfe * (4 + block_index);
822 int lfe_end_sample = 2 * s->lfe * (4 + block_index + s->subsubframes[s->current_subframe]);823 int lfe_end_sample = 2 * s->lfe * (4 + block_index + s->subsubframes[s->current_subframe]);
@@ -828,7 +829,12 @@ static int dca_subframe_header(DCAContext *s, int base_channel, int block_index) · 5 unmodified lines
828 }829 }
829 830
830 /* Scale factor index */831 /* Scale factor index */
831 s->lfe_scale_factor = scale_factor_quant7[get_bits(&s->gb, 8)];832 quant7 = get_bits(&s->gb, 8);
833 if (quant7 > 127) {
834 av_log_ask_for_sample(s->avctx, "LFEScaleIndex larger than 127\n");
835 return AVERROR_INVALIDDATA;
836 }
837 s->lfe_scale_factor = scale_factor_quant7[quant7];
832 838
833 /* Quantization step size * scale factor */839 /* Quantization step size * scale factor */
834 lfe_scale = 0.035 * s->lfe_scale_factor;840 lfe_scale = 0.035 * s->lfe_scale_factor;

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t