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){