diff options
author | Warren Dukes <warren.dukes@gmail.com> | 2005-02-02 04:05:19 +0000 |
---|---|---|
committer | Warren Dukes <warren.dukes@gmail.com> | 2005-02-02 04:05:19 +0000 |
commit | f134e2686a18eb7c9ef176e2322e7cede9843ea8 (patch) | |
tree | 597365d6493d8b4ad37295b92a85e3d6d811d4ba /src | |
parent | 09a87803a150a4259139e8084c9d817cdb3b3c5c (diff) | |
download | mpd-f134e2686a18eb7c9ef176e2322e7cede9843ea8.tar.gz mpd-f134e2686a18eb7c9ef176e2322e7cede9843ea8.tar.xz mpd-f134e2686a18eb7c9ef176e2322e7cede9843ea8.zip |
todo update
git-svn-id: https://svn.musicpd.org/mpd/trunk@2926 09075e82-0dd4-0310-85a5-a0d7c8717e4f
Diffstat (limited to '')
-rw-r--r-- | src/inputPlugins/mpc_plugin.c | 16 |
1 files changed, 13 insertions, 3 deletions
diff --git a/src/inputPlugins/mpc_plugin.c b/src/inputPlugins/mpc_plugin.c index 5bccb3f3d..b0cf24ab3 100644 --- a/src/inputPlugins/mpc_plugin.c +++ b/src/inputPlugins/mpc_plugin.c @@ -132,6 +132,7 @@ int mpc_decode(OutputBuffer * cb, DecoderControl * dc, InputStream * inStream) mpc_uint32_t vbrUpdateBits; float time; int i; + ReplayGainInfo * replayGainInfo = NULL; data.inStream = inStream; data.dc = dc; @@ -174,11 +175,17 @@ int mpc_decode(OutputBuffer * cb, DecoderControl * dc, InputStream * inStream) dc->totalTime = mpc_streaminfo_get_length(&info); dc->audioFormat.bits = 16; - dc->audioFormat.channels = 2; + dc->audioFormat.channels = info.channels; dc->audioFormat.sampleRate = info.sample_freq; getOutputAudioFormat(&(dc->audioFormat), &(cb->audioFormat)); + replayGainInfo = newReplayGainInfo(); + replayGainInfo->albumGain = info.gain_album; + replayGainInfo->albumPeak = info.peak_album; + replayGainInfo->trackGain = info.gain_title; + replayGainInfo->trackPeak = info.peak_title; + dc->state = DECODE_STATE_DECODE; while(!eof) { @@ -224,7 +231,8 @@ int mpc_decode(OutputBuffer * cb, DecoderControl * dc, InputStream * inStream) chunk, chunkpos, time, bitRate, - NULL); + replayGainInfo); + chunkpos = 0; s16 = (mpd_sint16 *)chunk; if(dc->stop) { @@ -243,13 +251,15 @@ int mpc_decode(OutputBuffer * cb, DecoderControl * dc, InputStream * inStream) sendDataToOutputBuffer(cb, NULL, dc, inStream->seekable, chunk, chunkpos, time, bitRate, - NULL); + replayGainInfo); } closeInputStream(inStream); flushOutputBuffer(cb); + freeReplayGainInfo(replayGainInfo); + if(dc->stop) { dc->state = DECODE_STATE_STOP; dc->stop = 0; |