aboutsummaryrefslogtreecommitdiffstats
path: root/src/decoder/mp3_plugin.c
diff options
context:
space:
mode:
authorMax Kellermann <max@duempel.org>2009-01-17 13:23:42 +0100
committerMax Kellermann <max@duempel.org>2009-01-17 13:23:42 +0100
commit5395f5f6b34b6a98e94c8f3e8329150a2a4b9cac (patch)
treebb1e42988bd79c452b667da84ef662b45da8aa8e /src/decoder/mp3_plugin.c
parent43eefe9c41478f5605e4abd7e6c7fc6d710341e8 (diff)
downloadmpd-5395f5f6b34b6a98e94c8f3e8329150a2a4b9cac.tar.gz
mpd-5395f5f6b34b6a98e94c8f3e8329150a2a4b9cac.tar.xz
mpd-5395f5f6b34b6a98e94c8f3e8329150a2a4b9cac.zip
moved fallback APE/ID3 tag loader to song.c
Some plugins used the APE or ID3 tag loader as a fallback when their own methods of loading tags did not work. Move this code out of all decoder plugins, into song_file_update().
Diffstat (limited to 'src/decoder/mp3_plugin.c')
-rw-r--r--src/decoder/mp3_plugin.c16
1 files changed, 7 insertions, 9 deletions
diff --git a/src/decoder/mp3_plugin.c b/src/decoder/mp3_plugin.c
index 3444a7e94..fd0ac21a9 100644
--- a/src/decoder/mp3_plugin.c
+++ b/src/decoder/mp3_plugin.c
@@ -19,6 +19,7 @@
#include "../decoder_api.h"
#include "../conf.h"
#include "config.h"
+#include "tag_id3.h"
#include <assert.h>
#include <unistd.h>
@@ -1190,22 +1191,19 @@ mp3_decode(struct decoder *decoder, struct input_stream *input_stream)
static struct tag *mp3_tag_dup(const char *file)
{
- struct tag *ret = NULL;
+ struct tag *tag;
int total_time;
- ret = tag_id3_load(file);
-
total_time = mp3_total_file_time(file);
- if (total_time >= 0) {
- if (!ret)
- ret = tag_new();
- ret->time = total_time;
- } else {
+ if (total_time < 0) {
g_debug("mp3_tag_dup: Failed to get total song time from: %s\n",
file);
+ return NULL;
}
- return ret;
+ tag = tag_new();
+ tag->time = total_time;
+ return tag;
}
static const char *const mp3_suffixes[] = { "mp3", "mp2", NULL };