From 230178dfe25ebe27934062c9fa8e2a40e6ad2b0b Mon Sep 17 00:00:00 2001 From: Rostislav Pehlivanov Date: Sat, 8 Oct 2016 01:47:04 +0100 Subject: aacenc: use the decoder's lcg PRNG Using lfg was an overkill in this case where the random numbers were only used for encoder descisions. Should increase result uniformity between different FPUs and gives a slight speedup. Signed-off-by: Rostislav Pehlivanov --- libavcodec/aaccoder.c | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) (limited to 'libavcodec/aaccoder.c') diff --git a/libavcodec/aaccoder.c b/libavcodec/aaccoder.c index 284b401adf..35787e841e 100644 --- a/libavcodec/aaccoder.c +++ b/libavcodec/aaccoder.c @@ -643,11 +643,9 @@ static void search_for_pns(AACEncContext *s, AVCodecContext *avctx, SingleChanne float band_energy, scale, pns_senergy; const int start_c = (w+w2)*128+sce->ics.swb_offset[g]; band = &s->psy.ch[s->cur_channel].psy_bands[(w+w2)*16+g]; - for (i = 0; i < sce->ics.swb_sizes[g]; i+=2) { - double rnd[2]; - av_bmg_get(&s->lfg, rnd); - PNS[i+0] = (float)rnd[0]; - PNS[i+1] = (float)rnd[1]; + for (i = 0; i < sce->ics.swb_sizes[g]; i++) { + s->random_state = lcg_random(s->random_state); + PNS[i] = s->random_state; } band_energy = s->fdsp->scalarproduct_float(PNS, PNS, sce->ics.swb_sizes[g]); scale = noise_amp/sqrtf(band_energy); -- cgit v1.2.3