diff options
author | Warren Dukes <warren.dukes@gmail.com> | 2004-06-06 16:42:14 +0000 |
---|---|---|
committer | Warren Dukes <warren.dukes@gmail.com> | 2004-06-06 16:42:14 +0000 |
commit | 4e53282469de4fea4b8daaec67298bd3394f34bd (patch) | |
tree | ba8465c48ea1c75983992ba4b265efd1666d9843 /src/inputPlugins/ogg_plugin.c | |
parent | 926258605a56c015d1421ca5aaf818a8de343afc (diff) | |
download | mpd-4e53282469de4fea4b8daaec67298bd3394f34bd.tar.gz mpd-4e53282469de4fea4b8daaec67298bd3394f34bd.tar.xz mpd-4e53282469de4fea4b8daaec67298bd3394f34bd.zip |
todo update
git-svn-id: https://svn.musicpd.org/mpd/trunk@1352 09075e82-0dd4-0310-85a5-a0d7c8717e4f
Diffstat (limited to '')
-rw-r--r-- | src/inputPlugins/ogg_plugin.c | 23 |
1 files changed, 16 insertions, 7 deletions
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); } |