[tracker: 1/2] Fixed parsing disc number in Vorbis comments.



commit 25fb55b6584bf207a2cf1f10782f3935b14be57e
Author: Michael Raitza <spacefrogg spacefrogg net>
Date:   Thu Jan 29 15:03:02 2015 +0100

    Fixed parsing disc number in Vorbis comments.
    
     De facto standard for storing the disc number is the comment tag
     `DISCNUMBER' and not `DISCNO'. Tag `DISCNO' still takes priority to
     not break the current behaviour. Fixed for both, Vorbis comments in
     vorbis and FLAC files.
    
     Fixing: https://bugzilla.gnome.org/show_bug.cgi?id=681698

 src/tracker-extract/tracker-extract-flac.c   |    2 ++
 src/tracker-extract/tracker-extract-vorbis.c |    2 ++
 2 files changed, 4 insertions(+), 0 deletions(-)
---
diff --git a/src/tracker-extract/tracker-extract-flac.c b/src/tracker-extract/tracker-extract-flac.c
index d013816..ba231b8 100644
--- a/src/tracker-extract/tracker-extract-flac.c
+++ b/src/tracker-extract/tracker-extract-flac.c
@@ -96,6 +96,8 @@ parse_vorbis_comments (FLAC__StreamMetadata_VorbisComment *comment,
                        fd->tracknumber = g_strdup (entry.entry + 12);
                } else if (g_ascii_strncasecmp (entry.entry, "discno", 6) == 0) {
                        fd->discno = g_strdup (entry.entry + 7);
+                } else if (fd->discno == NULL && g_ascii_strncasecmp(entry.entry, "discnumber", 10) == 0) {
+                        fd->discno = g_strdup (entry.entry + 11);
                } else if (g_ascii_strncasecmp (entry.entry, "performer", 9) == 0) {
                        /* FIXME: Handle multiple instances of performer */
                        if (fd->performer == NULL) {
diff --git a/src/tracker-extract/tracker-extract-vorbis.c b/src/tracker-extract/tracker-extract-vorbis.c
index 91c383c..0dfdaec 100644
--- a/src/tracker-extract/tracker-extract-vorbis.c
+++ b/src/tracker-extract/tracker-extract-vorbis.c
@@ -138,6 +138,8 @@ tracker_extract_get_metadata (TrackerExtractInfo *info)
                vd.track_count = ogg_get_comment (comment, "trackcount");
                vd.track_number = ogg_get_comment (comment, "tracknumber");
                vd.disc_number = ogg_get_comment (comment, "DiscNo");
+                if (vd.disc_number == NULL)
+                        vd.disc_number = ogg_get_comment (comment, "DiscNumber");
                vd.performer = ogg_get_comment (comment, "Performer");
                vd.track_gain = ogg_get_comment (comment, "TrackGain");
                vd.track_peak_gain = ogg_get_comment (comment, "TrackPeakGain");


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