summaryrefslogtreecommitdiff
path: root/plugins/aac/aac.c
diff options
context:
space:
mode:
authorGravatar waker <wakeroid@gmail.com>2012-08-03 21:24:48 +0200
committerGravatar waker <wakeroid@gmail.com>2012-08-03 21:24:48 +0200
commit8a1585fd4d2d7ac6a5297a6166d3090e0c49ae90 (patch)
treea72b3929aac0a12e7c89a49972867f33d69e24b7 /plugins/aac/aac.c
parent7a790cacc66ce2c48f98b867edc166626a89471f (diff)
aac: metadata fixes
Diffstat (limited to 'plugins/aac/aac.c')
-rw-r--r--plugins/aac/aac.c16
1 files changed, 11 insertions, 5 deletions
diff --git a/plugins/aac/aac.c b/plugins/aac/aac.c
index 44eaae7c..827c1b4c 100644
--- a/plugins/aac/aac.c
+++ b/plugins/aac/aac.c
@@ -1092,28 +1092,39 @@ int32_t mp4ff_meta_find_by_name(const mp4ff_t *f, const char *item, char **value
void
aac_load_tags (DB_playItem_t *it, mp4ff_t *mp4) {
char *s = NULL;
+ int got_itunes_tags = 0;
for (int i = 0; metainfo[i]; i += 2) {
if (mp4ff_meta_find_by_name(mp4, metainfo[i], &s)) {
deadbeef->pl_add_meta (it, metainfo[i+1], s);
+ got_itunes_tags = 1;
free (s);
}
}
if (mp4ff_meta_find_by_name(mp4, "replaygain_track_gain", &s)) {
deadbeef->pl_set_item_replaygain (it, DDB_REPLAYGAIN_TRACKGAIN, atof (s));
+ got_itunes_tags = 1;
free (s);
}
if (mp4ff_meta_find_by_name(mp4, "replaygain_track_peak", &s)) {
deadbeef->pl_set_item_replaygain (it, DDB_REPLAYGAIN_TRACKPEAK, atof (s));
+ got_itunes_tags = 1;
free (s);
}
if (mp4ff_meta_find_by_name(mp4, "replaygain_album_gain", &s)) {
deadbeef->pl_set_item_replaygain (it, DDB_REPLAYGAIN_ALBUMGAIN, atof (s));
+ got_itunes_tags = 1;
free (s);
}
if (mp4ff_meta_find_by_name(mp4, "replaygain_album_peak", &s)) {
deadbeef->pl_set_item_replaygain (it, DDB_REPLAYGAIN_ALBUMPEAK, atof (s));
+ got_itunes_tags = 1;
free (s);
}
+ if (got_itunes_tags) {
+ uint32_t f = deadbeef->pl_get_item_flags (it);
+ f |= DDB_TAG_ITUNES;
+ deadbeef->pl_set_item_flags (it, f);
+ }
}
#endif
@@ -1158,12 +1169,10 @@ aac_read_metadata (DB_playItem_t *it) {
if (mp4) {
aac_load_tags (it, mp4);
mp4ff_close (mp4);
- deadbeef->pl_add_meta (it, "title", NULL);
}
/*int apeerr = */deadbeef->junk_apev2_read (it, fp);
/*int v2err = */deadbeef->junk_id3v2_read (it, fp);
/*int v1err = */deadbeef->junk_id3v1_read (it, fp);
- deadbeef->pl_add_meta (it, "title", NULL);
deadbeef->fclose (fp);
#endif
return 0;
@@ -1352,7 +1361,6 @@ aac_insert (ddb_playlist_t *plt, DB_playItem_t *after, const char *fname) {
}
deadbeef->pl_add_meta (it, "copyright", tags->copyright);
deadbeef->pl_add_meta (it, "vendor", tags->encodedBy);
- deadbeef->pl_add_meta (it, "title", NULL);
MP4TagsFree (tags);
MP4Close (mp4);
#endif
@@ -1402,8 +1410,6 @@ aac_insert (ddb_playlist_t *plt, DB_playItem_t *after, const char *fname) {
}
}
- deadbeef->pl_add_meta (it, "title", NULL);
-
after = deadbeef->plt_insert_item (plt, after, it);
deadbeef->pl_item_unref (it);
return after;