From 283e34eaae554604ed1f2f848026840c0eed3dfd Mon Sep 17 00:00:00 2001 From: Warren Dukes Date: Mon, 7 Jun 2004 05:00:56 +0000 Subject: 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 --- src/inputPlugins/mp3_plugin.c | 39 ++++++++++++++++++++++++++++++++++++--- 1 file changed, 36 insertions(+), 3 deletions(-) (limited to 'src/inputPlugins/mp3_plugin.c') 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); -- cgit v1.2.3