diff options
author | Tim Phipps <mpd@phipps-hutton.freeserve.co.uk> | 2010-05-08 00:19:44 -0700 |
---|---|---|
committer | Avuton Olrich <avuton@gmail.com> | 2010-05-08 00:19:44 -0700 |
commit | 0ac5b6e613777bab093d1dbca1f3d6c80c48ca52 (patch) | |
tree | 167dbcd9c66cb60baf6ea61b0d501fdca4c71e98 /src/decoder | |
parent | eb5208c4f9e642c45b305f338c224cb65075840b (diff) | |
download | mpd-0ac5b6e613777bab093d1dbca1f3d6c80c48ca52.tar.gz mpd-0ac5b6e613777bab093d1dbca1f3d6c80c48ca52.tar.xz mpd-0ac5b6e613777bab093d1dbca1f3d6c80c48ca52.zip |
mixramp: Adjust MixRamp threshold to account for ReplayGain.
Diffstat (limited to 'src/decoder')
-rw-r--r-- | src/decoder/_flac_common.c | 6 | ||||
-rw-r--r-- | src/decoder/mad_decoder_plugin.c | 7 |
2 files changed, 9 insertions, 4 deletions
diff --git a/src/decoder/_flac_common.c b/src/decoder/_flac_common.c index 6f6d33f05..8dd22a253 100644 --- a/src/decoder/_flac_common.c +++ b/src/decoder/_flac_common.c @@ -114,6 +114,7 @@ void flac_metadata_common_cb(const FLAC__StreamMetadata * block, struct replay_gain_info rgi; char *mixramp_start; char *mixramp_end; + float replay_gain_db = 0; switch (block->type) { case FLAC__METADATA_TYPE_STREAMINFO: @@ -122,10 +123,11 @@ void flac_metadata_common_cb(const FLAC__StreamMetadata * block, case FLAC__METADATA_TYPE_VORBIS_COMMENT: if (flac_parse_replay_gain(&rgi, block)) - decoder_replay_gain(data->decoder, &rgi); + replay_gain_db = decoder_replay_gain(data->decoder, &rgi); if (flac_parse_mixramp(&mixramp_start, &mixramp_end, block)) { g_debug("setting mixramp_tags"); - decoder_mixramp(data->decoder, mixramp_start, mixramp_end); + decoder_mixramp(data->decoder, replay_gain_db, + mixramp_start, mixramp_end); } if (data->tag != NULL) diff --git a/src/decoder/mad_decoder_plugin.c b/src/decoder/mad_decoder_plugin.c index 57221d878..573afc975 100644 --- a/src/decoder/mad_decoder_plugin.c +++ b/src/decoder/mad_decoder_plugin.c @@ -446,13 +446,16 @@ static void mp3_parse_id3(struct mp3_data *data, size_t tagsize, struct replay_gain_info rgi; char *mixramp_start; char *mixramp_end; + float replay_gain_db = 0; + if (parse_id3_replay_gain_info(&rgi, id3_tag)) { - decoder_replay_gain(data->decoder, &rgi); + replay_gain_db = decoder_replay_gain(data->decoder, &rgi); data->found_replay_gain = true; } if (parse_id3_mixramp(&mixramp_start, &mixramp_end, id3_tag)) { g_debug("setting mixramp_tags"); - decoder_mixramp(data->decoder, mixramp_start, mixramp_end); + decoder_mixramp(data->decoder, replay_gain_db, + mixramp_start, mixramp_end); } } |