aboutsummaryrefslogtreecommitdiffstats
path: root/src/inputPlugins/ogg_plugin.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/inputPlugins/ogg_plugin.c')
-rw-r--r--src/inputPlugins/ogg_plugin.c39
1 files changed, 19 insertions, 20 deletions
diff --git a/src/inputPlugins/ogg_plugin.c b/src/inputPlugins/ogg_plugin.c
index e25798eaf..9a27ad712 100644
--- a/src/inputPlugins/ogg_plugin.c
+++ b/src/inputPlugins/ogg_plugin.c
@@ -205,13 +205,16 @@ void putOggCommentsIntoDecoderControlMetadata(DecoderControl * dc,
{
MpdTag * tag;
- if(dc->metadataSet) return;
-
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);*/
+
freeMpdTag(tag);
}
@@ -229,7 +232,7 @@ int ogg_decode(OutputBuffer * cb, DecoderControl * dc, InputStream * inStream)
int chunkpos = 0;
long bitRate = 0;
long test;
- float replayGainScale;
+ float replayGainScale = 1.0;
char ** comments;
data.inStream = inStream;
@@ -253,24 +256,10 @@ int ogg_decode(OutputBuffer * cb, DecoderControl * dc, InputStream * inStream)
return 0;
}
- {
- vorbis_info *vi=ov_info(&vf,-1);
- dc->audioFormat.bits = 16;
- dc->audioFormat.channels = vi->channels;
- dc->audioFormat.sampleRate = vi->rate;
- getOutputAudioFormat(&(dc->audioFormat),&(cb->audioFormat));
- }
-
dc->totalTime = ov_time_total(&vf,-1);
- if(dc->totalTime < 0) dc->totalTime = 0;
+ if(dc->totalTime < 0) dc->totalTime = 0;
- comments = ov_comment(&vf, -1)->user_comments;
-
- putOggCommentsIntoDecoderControlMetadata(dc, comments);
-
- dc->state = DECODE_STATE_DECODE;
-
- replayGainScale = ogg_getReplayGainScale(comments);
+ dc->audioFormat.bits = 16;
while(!eof) {
if(dc->seek) {
@@ -286,7 +275,17 @@ int ogg_decode(OutputBuffer * cb, DecoderControl * dc, InputStream * inStream)
OGG_DECODE_USE_BIGENDIAN,
2, 1, &current_section);
- if(current_section!=prev_section) printf("song changed!\n");
+ if(current_section!=prev_section) {
+ /*printf("new song!\n");*/
+ vorbis_info *vi=ov_info(&vf,-1);
+ dc->audioFormat.channels = vi->channels;
+ dc->audioFormat.sampleRate = vi->rate;
+ getOutputAudioFormat(&(dc->audioFormat),&(cb->audioFormat));
+ comments = ov_comment(&vf, -1)->user_comments;
+ putOggCommentsIntoDecoderControlMetadata(dc, comments);
+ dc->state = DECODE_STATE_DECODE;
+ replayGainScale = ogg_getReplayGainScale(comments);
+ }
prev_section = current_section;