GNOME Bugzilla – Bug 410396
not reading "DATE" tags from Flac files
Last modified: 2007-03-10 12:19:09 UTC
Please describe the problem: I've got some FLAC files, tagged, using the MusicBrainz' Picard tagger. The problem is - Rhythmbox can't load their date metadata somehow. It is very inconvenient, since I like my whole collectino sorted chronologically, and FLACs appear to be of "unknown" date. Steps to reproduce: 1. 2. 3. Actual results: Expected results: Does this happen every time? Other information:
What versions of gstreamer and gstreamer plugins are you using? Try seeing what this gstreamer command says: gst-launch -t playbin uri=file:///path/to/file.flac Also, can you attach a fragment of the file (maybe the first few seconds) to this bug?
$ gst-launch-0.10 -t playbin uri=file:///home/doomhammer/music/albums/Theatre\ of\ Tragedy/\[1998\]\ Aégis/01\ -\ Cassandra.flac Setting pipeline to PAUSED ... Pipeline is PREROLLING ... FOUND TAG : found by element "flacdec0". track count: 9 numer ścieżki: 1 tytuł: Cassandra extended comment: RELEASECOUNTRY=DE : MUSICIP_PUID=b107605d-8954-8be2-0c27-29b116ca8161 : MUSICBRAINZ_VARIOUSARTISTS=0 : MUSICBRAINZ_NONALBUM=0 : MUSICBRAINZ_ALBUMTYPE=album : MUSICBRAINZ_ALBUMSTATUS=official : MUSICBRAINZ_ALBUMARTISTSORTNAME=Theatre of Tragedy : MUSICBRAINZ_ALBUMARTIST=Theatre of Tragedy ID ścieżki: 05a8f2fe-756e-4fa3-bb64-a775b0cd691a artist sortname: Theatre of Tragedy ID wykonawcy: 1b6ce503-df5f-45d5-86cf-54740c30042f ID albumu: 04714690-9d5e-459b-ad37-cea0677d2262 ID wykonawcy albumu: 1b6ce503-df5f-45d5-86cf-54740c30042f artysta: Theatre of Tragedy album: Aégis audio codec: FLAC Pipeline is PREROLLED ... Setting pipeline to PLAYING ... New clock: audioclock0 Caught interrupt -- handling interrupt. Interrupt: Setting pipeline to PAUSED ... Execution ended after 4226511000 ns. Setting pipeline to PAUSED ... Setting pipeline to READY ... Setting pipeline to NULL ... FREEING pipeline ... I'd like to add that Quod Libet reads them well. metaflac says moreover: METADATA block #2 type: 4 (VORBIS_COMMENT) is last: false length: 745 vendor string: reference libFLAC 1.1.2 20050205 comments: 19 comment[0]: TRACKTOTAL=9 comment[1]: TRACKNUMBER=1 comment[2]: TITLE=Cassandra comment[3]: RELEASECOUNTRY=DE comment[4]: MUSICIP_PUID=b107605d-8954-8be2-0c27-29b116ca8161 comment[5]: MUSICBRAINZ_VARIOUSARTISTS=0 comment[6]: MUSICBRAINZ_TRACKID=05a8f2fe-756e-4fa3-bb64-a775b0cd691a comment[7]: MUSICBRAINZ_SORTNAME=Theatre of Tragedy comment[8]: MUSICBRAINZ_NONALBUM=0 comment[9]: MUSICBRAINZ_ARTISTID=1b6ce503-df5f-45d5-86cf-54740c30042f comment[10]: MUSICBRAINZ_ALBUMTYPE=album comment[11]: MUSICBRAINZ_ALBUMSTATUS=official comment[12]: MUSICBRAINZ_ALBUMID=04714690-9d5e-459b-ad37-cea0677d2262 comment[13]: MUSICBRAINZ_ALBUMARTISTSORTNAME=Theatre of Tragedy comment[14]: MUSICBRAINZ_ALBUMARTISTID=1b6ce503-df5f-45d5-86cf-54740c30042f comment[15]: MUSICBRAINZ_ALBUMARTIST=Theatre of Tragedy comment[16]: DATE=1998-00-00 comment[17]: ARTIST=Theatre of Tragedy comment[18]: ALBUM=Aégis
The problem is GStreamer not giving the tags to us, so moving there.
Created attachment 83339 [details] [review] Accept vorbis date tag data of the form YYYY-00-00 The problem is that the date tags in your files are technically malformed; dates like 1998-00-00 apparently fail the g_date_valid_dmy test in line 259 of gst-plugins-base/gst-libs/gst/tag/gstvorbistag.c because the month and day values are zero. This trivial (and untested) patch should make gst accept these as 1998-01-01.
Committed, thanks: 2007-02-25 Tim-Philipp Müller <tim at centricular dot net> Patch by: René Stadler <mail at renestadler de> * gst-libs/gst/tag/gstvorbistag.c: (gst_vorbis_tag_add): Parse date strings in vorbis comments that have an invalid (zero) month or day (#410396). * tests/check/libs/tag.c: (GST_START_TEST): Test case for the above.
Not exactly done. Bug still appears for tracks with DATE like 1976-12-00.
Thanks, should be fixed as well now in CVS: 2007-03-10 Tim-Philipp Müller <tim at centricular dot net> * gst-libs/gst/tag/gstvorbistag.c: (gst_vorbis_tag_add): Also accept partial dates with only year and month, like 1999-12-00 (fixes #410396 even more). * tests/check/libs/tag.c: (GST_START_TEST): Add unit test for the above.