Adding on the fly volume normalization support. Code originally from mplayer, ported by syscrash, cleaned up by avuton, and further cleaned up by me (jat).
git-svn-id: https://svn.musicpd.org/mpd/trunk@4424 09075e82-0dd4-0310-85a5-a0d7c8717e4f
This commit is contained in:
@@ -22,6 +22,8 @@
|
||||
#include "playerData.h"
|
||||
#include "utils.h"
|
||||
#include "log.h"
|
||||
#include "normalize.h"
|
||||
#include "conf.h"
|
||||
|
||||
#include <string.h>
|
||||
|
||||
@@ -76,6 +78,22 @@ int sendDataToOutputBuffer(OutputBuffer * cb, InputStream * inStream,
|
||||
size_t datalen;
|
||||
static char *convBuffer = NULL;
|
||||
static long convBufferLen = 0;
|
||||
static int normalEnable = -1;
|
||||
ConfigParam *param;
|
||||
|
||||
if (normalEnable == -1) {
|
||||
normalEnable = getBoolConfigParam(CONF_VOLUME_NORMALIZATION);
|
||||
if (normalEnable == -1) {
|
||||
/* not set */
|
||||
normalEnable = 0;
|
||||
} else if (normalEnable < 0) {
|
||||
param = getConfigParam(CONF_VOLUME_NORMALIZATION);
|
||||
WARNING("%s is not \"yes\" or \"no\" on line %i, "
|
||||
"disabling\n", CONF_VOLUME_NORMALIZATION,
|
||||
param->line);
|
||||
normalEnable = 0;
|
||||
}
|
||||
}
|
||||
|
||||
if (cmpAudioFormat(&(cb->audioFormat), &(dc->audioFormat)) == 0) {
|
||||
data = dataIn;
|
||||
@@ -99,6 +117,8 @@ int sendDataToOutputBuffer(OutputBuffer * cb, InputStream * inStream,
|
||||
|
||||
if (replayGainInfo) {
|
||||
doReplayGain(replayGainInfo, data, datalen, &cb->audioFormat);
|
||||
} else if (normalEnable) {
|
||||
normalizeData(data, datalen, &cb->audioFormat);
|
||||
}
|
||||
|
||||
while (datalen) {
|
||||
|
||||
Reference in New Issue
Block a user