comparison ac3dec.c @ 7473:e2f3016867a0 libavcodec

Read bitstream parameters for E-AC-3 streams before returning an error.
author jbr
date Sun, 03 Aug 2008 22:29:06 +0000
parents 83c16f531a90
children f6260f8362f6
comparison
equal deleted inserted replaced
7472:83c16f531a90 7473:e2f3016867a0
281 281
282 err = ff_ac3_parse_header(gbc, &hdr); 282 err = ff_ac3_parse_header(gbc, &hdr);
283 if(err) 283 if(err)
284 return err; 284 return err;
285 285
286 if(hdr.bitstream_id > 10)
287 return AC3_PARSE_ERROR_BSID;
288
289 /* get decoding parameters from header info */ 286 /* get decoding parameters from header info */
290 s->bit_alloc_params.sr_code = hdr.sr_code; 287 s->bit_alloc_params.sr_code = hdr.sr_code;
291 s->channel_mode = hdr.channel_mode; 288 s->channel_mode = hdr.channel_mode;
292 s->lfe_on = hdr.lfe_on; 289 s->lfe_on = hdr.lfe_on;
293 s->bit_alloc_params.sr_shift = hdr.sr_shift; 290 s->bit_alloc_params.sr_shift = hdr.sr_shift;
307 s->start_freq[s->lfe_ch] = 0; 304 s->start_freq[s->lfe_ch] = 0;
308 s->end_freq[s->lfe_ch] = 7; 305 s->end_freq[s->lfe_ch] = 7;
309 s->num_exp_groups[s->lfe_ch] = 2; 306 s->num_exp_groups[s->lfe_ch] = 2;
310 s->channel_in_cpl[s->lfe_ch] = 0; 307 s->channel_in_cpl[s->lfe_ch] = 0;
311 } 308 }
309
310 if(hdr.bitstream_id > 10)
311 return AC3_PARSE_ERROR_BSID;
312 312
313 return ac3_parse_header(s); 313 return ac3_parse_header(s);
314 } 314 }
315 315
316 /** 316 /**