diff options
author | Christophe Fergeau <cfergeau@redhat.com> | 2013-04-04 14:55:25 +0200 |
---|---|---|
committer | Christophe Fergeau <cfergeau@redhat.com> | 2013-04-10 00:29:59 +0200 |
commit | 5c45c3de3fb0188c3201e94b864d0867079bf278 (patch) | |
tree | 91af80336c697fafae0b5a8b304a28669b78dc20 | |
parent | d0167d319b7130265a6678b550ddb2433a57fe81 (diff) |
mb5: Ignore artist credits and track title from recordings
Quoting Calvin Walton from
https://bugzilla.gnome.org/show_bug.cgi?id=690903#c8:
"The fallback order for the sound-juicer track artist should be as follows:
- Use the track/artist-credit if present
- Otherwise use the recording/artist-credit if present
- As a final fallback, use the release/artist-credit
The fallback order for the sound-juicer track name should be as follows:
- Use the track/title if present
- Otherwise use the recording/title"
-rw-r--r-- | libjuicer/sj-metadata-musicbrainz5.c | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/libjuicer/sj-metadata-musicbrainz5.c b/libjuicer/sj-metadata-musicbrainz5.c index cad2141..9ba09e1 100644 --- a/libjuicer/sj-metadata-musicbrainz5.c +++ b/libjuicer/sj-metadata-musicbrainz5.c @@ -331,20 +331,24 @@ fill_tracks_from_medium (Mb5Medium medium, AlbumDetails *album) track->number = mb5_track_get_position (mbt); - /* duration from track is more reliable than from recording */ + /* Prefer metadata from Mb5Track over metadata from Mb5Recording + * https://bugzilla.gnome.org/show_bug.cgi?id=690903#c8 + */ track->duration = mb5_track_get_length (mbt) / 1000; + GET (track->title, mb5_track_get_title, mbt); + credit = mb5_track_get_artistcredit (mbt); recording = mb5_track_get_recording (mbt); if (recording != NULL) { - GET (track->title, mb5_recording_get_title, recording); GET (track->track_id, mb5_recording_get_id, recording); fill_recording_relations (recording, track); + if (track->duration == 0) track->duration = mb5_recording_get_length (recording) / 1000; - credit = mb5_recording_get_artistcredit (recording); - } else { - GET (track->title, mb5_track_get_title, mbt); - credit = mb5_track_get_artistcredit (mbt); + if (track->title == NULL) + GET (track->title, mb5_recording_get_title, recording); + if (credit == NULL) + credit = mb5_recording_get_artistcredit (recording); } if (credit) { |