comparison mpc7.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/mpc7.c Musepack SV7 decoder 23 * @file libavcodec/mpc7.c Musepack SV7 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
51 if(avctx->extradata_size < 16){ 51 if(avctx->extradata_size < 16){
52 av_log(avctx, AV_LOG_ERROR, "Too small extradata size (%i)!\n", avctx->extradata_size); 52 av_log(avctx, AV_LOG_ERROR, "Too small extradata size (%i)!\n", avctx->extradata_size);
53 return -1; 53 return -1;
54 } 54 }
55 memset(c->oldDSCF, 0, sizeof(c->oldDSCF)); 55 memset(c->oldDSCF, 0, sizeof(c->oldDSCF));
56 av_random_init(&c->rnd, 0xDEADBEEF); 56 av_lfg_init(&c->rnd, 0xDEADBEEF);
57 dsputil_init(&c->dsp, avctx); 57 dsputil_init(&c->dsp, avctx);
58 c->dsp.bswap_buf((uint32_t*)buf, (const uint32_t*)avctx->extradata, 4); 58 c->dsp.bswap_buf((uint32_t*)buf, (const uint32_t*)avctx->extradata, 4);
59 ff_mpc_init(); 59 ff_mpc_init();
60 init_get_bits(&gb, buf, 128); 60 init_get_bits(&gb, buf, 128);
61 61
116 { 116 {
117 int i, i1, t; 117 int i, i1, t;
118 switch(idx){ 118 switch(idx){
119 case -1: 119 case -1:
120 for(i = 0; i < SAMPLES_PER_BAND; i++){ 120 for(i = 0; i < SAMPLES_PER_BAND; i++){
121 *dst++ = (av_random(&c->rnd) & 0x3FC) - 510; 121 *dst++ = (av_lfg_get(&c->rnd) & 0x3FC) - 510;
122 } 122 }
123 break; 123 break;
124 case 1: 124 case 1:
125 i1 = get_bits1(gb); 125 i1 = get_bits1(gb);
126 for(i = 0; i < SAMPLES_PER_BAND/3; i++){ 126 for(i = 0; i < SAMPLES_PER_BAND/3; i++){