todo update
git-svn-id: https://svn.musicpd.org/mpd/trunk@2926 09075e82-0dd4-0310-85a5-a0d7c8717e4f
This commit is contained in:
parent
09a87803a1
commit
f134e2686a
8
TODO
8
TODO
@ -40,12 +40,8 @@
|
|||||||
*) Handle mp1 and mp2 files (including mp2's that are disguised as mp3's with
|
*) Handle mp1 and mp2 files (including mp2's that are disguised as mp3's with
|
||||||
a mp3 suffix)
|
a mp3 suffix)
|
||||||
|
|
||||||
*) choose id3v2 over id3v1 tags when both are present
|
|
||||||
|
|
||||||
*) add error codes for status->error
|
*) add error codes for status->error
|
||||||
|
|
||||||
*) add support for mousepack/mpc files
|
|
||||||
|
|
||||||
*) add alsa audioOutput plugin
|
*) add alsa audioOutput plugin
|
||||||
|
|
||||||
*) add a method for closing the audio device immediatly w/o waiting for an
|
*) add a method for closing the audio device immediatly w/o waiting for an
|
||||||
@ -53,6 +49,10 @@
|
|||||||
|
|
||||||
*) add support for playing aac streams (gee, thanks icecast)
|
*) add support for playing aac streams (gee, thanks icecast)
|
||||||
|
|
||||||
|
*) implement apev2 and id3v1 tag reader from xmms-musepack plugin
|
||||||
|
|
||||||
|
*) only use libid3tag for id3v2 tags, use internal implementation for id3v1 tags
|
||||||
|
|
||||||
0.13
|
0.13
|
||||||
----
|
----
|
||||||
*) support for dynamically loading plugins
|
*) support for dynamically loading plugins
|
||||||
|
@ -132,6 +132,7 @@ int mpc_decode(OutputBuffer * cb, DecoderControl * dc, InputStream * inStream)
|
|||||||
mpc_uint32_t vbrUpdateBits;
|
mpc_uint32_t vbrUpdateBits;
|
||||||
float time;
|
float time;
|
||||||
int i;
|
int i;
|
||||||
|
ReplayGainInfo * replayGainInfo = NULL;
|
||||||
|
|
||||||
data.inStream = inStream;
|
data.inStream = inStream;
|
||||||
data.dc = dc;
|
data.dc = dc;
|
||||||
@ -174,11 +175,17 @@ int mpc_decode(OutputBuffer * cb, DecoderControl * dc, InputStream * inStream)
|
|||||||
dc->totalTime = mpc_streaminfo_get_length(&info);
|
dc->totalTime = mpc_streaminfo_get_length(&info);
|
||||||
|
|
||||||
dc->audioFormat.bits = 16;
|
dc->audioFormat.bits = 16;
|
||||||
dc->audioFormat.channels = 2;
|
dc->audioFormat.channels = info.channels;
|
||||||
dc->audioFormat.sampleRate = info.sample_freq;
|
dc->audioFormat.sampleRate = info.sample_freq;
|
||||||
|
|
||||||
getOutputAudioFormat(&(dc->audioFormat), &(cb->audioFormat));
|
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;
|
dc->state = DECODE_STATE_DECODE;
|
||||||
|
|
||||||
while(!eof) {
|
while(!eof) {
|
||||||
@ -224,7 +231,8 @@ int mpc_decode(OutputBuffer * cb, DecoderControl * dc, InputStream * inStream)
|
|||||||
chunk, chunkpos,
|
chunk, chunkpos,
|
||||||
time,
|
time,
|
||||||
bitRate,
|
bitRate,
|
||||||
NULL);
|
replayGainInfo);
|
||||||
|
|
||||||
chunkpos = 0;
|
chunkpos = 0;
|
||||||
s16 = (mpd_sint16 *)chunk;
|
s16 = (mpd_sint16 *)chunk;
|
||||||
if(dc->stop) {
|
if(dc->stop) {
|
||||||
@ -243,13 +251,15 @@ int mpc_decode(OutputBuffer * cb, DecoderControl * dc, InputStream * inStream)
|
|||||||
|
|
||||||
sendDataToOutputBuffer(cb, NULL, dc, inStream->seekable,
|
sendDataToOutputBuffer(cb, NULL, dc, inStream->seekable,
|
||||||
chunk, chunkpos, time, bitRate,
|
chunk, chunkpos, time, bitRate,
|
||||||
NULL);
|
replayGainInfo);
|
||||||
}
|
}
|
||||||
|
|
||||||
closeInputStream(inStream);
|
closeInputStream(inStream);
|
||||||
|
|
||||||
flushOutputBuffer(cb);
|
flushOutputBuffer(cb);
|
||||||
|
|
||||||
|
freeReplayGainInfo(replayGainInfo);
|
||||||
|
|
||||||
if(dc->stop) {
|
if(dc->stop) {
|
||||||
dc->state = DECODE_STATE_STOP;
|
dc->state = DECODE_STATE_STOP;
|
||||||
dc->stop = 0;
|
dc->stop = 0;
|
||||||
|
Loading…
Reference in New Issue
Block a user