summaryrefslogtreecommitdiffstats
path: root/libavcodec/aaccoder.c
diff options
context:
space:
mode:
authorRostislav Pehlivanov <atomnuker@gmail.com>2016-10-08 01:47:04 +0100
committerRostislav Pehlivanov <atomnuker@gmail.com>2016-10-12 11:15:49 +0100
commit230178dfe25ebe27934062c9fa8e2a40e6ad2b0b (patch)
tree9815d504a8744bccf622d80ad2ed4de1f1b62284 /libavcodec/aaccoder.c
parentcfa3c2655ac2bafe7b76f1e68c8fe6ecee03f1a8 (diff)
downloadffmpeg-streaming-230178dfe25ebe27934062c9fa8e2a40e6ad2b0b.zip
ffmpeg-streaming-230178dfe25ebe27934062c9fa8e2a40e6ad2b0b.tar.gz
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 <atomnuker@gmail.com>
Diffstat (limited to 'libavcodec/aaccoder.c')
-rw-r--r--libavcodec/aaccoder.c8
1 files changed, 3 insertions, 5 deletions
diff --git a/libavcodec/aaccoder.c b/libavcodec/aaccoder.c
index 284b401..35787e8 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);
OpenPOWER on IntegriCloud