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
817817
818818 /* Low frequency effect data */
819819 if (!base_channel && s->lfe) {
820+ int quant7;
820821 /* LFE samples */
821822 int lfe_samples = 2 * s->lfe * (4 + block_index);
822823 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
828829 }
829830
830831 /* 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];
832838
833839 /* Quantization step size * scale factor */
834840 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