diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/player.c | 6 | ||||
-rw-r--r-- | src/player.h | 1 |
2 files changed, 5 insertions, 2 deletions
diff --git a/src/player.c b/src/player.c index 086fcad..f2403bc 100644 --- a/src/player.c +++ b/src/player.c @@ -105,8 +105,7 @@ size_t BarPlayerCurlCb (void *ptr, size_t size, size_t nmemb, void *stream) { int tmpReplayBuf; size_t i; for (i = 0; i < frameInfo.samples; i++) { - tmpReplayBuf = (float) (replayBuf[i]) * - computeReplayGainScale (player->gain); + tmpReplayBuf = (float) replayBuf[i] * player->scale; /* avoid clipping */ if (tmpReplayBuf > INT16_MAX) { replayBuf[i] = INT16_MAX; @@ -249,6 +248,9 @@ void *BarPlayerThread (void *data) { /* init handles */ player->audioFd = curl_easy_init (); player->aacHandle = NeAACDecOpen(); + + /* init replaygain */ + player->scale = computeReplayGainScale (player->gain); /* set aac conf */ conf = NeAACDecGetCurrentConfiguration(player->aacHandle); diff --git a/src/player.h b/src/player.h index 9d0908b..94be1a4 100644 --- a/src/player.h +++ b/src/player.h @@ -42,6 +42,7 @@ struct aacPlayer { unsigned long samplerate; unsigned char channels; float gain; + float scale; /* audio out */ ao_device *audioOutDevice; char *url; |