Mercurial > libavcodec.hg
comparison mpc8.c @ 9153:4e91d96dd045 libavcodec
Make Musepack decoders use LFG pseudorandom generator
author | kostya |
---|---|
date | Sun, 08 Mar 2009 16:37:57 +0000 |
parents | e9d9d946f213 |
children | 54bc8a2727b0 |
comparison
equal
deleted
inserted
replaced
9152:788aa0c09382 | 9153:4e91d96dd045 |
---|---|
23 * @file libavcodec/mpc8.c Musepack SV8 decoder | 23 * @file libavcodec/mpc8.c Musepack SV8 decoder |
24 * MPEG Audio Layer 1/2 -like codec with frames of 1152 samples | 24 * MPEG Audio Layer 1/2 -like codec with frames of 1152 samples |
25 * divided into 32 subbands. | 25 * divided into 32 subbands. |
26 */ | 26 */ |
27 | 27 |
28 #include "libavutil/random.h" | 28 #include "libavutil/lfg.h" |
29 #include "avcodec.h" | 29 #include "avcodec.h" |
30 #include "bitstream.h" | 30 #include "bitstream.h" |
31 #include "dsputil.h" | 31 #include "dsputil.h" |
32 #include "mpegaudio.h" | 32 #include "mpegaudio.h" |
33 | 33 |
98 if(avctx->extradata_size < 2){ | 98 if(avctx->extradata_size < 2){ |
99 av_log(avctx, AV_LOG_ERROR, "Too small extradata size (%i)!\n", avctx->extradata_size); | 99 av_log(avctx, AV_LOG_ERROR, "Too small extradata size (%i)!\n", avctx->extradata_size); |
100 return -1; | 100 return -1; |
101 } | 101 } |
102 memset(c->oldDSCF, 0, sizeof(c->oldDSCF)); | 102 memset(c->oldDSCF, 0, sizeof(c->oldDSCF)); |
103 av_random_init(&c->rnd, 0xDEADBEEF); | 103 av_lfg_init(&c->rnd, 0xDEADBEEF); |
104 dsputil_init(&c->dsp, avctx); | 104 dsputil_init(&c->dsp, avctx); |
105 | 105 |
106 ff_mpc_init(); | 106 ff_mpc_init(); |
107 | 107 |
108 init_get_bits(&gb, avctx->extradata, 16); | 108 init_get_bits(&gb, avctx->extradata, 16); |
282 for(ch = 0; ch < 2; ch++){ | 282 for(ch = 0; ch < 2; ch++){ |
283 res = bands[i].res[ch]; | 283 res = bands[i].res[ch]; |
284 switch(res){ | 284 switch(res){ |
285 case -1: | 285 case -1: |
286 for(j = 0; j < SAMPLES_PER_BAND; j++) | 286 for(j = 0; j < SAMPLES_PER_BAND; j++) |
287 c->Q[ch][off + j] = (av_random(&c->rnd) & 0x3FC) - 510; | 287 c->Q[ch][off + j] = (av_lfg_get(&c->rnd) & 0x3FC) - 510; |
288 break; | 288 break; |
289 case 0: | 289 case 0: |
290 break; | 290 break; |
291 case 1: | 291 case 1: |
292 for(j = 0; j < SAMPLES_PER_BAND; j += SAMPLES_PER_BAND / 2){ | 292 for(j = 0; j < SAMPLES_PER_BAND; j += SAMPLES_PER_BAND / 2){ |