From 4e53282469de4fea4b8daaec67298bd3394f34bd Mon Sep 17 00:00:00 2001 From: Warren Dukes Date: Sun, 6 Jun 2004 16:42:14 +0000 Subject: todo update git-svn-id: https://svn.musicpd.org/mpd/trunk@1352 09075e82-0dd4-0310-85a5-a0d7c8717e4f --- src/inputPlugins/ogg_plugin.c | 23 ++++++++++++++++------- 1 file changed, 16 insertions(+), 7 deletions(-) (limited to 'src/inputPlugins/ogg_plugin.c') diff --git a/src/inputPlugins/ogg_plugin.c b/src/inputPlugins/ogg_plugin.c index 9a27ad712..a79c0d876 100644 --- a/src/inputPlugins/ogg_plugin.c +++ b/src/inputPlugins/ogg_plugin.c @@ -200,21 +200,26 @@ MpdTag * oggCommentsParse(char ** comments) { return ret; } -void putOggCommentsIntoDecoderControlMetadata(DecoderControl * dc, - char ** comments) +void putOggCommentsIntoOutputBuffer(OutputBuffer * cb, char * streamName, + char ** comments) { MpdTag * tag; tag = oggCommentsParse(comments); if(!tag) return; - copyMpdTagToDecoderControlMetadata(dc, tag); - /*if(tag->artist) printf("Artist: %s\n", tag->artist); if(tag->album) printf("Album: %s\n", tag->album); if(tag->track) printf("Track: %s\n", tag->track); if(tag->title) printf("Title: %s\n", tag->title);*/ + if(streamName) { + if(tag->name) free(tag->name); + tag->name = strdup(streamName); + } + + copyMpdTagToOutputBuffer(cb, tag); + freeMpdTag(tag); } @@ -280,10 +285,14 @@ int ogg_decode(OutputBuffer * cb, DecoderControl * dc, InputStream * inStream) vorbis_info *vi=ov_info(&vf,-1); dc->audioFormat.channels = vi->channels; dc->audioFormat.sampleRate = vi->rate; - getOutputAudioFormat(&(dc->audioFormat),&(cb->audioFormat)); + if(dc->state == DECODE_STATE_START) { + getOutputAudioFormat(&(dc->audioFormat), + &(cb->audioFormat)); + dc->state = DECODE_STATE_DECODE; + } comments = ov_comment(&vf, -1)->user_comments; - putOggCommentsIntoDecoderControlMetadata(dc, comments); - dc->state = DECODE_STATE_DECODE; + putOggCommentsIntoOutputBuffer(cb, inStream->metaTitle, + comments); replayGainScale = ogg_getReplayGainScale(comments); } -- cgit v1.2.3