Mercurial > libavcodec.hg
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++){ |