Mercurial > libavcodec.hg
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 /** |