mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-12-23 12:43:46 +02:00
Use AVRandom
Originally committed as revision 8004 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
parent
eeb40eb367
commit
e4cc43625f
@ -29,6 +29,7 @@
|
|||||||
#include "avcodec.h"
|
#include "avcodec.h"
|
||||||
#include "bitstream.h"
|
#include "bitstream.h"
|
||||||
#include "dsputil.h"
|
#include "dsputil.h"
|
||||||
|
#include "random.h"
|
||||||
|
|
||||||
#ifdef CONFIG_MPEGAUDIO_HP
|
#ifdef CONFIG_MPEGAUDIO_HP
|
||||||
#define USE_HIGHPRECISION
|
#define USE_HIGHPRECISION
|
||||||
@ -50,7 +51,7 @@ typedef struct {
|
|||||||
int IS, MSS, gapless;
|
int IS, MSS, gapless;
|
||||||
int lastframelen, bands;
|
int lastframelen, bands;
|
||||||
int oldDSCF[2][BANDS];
|
int oldDSCF[2][BANDS];
|
||||||
int rnd;
|
AVRandomState rnd;
|
||||||
int frames_to_skip;
|
int frames_to_skip;
|
||||||
/* for synthesis */
|
/* for synthesis */
|
||||||
DECLARE_ALIGNED_16(MPA_INT, synth_buf[MPA_MAX_CHANNELS][512*2]);
|
DECLARE_ALIGNED_16(MPA_INT, synth_buf[MPA_MAX_CHANNELS][512*2]);
|
||||||
@ -81,7 +82,7 @@ static int mpc7_decode_init(AVCodecContext * avctx)
|
|||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
memset(c->oldDSCF, 0, sizeof(c->oldDSCF));
|
memset(c->oldDSCF, 0, sizeof(c->oldDSCF));
|
||||||
c->rnd = 0xDEADBEEF;
|
av_init_random(0xDEADBEEF, &c->rnd);
|
||||||
dsputil_init(&c->dsp, avctx);
|
dsputil_init(&c->dsp, avctx);
|
||||||
c->dsp.bswap_buf(buf, avctx->extradata, 4);
|
c->dsp.bswap_buf(buf, avctx->extradata, 4);
|
||||||
ff_mpa_synth_init(mpa_window);
|
ff_mpa_synth_init(mpa_window);
|
||||||
@ -135,13 +136,6 @@ static int mpc7_decode_init(AVCodecContext * avctx)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
// XXX replace with something better
|
|
||||||
static int av_always_inline mpc_rnd(MPCContext *c)
|
|
||||||
{
|
|
||||||
c->rnd = c->rnd * 27 + 17;
|
|
||||||
return c->rnd;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Process decoded Musepack data and produce PCM
|
* Process decoded Musepack data and produce PCM
|
||||||
* @todo make it available for MPC8 and MPC6
|
* @todo make it available for MPC8 and MPC6
|
||||||
@ -175,8 +169,7 @@ static void inline idx_to_quant(MPCContext *c, GetBitContext *gb, int idx, int *
|
|||||||
switch(idx){
|
switch(idx){
|
||||||
case -1:
|
case -1:
|
||||||
for(i = 0; i < SAMPLES_PER_BAND; i++){
|
for(i = 0; i < SAMPLES_PER_BAND; i++){
|
||||||
t = mpc_rnd(c);
|
*dst++ = (av_random(&c->rnd) & 0x3FC) - 510;
|
||||||
*dst++ = ((t>>24)& 0xFF) + ((t>>16) & 0xFF) + ((t>>8) & 0xFF) + (t & 0xFF) - 510;
|
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 1:
|
case 1:
|
||||||
|
Loading…
Reference in New Issue
Block a user