aboutsummaryrefslogtreecommitdiffstats
path: root/src/inputPlugins
diff options
context:
space:
mode:
Diffstat (limited to 'src/inputPlugins')
-rw-r--r--src/inputPlugins/flac_plugin.c13
-rw-r--r--src/inputPlugins/mp3_plugin.c9
-rw-r--r--src/inputPlugins/ogg_plugin.c43
3 files changed, 26 insertions, 39 deletions
diff --git a/src/inputPlugins/flac_plugin.c b/src/inputPlugins/flac_plugin.c
index 23e2bcfea..a90270850 100644
--- a/src/inputPlugins/flac_plugin.c
+++ b/src/inputPlugins/flac_plugin.c
@@ -27,7 +27,6 @@
#include "../outputBuffer.h"
#include "../replayGain.h"
#include "../audio.h"
-#include "../path.h"
#include <stdio.h>
#include <string.h>
@@ -438,7 +437,7 @@ FLAC__StreamDecoderWriteStatus flacWrite(const FLAC__SeekableStreamDecoder *dec,
return FLAC__STREAM_DECODER_WRITE_STATUS_CONTINUE;
}
-MpdTag * flacMetadataDup(char * utf8file, int * vorbisCommentFound) {
+MpdTag * flacMetadataDup(char * file, int * vorbisCommentFound) {
MpdTag * ret = NULL;
FLAC__Metadata_SimpleIterator * it;
FLAC__StreamMetadata * block = NULL;
@@ -448,7 +447,7 @@ MpdTag * flacMetadataDup(char * utf8file, int * vorbisCommentFound) {
*vorbisCommentFound = 0;
it = FLAC__metadata_simple_iterator_new();
- if(!FLAC__metadata_simple_iterator_init(it,rmp2amp(utf8ToFsCharset(utf8file)),1,0)) {
+ if(!FLAC__metadata_simple_iterator_init(it, file ,1,0)) {
FLAC__metadata_simple_iterator_delete(it);
return ret;
}
@@ -530,14 +529,14 @@ MpdTag * flacMetadataDup(char * utf8file, int * vorbisCommentFound) {
return ret;
}
-MpdTag * flacTagDup(char * utf8file) {
+MpdTag * flacTagDup(char * file) {
MpdTag * ret = NULL;
int foundVorbisComment = 0;
- ret = flacMetadataDup(utf8file,&foundVorbisComment);
+ ret = flacMetadataDup(file, &foundVorbisComment);
if(!ret) return NULL;
if(!foundVorbisComment) {
- MpdTag * temp = id3Dup(utf8file);
+ MpdTag * temp = id3Dup(file);
if(temp) {
temp->time = ret->time;
freeMpdTag(ret);
@@ -545,8 +544,6 @@ MpdTag * flacTagDup(char * utf8file) {
}
}
- if(ret) validateUtf8Tag(ret);
-
return ret;
}
diff --git a/src/inputPlugins/mp3_plugin.c b/src/inputPlugins/mp3_plugin.c
index 594f17876..de23b6c7b 100644
--- a/src/inputPlugins/mp3_plugin.c
+++ b/src/inputPlugins/mp3_plugin.c
@@ -36,7 +36,6 @@
#include "../log.h"
#include "../utils.h"
#include "../tag.h"
-#include "../path.h"
#include <stdio.h>
#include <string.h>
@@ -613,21 +612,19 @@ int mp3_decode(OutputBuffer * cb, DecoderControl * dc, InputStream * inStream) {
return 0;
}
-MpdTag * mp3_tagDup(char * utf8file) {
+MpdTag * mp3_tagDup(char * file) {
MpdTag * ret = NULL;
int time;
- ret = id3Dup(utf8file);
+ ret = id3Dup(file);
- time = getMp3TotalTime(rmp2amp(utf8ToFsCharset(utf8file)));
+ time = getMp3TotalTime(file);
if(time>=0) {
if(!ret) ret = newMpdTag();
ret->time = time;
}
- if(ret) validateUtf8Tag(ret);
-
return ret;
}
diff --git a/src/inputPlugins/ogg_plugin.c b/src/inputPlugins/ogg_plugin.c
index 4f44af4c2..4f49f286b 100644
--- a/src/inputPlugins/ogg_plugin.c
+++ b/src/inputPlugins/ogg_plugin.c
@@ -108,7 +108,9 @@ long ogg_tell_cb(void * vdata) {
char * ogg_parseComment(char * comment, char * needle) {
int len = strlen(needle);
- if(strncasecmp(comment,needle,len)) return comment+len;
+ if(strncasecmp(comment, needle, len) == 0 && *(comment+len) == '=') {
+ return comment+len+1;
+ }
return NULL;
}
@@ -274,16 +276,14 @@ int ogg_decode(OutputBuffer * cb, DecoderControl * dc, InputStream * inStream)
return 0;
}
-MpdTag * oggTagDup(char * utf8file) {
+MpdTag * oggTagDup(char * file) {
MpdTag * ret = NULL;
FILE * fp;
OggVorbis_File vf;
char ** comments;
char * temp;
- char * s1;
- char * s2;
- fp = fopen(rmp2amp(utf8ToFsCharset(utf8file)),"r");
+ fp = fopen(file,"r");
if(!fp) return NULL;
if(ov_open(fp,&vf,NULL,0)<0) {
fclose(fp);
@@ -296,33 +296,28 @@ MpdTag * oggTagDup(char * utf8file) {
comments = ov_comment(&vf,-1)->user_comments;
while(*comments) {
- temp = strdup(*comments);
- ++comments;
- if(!(s1 = strtok(temp,"="))) continue;
- s2 = strtok(NULL,"");
- if(!s1 || !s2);
- else if(0==strcasecmp(s1,"artist")) {
+ if((temp = ogg_parseComment(*comments,"artist"))) {
if(!ret->artist) {
- stripReturnChar(s2);
- ret->artist = strdup(s2);
+ ret->artist = strdup(temp);
+ stripReturnChar(ret->artist);
}
- }
- else if(0==strcasecmp(s1,"title")) {
+ }
+ else if((temp = ogg_parseComment(*comments,"title"))) {
if(!ret->title) {
- stripReturnChar(s2);
- ret->title = strdup(s2);
+ ret->title = strdup(temp);
+ stripReturnChar(ret->title);
}
}
- else if(0==strcasecmp(s1,"album")) {
+ else if((temp = ogg_parseComment(*comments,"album"))) {
if(!ret->album) {
- stripReturnChar(s2);
- ret->album = strdup(s2);
+ ret->album = strdup(temp);
+ stripReturnChar(ret->album);
}
}
- else if(0==strcasecmp(s1,"tracknumber")) {
+ else if((temp = ogg_parseComment(*comments,"tracknumber"))) {
if(!ret->track) {
- stripReturnChar(s2);
- ret->track = strdup(s2);
+ ret->track = strdup(temp);
+ stripReturnChar(ret->track);
}
}
free(temp);
@@ -330,8 +325,6 @@ MpdTag * oggTagDup(char * utf8file) {
ov_clear(&vf);
- if(ret) validateUtf8Tag(ret);
-
return ret;
}