dhowden / tag

ID3, MP4 and OGG/FLAC metadata parsing in Go
BSD 2-Clause "Simplified" License
568 stars 77 forks source link

Be a little less strict on invalid frames #14

Closed xhenner closed 9 years ago

xhenner commented 9 years ago

The patch db723fecfc08a91c8363b422a6668e7c261bb658 is a little too strict and I end up having files with missing tag. The main cause was the iTunes specific tags.

I tweaked the validity check to just ignore unknown frame and try to continue the parsing if possible.

On a side note, the year() API call is broken in the current state, since the func (f frameNames) Name() method use the same frame names for 2.3 and 2.4 BUT in 2.4 TYER is replaced by the TDRC frame

And, to complicate things, some software still use 2.4 frames in 2.3 tagging (for example Musicbrainz Picard use TSOP frame in 2.3 tagging)

I propose to make the following change : 1) merge the validity list for 2.4 and 2.3. It will assure a better compatibility with strange tagger 2) change the logic of the Name() method to use TDRC if present, TYER if not (or maybe prefer the TORY to TYER ?)

xhenner commented 9 years ago

I change my mind of the patch and try to parse any unknown frame anyway. To be honest, I need to do this for my write patch which needs me to track all the frames, even the proprietary one. I can squash the 2 commits if you want

dhowden commented 9 years ago

Sorry for the delay! Yes, please merge the two commits into one, and then I'll merge it in.

xhenner commented 9 years ago

done

dhowden commented 9 years ago

You also need to run go fmt on that too (sorry - forgot to mention that).

xhenner commented 9 years ago

my bad reformatted