[sound-juicer] mb5: Ignore artist credits and track title from recordings



commit ba6f39181570086718facd5f7196fa5e32b159d9
Author: Christophe Fergeau <cfergeau redhat com>
Date:   Thu Apr 4 14:55:25 2013 +0200

    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"

 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) {


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]