summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristophe Fergeau <cfergeau@redhat.com>2013-04-04 14:55:25 +0200
committerChristophe Fergeau <cfergeau@redhat.com>2013-04-10 00:29:59 +0200
commit5c45c3de3fb0188c3201e94b864d0867079bf278 (patch)
tree91af80336c697fafae0b5a8b304a28669b78dc20
parentd0167d319b7130265a6678b550ddb2433a57fe81 (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.c16
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) {