Mercurial > libavcodec.hg
comparison ac3dec.c @ 7601:69d5f318275f libavcodec
use LFG instead of Mersenne Twister for AC-3 PRNG
author | jbr |
---|---|
date | Sun, 17 Aug 2008 17:41:48 +0000 |
parents | cd6217c9ce92 |
children | 20c91136fe71 |
comparison
equal
deleted
inserted
replaced
7600:3e0103ac9d76 | 7601:69d5f318275f |
---|---|
31 #include <stddef.h> | 31 #include <stddef.h> |
32 #include <math.h> | 32 #include <math.h> |
33 #include <string.h> | 33 #include <string.h> |
34 | 34 |
35 #include "libavutil/crc.h" | 35 #include "libavutil/crc.h" |
36 #include "libavutil/random.h" | |
37 #include "avcodec.h" | 36 #include "avcodec.h" |
38 #include "ac3_parser.h" | 37 #include "ac3_parser.h" |
39 #include "bitstream.h" | 38 #include "bitstream.h" |
40 #include "dsputil.h" | 39 #include "dsputil.h" |
41 #include "ac3dec.h" | 40 #include "ac3dec.h" |
196 ac3_tables_init(); | 195 ac3_tables_init(); |
197 ff_mdct_init(&s->imdct_256, 8, 1); | 196 ff_mdct_init(&s->imdct_256, 8, 1); |
198 ff_mdct_init(&s->imdct_512, 9, 1); | 197 ff_mdct_init(&s->imdct_512, 9, 1); |
199 ff_kbd_window_init(s->window, 5.0, 256); | 198 ff_kbd_window_init(s->window, 5.0, 256); |
200 dsputil_init(&s->dsp, avctx); | 199 dsputil_init(&s->dsp, avctx); |
201 av_init_random(0, &s->dith_state); | 200 av_lfg_init(&s->dith_state, 0); |
202 | 201 |
203 /* set bias values for float to int16 conversion */ | 202 /* set bias values for float to int16 conversion */ |
204 if(s->dsp.float_to_int16_interleave == ff_float_to_int16_interleave_c) { | 203 if(s->dsp.float_to_int16_interleave == ff_float_to_int16_interleave_c) { |
205 s->add_bias = 385.0f; | 204 s->add_bias = 385.0f; |
206 s->mul_bias = 1.0f; | 205 s->mul_bias = 1.0f; |
448 | 447 |
449 for (i = start; i < end; i++) { | 448 for (i = start; i < end; i++) { |
450 tbap = bap[i]; | 449 tbap = bap[i]; |
451 switch (tbap) { | 450 switch (tbap) { |
452 case 0: | 451 case 0: |
453 coeffs[i] = (av_random(&s->dith_state) & 0x7FFFFF) - 0x400000; | 452 coeffs[i] = (av_lfg_get(&s->dith_state) & 0x7FFFFF) - 0x400000; |
454 break; | 453 break; |
455 | 454 |
456 case 1: | 455 case 1: |
457 if(m->b1ptr > 2) { | 456 if(m->b1ptr > 2) { |
458 gcode = get_bits(gbc, 5); | 457 gcode = get_bits(gbc, 5); |