diff options
author | waker <wakeroid@gmail.com> | 2012-08-03 21:24:48 +0200 |
---|---|---|
committer | waker <wakeroid@gmail.com> | 2012-08-03 21:24:48 +0200 |
commit | 8a1585fd4d2d7ac6a5297a6166d3090e0c49ae90 (patch) | |
tree | a72b3929aac0a12e7c89a49972867f33d69e24b7 /plugins/aac | |
parent | 7a790cacc66ce2c48f98b867edc166626a89471f (diff) |
aac: metadata fixes
Diffstat (limited to 'plugins/aac')
-rw-r--r-- | plugins/aac/aac.c | 16 |
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; |