diff options
author | Warren Dukes <warren.dukes@gmail.com> | 2004-06-07 05:00:56 +0000 |
---|---|---|
committer | Warren Dukes <warren.dukes@gmail.com> | 2004-06-07 05:00:56 +0000 |
commit | 283e34eaae554604ed1f2f848026840c0eed3dfd (patch) | |
tree | 1ca514a48ce28be1da09eee5eed95435b760b9ad /src/inputPlugins/mp3_plugin.c | |
parent | 74f1c8c0181ce00546455b5408a186cca02f16cb (diff) |
icy metadata! wahoo
still lots some debug code with print out's, so don't bitch about it!
git-svn-id: https://svn.musicpd.org/mpd/trunk@1364 09075e82-0dd4-0310-85a5-a0d7c8717e4f
Diffstat (limited to 'src/inputPlugins/mp3_plugin.c')
-rw-r--r-- | src/inputPlugins/mp3_plugin.c | 39 |
1 files changed, 36 insertions, 3 deletions
diff --git a/src/inputPlugins/mp3_plugin.c b/src/inputPlugins/mp3_plugin.c index f2ad57500..2921c9351 100644 --- a/src/inputPlugins/mp3_plugin.c +++ b/src/inputPlugins/mp3_plugin.c @@ -531,6 +531,18 @@ int mp3Read(mp3DecodeData * data, OutputBuffer * cb, DecoderControl * dc) { default: mad_synth_frame(&data->synth,&data->frame); + if(data->inStream->metaTitle) { + MpdTag * tag = newMpdTag(); + if(data->inStream->metaName) { + tag->name = strdup(data->inStream->metaName); + } + tag->title = strdup(data->inStream->metaTitle); + free(data->inStream->metaTitle); + data->inStream->metaTitle = NULL; + copyMpdTagToOutputBuffer(cb, tag); + freeMpdTag(tag); + } + for(i=0;i<(data->synth).pcm.length;i++) { mpd_sint16 * sample; @@ -643,10 +655,31 @@ int mp3_decode(OutputBuffer * cb, DecoderControl * dc, InputStream * inStream) { dc->totalTime = data.totalTime; - if(tag) { - if(inStream->metaTitle) { + if(inStream->metaTitle) { + if(tag) freeMpdTag(tag); + tag = newMpdTag(); + tag->title = strdup(inStream->metaTitle); + /* free ths now, so we know we are done with it */ + free(inStream->metaTitle); + inStream->metaTitle = NULL; + if(inStream->metaName) { + tag->name = strdup(inStream->metaName); + } + copyMpdTagToOutputBuffer(cb, tag); + freeMpdTag(tag); + } + else if(tag) { + if(inStream->metaName) { if(tag->name) free(tag->name); - tag->name = strdup(inStream->metaTitle); + tag->name = strdup(inStream->metaName); + } + copyMpdTagToOutputBuffer(cb, tag); + freeMpdTag(tag); + } + else if(inStream->metaName) { + tag = newMpdTag(); + if(inStream->metaName) { + tag->name = strdup(inStream->metaName); } copyMpdTagToOutputBuffer(cb, tag); freeMpdTag(tag); |