summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/player.c6
-rw-r--r--src/player.h1
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;